--- loncom/interface/loncommon.pm 2008/11/28 18:18:39 1.697 +++ loncom/interface/loncommon.pm 2008/12/11 14:52:34 1.714 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.697 2008/11/28 18:18:39 bisitz Exp $ +# $Id: loncommon.pm,v 1.714 2008/12/11 14:52:34 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -271,7 +271,7 @@ BEGIN { } } &Apache::lonnet::logthis( - "INFO: Read file types"); + "INFO: Read file types"); $readit=1; } # end of unless($readit) @@ -926,7 +926,7 @@ sub help_open_topic { if ($text ne "") { $template .= "". - "
$text"; + "$text"; } # Add the graphic @@ -935,7 +935,7 @@ sub help_open_topic { $template .= <<"ENDTEMPLATE"; (Help: $topic) ENDTEMPLATE - if ($text ne '') { $template.='
' }; + if ($text ne '') { $template.='' }; return $template; } @@ -1128,7 +1128,7 @@ sub help_open_bug { { $template .= "". - "
$text"; + "$text"; } # Add the graphic @@ -1173,7 +1173,7 @@ sub help_open_faq { { $template .= "". - "'."\n";; } @@ -6799,19 +6794,35 @@ sub default_quota { if ($inststatus ne '') { my @statuses = split(/:/,$inststatus); foreach my $item (@statuses) { - if ($quotahash{'quotas'}{$item} ne '') { - if ($defquota eq '') { - $defquota = $quotahash{'quotas'}{$item}; - $settingstatus = $item; - } elsif ($quotahash{'quotas'}{$item} > $defquota) { - $defquota = $quotahash{'quotas'}{$item}; - $settingstatus = $item; + if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { + if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') { + if ($defquota eq '') { + $defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; + $settingstatus = $item; + } elsif ($quotahash{'quotas'}{'defaultquota'}{$item} > $defquota) { + $defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; + $settingstatus = $item; + } + } + } else { + if ($quotahash{'quotas'}{$item} ne '') { + if ($defquota eq '') { + $defquota = $quotahash{'quotas'}{$item}; + $settingstatus = $item; + } elsif ($quotahash{'quotas'}{$item} > $defquota) { + $defquota = $quotahash{'quotas'}{$item}; + $settingstatus = $item; + } } } } } if ($defquota eq '') { - $defquota = $quotahash{'quotas'}{'default'}; + if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { + $defquota = $quotahash{'quotas'}{'defaultquota'}{'default'}; + } else { + $defquota = $quotahash{'quotas'}{'default'}; + } $settingstatus = 'default'; } } else { @@ -7607,9 +7618,9 @@ sub upload_embedded { ' '. $orig_uploaded_filename.'
'; } else { - $output .= ''. + $output .= ''. &mt('View embedded file: [_1]',''. - $orig_uploaded_filename.'').'
'; + $orig_uploaded_filename.'').'
'; } } close($fh); @@ -7956,7 +7967,7 @@ sub csv_print_select_table { &end_data_table_header_row()."\n"); foreach my $array_ref (@$d) { my ($value,$display,$defaultcol)=@{ $array_ref }; - $r->print(&start_data_table_row().''); + $r->print(&start_data_table_row().''); $r->print('
$text"; + "$text"; } # Add the graphic @@ -1686,17 +1686,17 @@ sub select_form { sub display_filter { if (!$env{'form.show'}) { $env{'form.show'}=10; } if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; } - return ' '. + ' '. &mt('Filter [_1]', &select_form($env{'form.displayfilter'}, 'displayfilter', ('currentfolder' => 'Current folder/page', 'containing' => 'Containing phrase', 'none' => 'None'))). - ''; + ''; } sub gradeleveldescription { @@ -2768,10 +2768,7 @@ sub aboutmewrapper { sub syllabuswrapper { - my ($linktext,$coursedir,$domain,$fontcolor)=@_; - if ($fontcolor) { - $linktext=''.$linktext.''; - } + my ($linktext,$coursedir,$domain)=@_; return qq{$linktext}; } @@ -3880,7 +3877,14 @@ sub get_domainconf { if (ref($domconfig{'login'}) eq 'HASH') { if (keys(%{$domconfig{'login'}})) { foreach my $key (keys(%{$domconfig{'login'}})) { - $designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key}; + if (ref($domconfig{'login'}{$key}) eq 'HASH') { + foreach my $img (keys(%{$domconfig{'login'}{$key}})) { + $designhash{$udom.'.login.'.$key.'_'.$img} = + $domconfig{'login'}{$key}{$img}; + } + } else { + $designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key}; + } } } else { $legacy{'login'} = 1; @@ -4213,7 +4217,7 @@ ENDROLE .''.&mt('Construction Space').': ' .'
' - .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."$lastitem
" + .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."$lastitem
" .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') .'
' .&Apache::lonmenu::constspaceform(); @@ -4387,6 +4391,10 @@ sub standard_css { my $vlink = &designparm($function.'.vlink', $domain); my $link = &designparm($function.'.link', $domain); + my $loginbg = &designparm('login.sidebg',$domain); + my $bgcol = &designparm('login.bgcol',$domain); + my $textcol = &designparm('login.textcol',$domain); + my $sans = 'Verdana,Arial,Helvetica,sans-serif'; my $mono = 'monospace'; my $data_table_head = $tabbg; @@ -4404,6 +4412,7 @@ sub standard_css { my $mail_other_hover = '#669999'; my $table_header = '#DDDDDD'; my $feedback_link_bg = '#BBBBBB'; + my $lg_border_color = '#C8C8C8'; my $border = ($env{'browser.type'} eq 'explorer' || $env{'browser.type'} eq 'safari' ) ? '0px 2px 0px 2px' @@ -4411,22 +4420,35 @@ sub standard_css { return < td { + background-color: #CCC; + font-weight: bold; + text-align: left; } 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; padding: 2px; } table.LC_data_table tr.LC_even_row > td, +table.LC_pick_box tr > td.LC_even_row, table.LC_aboutme_port tr.LC_even_row td { background-color: $data_table_dark; + padding: 2px; } table.LC_data_table tr.LC_data_table_highlight td { background-color: $data_table_darker; @@ -4724,7 +4737,7 @@ table.LC_nested tr.LC_empty_row td { table.LC_nested_outer tr th { font-weight: bold; background-color: $data_table_head; - font-size: smaller; + font-size: small; border-bottom: 1px solid #000000; } table.LC_nested_outer tr td.LC_subheader { @@ -4763,7 +4776,7 @@ table.LC_createuser { } table.LC_createuser tr.LC_section_row td { - font-size: smaller; + font-size: small; } table.LC_createuser tr.LC_info_row td { @@ -4819,24 +4832,6 @@ table.LC_mail_list tr.LC_mail_even { table.LC_mail_list tr.LC_mail_odd { } -table#LC_cstr_controls { - width: 100%; - border-collapse: collapse; -} -table#LC_cstr_controls tr td { - border: 4px solid $pgbg; - padding: 4px; - text-align: center; - background: $tabbg; -} -table#LC_cstr_controls tr th { - border: 4px solid $pgbg; - background: $table_header; - text-align: center; - font-family: $sans; - font-size: smaller; -} - table.LC_data_table tr > td.LC_browser_file, table.LC_data_table tr > td.LC_browser_file_published { background: #CCFF88; @@ -4856,8 +4851,27 @@ table.LC_data_table tr.LC_browser_folder background: #CCCCFF; } +table.LC_data_table tr > td.LC_roles_is { +/* background: #77FF77; */ +} +table.LC_data_table tr > td.LC_roles_future { + background: #FFFF77; +} +table.LC_data_table tr > td.LC_roles_will { + background: #FFAA77; +} +table.LC_data_table tr > td.LC_roles_expired { + background: #FF7777; +} +table.LC_data_table tr > td.LC_roles_will_not { + background: #AAFF77; +} +table.LC_data_table tr > td.LC_roles_selected { + background: #11CC55; +} + span.LC_current_location { - font-size: x-large; + font-size:larger; background: $pgbg; } @@ -5301,23 +5315,6 @@ div.LC_clear_float_footer { } -div.LC_grade_select_mode { - font-family: $sans; -} -div.LC_grade_select_mode div div { - margin: 5px; -} -div.LC_grade_select_mode_selector { - margin: 5px; - float: left; -} -div.LC_grade_select_mode_selector_header { - font: bold medium $sans; -} -div.LC_grade_select_mode_type { - clear: left; -} - div.LC_grade_show_user { margin-top: 20px; border: 1px solid black; @@ -5325,7 +5322,8 @@ div.LC_grade_show_user { div.LC_grade_user_name { background: #DDDDEE; border-bottom: 1px solid black; - font: bold large $sans; + font-weight: bold; + font-size: large; } div.LC_grade_show_user_odd_row div.LC_grade_user_name { background: #DDEEDD; @@ -5344,7 +5342,8 @@ div.LC_grade_show_problem_header, div.LC_grade_submissions_header, div.LC_grade_message_center_header, div.LC_grade_assign_header { - font: bold large $sans; + font-weight: bold; + font-size: large; } div.LC_grade_show_problem_problem, div.LC_grade_submissions_body, @@ -5355,7 +5354,8 @@ div.LC_grade_assign_body { background: #FFFFFF; } span.LC_grade_check_note { - font: normal medium $sans; + font-weight: normal; + font-size: medium; display: inline; position: absolute; right: 1em; @@ -5365,12 +5365,13 @@ table.LC_scantron_action { width: 100%; } table.LC_scantron_action tr th { - font: normal bold $sans; + font-weight:bold; + font-style:normal; } - -div.LC_edit_problem_header, +.LC_edit_problem_header, div.LC_edit_problem_footer { - font: normal medium $sans; + font-weight: normal; + font-size: medium; margin: 2px; } div.LC_edit_problem_header, @@ -5387,12 +5388,14 @@ div.LC_edit_problem_header_edit_row { margin-bottom: 5px; } div.LC_edit_problem_header_title { - font: larger bold $sans; + font-weight: bold; + font-size: larger; background: $tabbg; padding: 3px; } table.LC_edit_problem_header_title { - font: larger bold $sans; + font-size: larger; + font-weight: bold; width: 100%; border-color: $pgbg; border-style: solid; @@ -5440,10 +5443,7 @@ table#LC_mainmenu td.LC_mainmenu_col_fie font-size: small; font-weight: bold; } -fieldset#LC_mainmenu_fieldset { - margin:0px 10px 10px 0px; -} /* ---- Remove when done ---- # The following styles is part of the redesign of LON-CAPA and are # subject to change during this project. @@ -5451,106 +5451,94 @@ fieldset#LC_mainmenu_fieldset { # changed or removed. # --------------------------*/ - -body { - font-family: Tahoma, Arial,Helvetica,sans-serif; - font-size: 0.85em; - line-height: 130%; - color: RGB(45, 45, 45); -} - -a:link,a:visited { - /*color: RGB(0, 118, 127);*/ - /*text-decoration: underline;*/ +a:hover, +ol.smallMenu a:hover, +ol#MenuBreadcrumbs a:hover, +ul#TabMainMenuContent a:hover, +.FormSectionClearButton input:hover{ + color:#BF2317; + text-decoration:none; } -a:hover{ - text-decoration:none; -} -/*a:hover, -UL.smallMenu A:hover, -UL.MenuBreadcrumbs A:hover, -UL#TabMainMenuContent A:hover{ - color: rgb(200, 10, 50); -}*/ - h1 { - padding:5px 10px 5px 20px; + padding:5px 10px 5px 0px; line-height:130%; } -h2,h4,h6 { - /*color: RGB(0, 118, 127);*/ -} + h2,h3,h4,h5,h6 { margin:5px 0px 5px 0px; line-height:130%; } - -.right { - text-align: right; -} - -.center { - text-align: center; -} - -.left { - text-align: left; -} +.hcell{ + padding:3px 15px 3px 15px; + margin:0px; + background-color:$tabbg; + border-bottom:solid 1px $lg_border_color; +} +.noBorder { + border:0px; +} +/* +.bgLightGrey { background:URL(images/TabMenuBG.png) repeat-x left top; } +.bgLightGreyYellow {background-color:#EFECE0;} +*/ +/* Main Header with discription of Person, Course, etc. */ .HeadRight { text-align: right; float: right; margin: 0px; padding: 0px; - right:0; + right:0; position:absolute; -} - -img { -/* border: 0px; */ -} - -.personalBgColor { - background: RGB(237, 239, 0) url(images/headHighlight.png) repeat-y left top; + overflow:hidden; } p { padding: 10px; + +} +.FormSectionClearButton input { + background-color:transparent; + border:0px; + cursor:pointer; + text-decoration:underline; } -DL,UL,Div,Fieldset { - /*margin: 10px;*/ + + +dl,ul,div,fieldset { + margin: 10px 10px 10px 0px; overflow:hidden; } -OL.smallMenu { - margin: 0px 0px 0px 0px; +ol.smallMenu { + margin: 0px; } -OL.smallMenu li { +ol.smallMenu li { display: inline; padding: 5px 5px 0px 10px; vertical-align: top; } -OL.smallMenu li img { +ol.smallMenu li img { vertical-align: bottom; } -OL.smallMenu A { +ol.smallMenu a { font-size: 90%; color: RGB(80, 80, 80); text-decoration: none; } -OL#TabMainMenuContent { +ol#TabMainMenuContent { margin: 0px 0px 10px 0px; padding: 0px; } -OL#TabMainMenuContent LI { +ol#TabMainMenuContent li { display: inline; vertical-align: bottom; border-bottom: solid 1px RGB(175, 175, 175); @@ -5560,19 +5548,19 @@ OL#TabMainMenuContent LI { line-height: 140%; font-weight: bold; overflow:hidden; - background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left top; +/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left top;*/ } -OL#TabMainMenuContent LI A { +ol#TabMainMenuContent li a{ color: RGB(47, 47, 47); text-decoration: none; } -OL#TabMainMenuContent DIV.columnSection { +ol#TabMainMenuContent div.columnSection { margin-bottom: 0px; } -OL#MenuBreadcrumbs { +ol#MenuBreadcrumbs, ol#PathBreadcrumbs { border-top: solid 1px RGB(255, 255, 255); height: 20px; line-height: 20px; @@ -5580,68 +5568,55 @@ OL#MenuBreadcrumbs { margin: 0px 0px 30px 0px; padding-left: 10px; list-style-position: inside; - background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left - top; +/* background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left + top;*/ } -OL#MenuBreadcrumbs li { - background: url(images/pfeil_white.png) no-repeat left center; +ol#MenuBreadcrumbs li, ol#PathBreadcrumbs li { +/* background: url(images/pfeil_white.png) no-repeat left center;*/ display: inline; padding: 0px 0px 0px 10px; vertical-align: bottom; overflow:hidden; } -OL#MenuBreadcrumbs LI A { +ol#MenuBreadcrumbs li a { text-decoration: none; font-size:90%; } - -h4.hcell { - padding: 3px 10px 3px 10px; - margin: 0px; - background: RGB(0, 118, 127); - color: white; - border: outset 1px; -} - -DIV.DivContentBoxSpecial -{ - border: solid 1px RGB(100, 100, 100); +ol#PathBreadcrumbs li a{ + text-decoration:none; + font-size:100%; + font-weight:bold; } -FIELDSET +.ContentBoxSpecial { - /*width:78%;*/ -} -DIV.DivContentBox, -DIV.DivContentBoxSpecial { - width: 80%; - margin:10px; + border: solid 1px $lg_border_color; } - -FIELDSET legend,DL DT { - font-weight: bold; - font-size: 110%; - /*padding-left: 0px;*/ -/* margin-left: 0px;*/ +.ContentBox { + padding:10px; } - -DIV.DivImportant { - background: url(images/important.png) no-repeat center top; - padding: 100px 10px 10px 10px; - width: 200px; - border: double 4px RGB(200, 200, 200); +.PopUp +{ + padding:10px; + border-left:solid 1px $lg_border_color; + border-top:solid 1px $lg_border_color; + border-bottom:outset 1px $lg_border_color; + border-right:outset 1px $lg_border_color; + display:none; + position:absolute; + right:0; + background-color:white; + z-index:5; } - - -DL.ListStyleClean DT { +dl.ListStyleClean dt { padding-right: 5px; display: table-header-group; } -DL.ListStyleClean DD { +dl.ListStyleClean dd { display: table-row; } @@ -5652,75 +5627,71 @@ DL.ListStyleClean DD { .ListStyleSpecial { /*display:block; */ - width: 400px; list-style-position: inside; list-style-type: none; overflow: hidden; padding: 0px; } -.ListStyleClean li, .ListStyleSimple li, -.ListStyleSimple DD, +.ListStyleSimple dd, .ListStyleNormal li, -.ListStyleNormal DD, +.ListStyleNormal dd, .ListStyleSpecial li, -.ListStyleSpecial DD +.ListStyleSpecial dd { margin: 0px; padding: 5px 5px 5px 10px; clear: both; - /*display:block;*/ } -.ListStyleClean LI, -.ListStyleClean DD { +.ListStyleClean li, +.ListStyleClean dd { padding-top: 0px; padding-bottom: 0px; } -.ListStyleSimple DD, -.ListStyleSimple LI{ - border-bottom: solid 1px RGB(150, 150, 150); +.ListStyleSimple dd, +.ListStyleSimple li{ + border-bottom: solid 1px $lg_border_color; } -.ListStyleSpecial LI, -.ListStyleSpecial DD { +.ListStyleSpecial li, +.ListStyleSpecial dd { list-style-type: none; background-color: RGB(220, 220, 220); margin-bottom: 4px; } -table.SimpleTable *{ - padding:10px; +table.SimpleTable { + margin:5px; + border:solid 1px $lg_border_color; } -table.SimpleTable td { - vertical-align:top; - border:solid 1px RGB(210,210,210); +table.SimpleTable tr { + padding:0px; + border:solid 1px $lg_border_color; } table.SimpleTable thead{ - background:rgb(210,210,210); + background:rgb(220,220,220); } -DIV.columnSection { +div.columnSection { display: block; clear: both; overflow: hidden; margin:0px; } -DIV.columnSection>* { +div.columnSection>* { float: left; margin: 10px 20px 10px 0px; overflow:hidden; } - -DIV.columnSection>FIELDSET, -DIV.columnSection>DIV.DivContentBox, -DIV.columnSection>DIV.DivContentBoxSpecial +div.columnSection > .ContentBox, +div.columnSection > .ContentBoxSpecial { - width: 480px; + width: 400px; } @@ -5737,11 +5708,19 @@ DIV.columnSection>DIV.DivContentBoxSpeci .LC_loginpage_loginContainer { float:left; - width:60%; + width: 182px; + border:1px solid #CCCCCC; + background-color:$loginbg; } +.LC_loginpage_loginContainer h1{ + margin-top:0; + display:block; + background:$bgcol; + color:$textcol; + padding-left:5px; +} .LC_loginpage_loginInfo { - margin-top:20px; margin-left:20px; float:left; width:30%; @@ -5749,6 +5728,13 @@ DIV.columnSection>DIV.DivContentBoxSpeci padding:10px; } +.LC_loginpage_loginDomain { + margin-right:20px; + width:20%; + float:left; + padding:10px; +} + .LC_loginpage_space { clear:both; margin-bottom:20px; @@ -5768,7 +5754,6 @@ DIV.columnSection>DIV.DivContentBoxSpeci } - END } @@ -6032,11 +6017,21 @@ sub start_page { } if ($args->{'js_ready'}) { - $result = &js_ready($result); + $result = &js_ready($result); } if ($args->{'html_encode'}) { - $result = &html_encode($result); + $result = &html_encode($result); } + + if (exists $args->{'bread_crumbs'}) { + &Apache::lonhtmlcommon::clear_breadcrumbs(); + my $temp = $args->{'bread_crumbs'}; + foreach my $crumb (@$temp){ + &Apache::lonhtmlcommon::add_breadcrumb($crumb); + } + $result .= &Apache::lonhtmlcommon::breadcrumbs(); + } + return $result; } @@ -6183,7 +6178,7 @@ sub simple_error_page { } sub start_data_table_empty_row { - $row_count[0]++; +# $row_count[0]++; return '
'.$display.'
'.$display.'