--- loncom/interface/loncommon.pm 2009/03/25 15:49:47 1.776
+++ loncom/interface/loncommon.pm 2009/04/01 14:22:11 1.783
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.776 2009/03/25 15:49:47 bisitz Exp $
+# $Id: loncommon.pm,v 1.783 2009/04/01 14:22:11 amueller Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -935,7 +935,7 @@ sub help_open_topic {
$template.=' '
.'';
if ($text ne "") {
$template.='';
@@ -2847,6 +2847,27 @@ sub track_student_link {
&help_open_topic('View_recent_activity');
}
+sub slot_reservations_link {
+ my ($linktext,$sname,$sdom,$target) = @_;
+ my $link ="/adm/slotrequest?command=showresv&origin=aboutme";
+ my $title = 'View slot reservation history';
+ if (defined($sname) && $sname !~ /^\s*$/ &&
+ defined($sdom) && $sdom !~ /^\s*$/) {
+ $link .= "&uname=$sname&udom=$sdom";
+ $title .= ' of this student';
+ }
+ if (defined($target) && $target !~ /^\s*$/) {
+ $target = qq{target="$target"};
+ } else {
+ $target = '';
+ }
+ $title = &mt($title);
+ $linktext = &mt($linktext);
+ return qq{$linktext};
+# FIXME uncomment when help item created: &help_open_topic('Slot_Reservation_History');
+
+}
+
# ===================================================== Display a student photo
@@ -4505,7 +4526,7 @@ body{
}
a:link, a:visited { font-size:100%; }
-a:focus { color: red; background: yellow }
+a:focus { color: red; background: yellow }
table.thinborder,
table.thinborder tr th {
border-style: solid;
@@ -4528,7 +4549,19 @@ form, .inline { display: inline; }
.LC_400Box {width:400px; }
/* end */
-.LC_filename {font-family: $mono; white-space:pre;}
+.LC_filename {
+ font-family: $mono;
+ white-space:pre;
+}
+
+.LC_fileicon {
+ border: none;
+ height: 1.3em;
+ vertical-align: text-bottom;
+ margin-right: 0.3em;
+ text-decoration:none;
+}
+
.LC_error {
color: red;
font-size: larger;
@@ -4578,7 +4611,7 @@ table#LC_top_nav, table#LC_menubuttons,t
padding: 0px;
}
-table#LC_title_bar, table.LC_breadcrumbs,
+table#LC_title_bar, table.LC_breadcrumbs,
table#LC_title_bar.LC_with_remote {
width: 100%;
border-color: $pgbg;
@@ -4655,6 +4688,10 @@ table#LC_top_nav td.LC_top_nav_logo img
border: 0px;
vertical-align: bottom;
}
+table#LC_top_nav td.LC_top_nav_exit,
+table#LC_top_nav td.LC_top_nav_help {
+ width: 2.0em;
+}
table#LC_top_nav td.LC_top_nav_login {
width: 4.0em;
text-align: center;
@@ -4665,9 +4702,20 @@ table.LC_breadcrumbs td, table.LC_docs_p
font-family: $sans;
font-size: smaller;
}
+table.LC_breadcrumbs td.LC_breadcrumbs_component,
+table.LC_docs_path td.LC_docs_path_component {
+ background: $tabbg;
+ color: $font;
+ font-family: $sans;
+ font-size: larger;
+ text-align: right;
+}
td.LC_table_cell_checkbox {
text-align: center;
}
+table#LC_mainmenu td.LC_mainmenu_column {
+ vertical-align: top;
+}
.LC_fontsize_small
{
@@ -4704,7 +4752,7 @@ td.LC_table_cell_checkbox {
}
td.LC_menubuttons_text {
- color: $font;
+ color: $font;
}
@@ -4775,7 +4823,7 @@ table.LC_data_table tr.LC_info_row > td
font-weight: bold;
text-align: left;
}
-table.LC_data_table tr.LC_odd_row > td,
+table.LC_data_table tr.LC_odd_row > td,
table.LC_pick_box tr > td.LC_odd_row,
table.LC_aboutme_port tr td {
background-color: $data_table_light;
@@ -4870,13 +4918,19 @@ table.LC_calendar tr td {
table.LC_calendar tr td.LC_calendar_day_empty {
background-color: $data_table_dark;
}
-
+table.LC_calendar tr td.LC_calendar_day_current {
+ background-color: $data_table_highlight;
+}
table.LC_mail_list tr.LC_mail_new {
background-color: $mail_new;
}
table.LC_mail_list tr.LC_mail_new:hover {
background-color: $mail_new_hover;
}
+table.LC_mail_list tr.LC_mail_even{
+}
+table.LC_mail_list tr.LC_mail_odd{
+}
table.LC_mail_list tr.LC_mail_read {
background-color: $mail_read;
}
@@ -4896,12 +4950,21 @@ table.LC_mail_list tr.LC_mail_other:hove
background-color: $mail_other_hover;
}
-table.LC_data_table tr > td.LC_browser_file {
+table.LC_data_table tr > td.LC_browser_file,
+table.LC_data_table tr > td.LC_browser_file_published {
background: #CCFF88;
}
-table.LC_data_table tr > td.LC_browser_file_locked {
+table.LC_data_table tr > td.LC_browser_file_locked,
+table.LC_data_table tr > td.LC_browser_file_unpublished {
background: #FFAA99;
}
+table.LC_data_table tr > td.LC_browser_file_obsolete {
+ background: #AAAAAA;
+}
+table.LC_data_table tr > td.LC_browser_file_modified,
+table.LC_data_table tr > td.LC_browser_file_metamodified {
+ background: #FFFF77;
+}
table.LC_data_table tr.LC_browser_folder > td {
background: #CCCCFF;
}
@@ -4953,7 +5016,7 @@ span.LC_parm_folder, span.LC_parm_symb {
}
td.LC_parm_overview_level_menu, td.LC_parm_overview_map_menu,
-td.LC_parm_overview_parm_selectors {
+td.LC_parm_overview_parm_selectors,td.LC_parm_overview_restrictions {
border: 1px solid black;
border-collapse: collapse;
}
@@ -5165,7 +5228,7 @@ table.LC_descriptive_input td.LC_descrip
div.LC_feedback_link {
clear: both;
background: white;
- width: 100%;
+ width: 100%;
}
span.LC_feedback_link {
background: $feedback_link_bg;
@@ -5196,7 +5259,7 @@ table.LC_prior_tries td {
background: #FFAAAA ! important;
color: black;
}
-.LC_answer_not_charged_try,
+.LC_answer_not_charged_try,
.LC_answer_no_grade,
.LC_answer_late {
background: #FFFFAA;
@@ -5206,8 +5269,14 @@ table.LC_prior_tries td {
background: #AAAAFF;
color: black;
}
-
-
+.LC_answer_no_message {
+ background: #FFFFFF;
+ color: black;
+}
+.LC_answer_unknown {
+ background: orange;
+ color: black;
+}
span.LC_prior_numerical,
span.LC_prior_string,
span.LC_prior_custom,
@@ -5254,7 +5323,10 @@ table.LC_docs_documents {
border-width: 0px;
border-collapse: collapse;
}
-
+table.LC_docs_documents td.LC_docs_document {
+ border: 2px solid black;
+ padding: 4px;
+}
.LC_docs_entry_move {
border: 0px;
border-collapse: collapse;
@@ -5327,7 +5399,7 @@ table.LC_double_column tr td.LC_left_col
table.LC_double_column tr td.LC_right_col {
top: 2px;
- right: 2px;
+ right: 2px;
width: 47%;
vertical-align: top;
}
@@ -5405,7 +5477,7 @@ table.LC_scantron_action tr th {
font-weight:bold;
font-style:normal;
}
-.LC_edit_problem_header,
+.LC_edit_problem_header,
div.LC_edit_problem_footer {
font-weight: normal;
font-size: medium;
@@ -5473,7 +5545,13 @@ table#LC_mainmenu td.LC_mainmenu_col_fie
vertical-align: top;
width: 45%;
}
-
+.LC_mainmenu_fieldset_category {
+ color: $font;
+ background: $pgbg;
+ font-family: $sans;
+ font-size: small;
+ font-weight: bold;
+}
div.LC_createcourse {
margin: 10px 10px 10px 10px;
}
@@ -5496,7 +5574,7 @@ ul.LC_TabContent li:hover a{
text-decoration:none;
}
-h1 {
+h1 {
padding:5px 10px 5px 20px;
line-height:130%;
}
@@ -5511,7 +5589,7 @@ h2,h3,h4,h5,h6
padding:3px 15px 3px 15px;
margin:0px;
background-color:$tabbg;
- border-bottom:solid 1px $lg_border_color;
+ border-bottom:solid 1px $lg_border_color;
}
.LC_noBorder {
border:0px;
@@ -5531,7 +5609,7 @@ p, .LC_ContentBox {
}
.LC_FormSectionClearButton input {
- background-color:transparent;
+ background-color:transparent;
border:0px;
cursor:pointer;
text-decoration:underline;
@@ -5544,6 +5622,7 @@ p, .LC_ContentBox {
padding: 4px;
border: 1px solid #000033;
white-space: nowrap;
+/* vertical-align: middle; */
}
dl,ul,div,fieldset {
@@ -5608,7 +5687,7 @@ ul.LC_TabContent li{
background-color:$tabbg;
border-bottom:solid 1px $lg_border_color;
}
-ul.LC_TabContent li a, ul.LC_TabContent li{
+ul.LC_TabContent li a, ul.LC_TabContent li{
color:rgb(47,47,47);
text-decoration:none;
font-size:95%;
@@ -5636,7 +5715,7 @@ ul.LC_TabContentBigger li, ul.LC_TabCont
font-weight:bold;
}
-ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {
+ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs, ul.LC_CourseBreadcrumbs{
border-top: solid 1px RGB(255, 255, 255);
height: 20px;
line-height: 20px;
@@ -5647,17 +5726,17 @@ ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr
background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
}
-ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {
+ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li, ul.LC_CourseBreadcrumbs li {
/*
background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
-*/
+*/
display: inline;
padding: 0px 0px 0px 10px;
- vertical-align: bottom;
+/* vertical-align: bottom; */
overflow:hidden;
}
-ol#LC_MenuBreadcrumbs li a {
+ol#LC_MenuBreadcrumbs li a, ul.LC_CourseBreadcrumbs li a {
text-decoration: none;
font-size:90%;
}
@@ -5697,6 +5776,7 @@ dl.LC_ListStyleClean dd {
.LC_ListStyleClean,
.LC_ListStyleSimple,
.LC_ListStyleNormal,
+.LC_ListStyle_Border,
.LC_ListStyleSpecial
{
/*display:block; */
@@ -5833,7 +5913,7 @@ table em{
font-weight: bold;
font-style: normal;
}
-table.LC_tableBrowseRes,
+table.LC_tableBrowseRes,
table.LC_tableOfContent{
border:none;
border-spacing: 1;
@@ -5896,7 +5976,7 @@ ul#LC_toolbar li a:hover{
}
ul#LC_toolbar{
- padding:0;
+ padding:0;
margin: 2px;
list-style:none;
position:relative;
@@ -5912,18 +5992,37 @@ ul#LC_toolbar li{
vertical-align:middle;
}
+/*
+ This style is used for standard function lists, e.g. functions of Personal Information Page.
+ It produces a horizontally aligned list with a bullet at the beginning of each function item.
+ */
+.LC_fieldset_functions li {
+ float: right;
+ height: 35px;
+ background-color: blue;
+ white-space: nowrap;
+ margin-left: 10px;
+}
+
a.LC_toolbarItem{
display:block;
padding:0;
margin:0;
height: 32px;
width: 32px;
- color:white;
- border:0 none;
+ color:white;
+ border:0 none;
background-repeat:no-repeat;
background-color:transparent;
}
+ul.LC_functionslist li {
+ float: left;
+ white-space: nowrap;
+ height: 35px; /* at least as high as heighest list item */
+ margin: 0px 15px 15px 10px;
+}
+
END
}
@@ -6959,6 +7058,8 @@ If the user's status includes multiple t
the largest default quota which applies to the user determines the
default quota returned.
+=back
+
=cut
###############################################
@@ -7507,8 +7608,57 @@ sub get_institutional_codes {
=pod
+=head1 Slot Helpers
+
+=over 4
+
+=item * sorted_slots()
+
+Sorts an array of slot names in order of slot start time (earliest first).
+
+Inputs:
+
+=over 4
+
+slotsarr - Reference to array of unsorted slot names.
+
+slots - Reference to hash of hash, where outer hash keys are slot names.
+
+=back
+
+Returns:
+
+=over 4
+
+sorted - An array of slot names sorted by the start time of the slot.
+
=back
+=back
+
+=cut
+
+
+sub sorted_slots {
+ my ($slotsarr,$slots) = @_;
+ my @sorted;
+ if ((ref($slotsarr) eq 'ARRAY') && (ref($slots) eq 'HASH')) {
+ @sorted =
+ sort {
+ if (ref($slots->{$a}) && ref($slots->{$b})) {
+ return $slots->{$a}{'starttime'} <=> $slots->{$b}{'starttime'}
+ }
+ if (ref($slots->{$a})) { return -1;}
+ if (ref($slots->{$b})) { return 1;}
+ return 0;
+ } @{$slotsarr};
+ }
+ return @sorted;
+}
+
+
+=pod
+
=head1 HTTP Helpers
=over 4