--- loncom/interface/loncommon.pm 2009/02/25 14:09:03 1.756 +++ loncom/interface/loncommon.pm 2009/03/21 21:41:14 1.775 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.756 2009/02/25 14:09:03 weissno Exp $ +# $Id: loncommon.pm,v 1.775 2009/03/21 21:41:14 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -924,16 +924,22 @@ sub help_open_topic { # Add the text if ($text ne "") { - $template.="$text"; + $template.='' + .'' + .$text.''; } - # Add the graphic + # (Always) Add the graphic my $title = &mt('Online Help'); my $helpicon=&lonhttpdurl("/adm/help/help.png"); - $template .= <<"ENDTEMPLATE"; - (Help: $topic) -ENDTEMPLATE - + $template.=' ' + .''.&mt('Help: [_1]',$topic).''; + if ($text ne "") { + $template.=''; + } return $template; } @@ -945,25 +951,26 @@ sub helpLatexCheatsheet { my $out; my $addOther = ''; if ($topic) { - $addOther = &Apache::loncommon::help_open_topic($topic,$text, - undef, undef, 600). - ''; - } - $out = ''; + $addOther = ''.&Apache::loncommon::help_open_topic($topic,&mt($text), + undef, undef, 600). + ' '; + } + $out = '' # Start cheatsheet + .$addOther + .'' + .&Apache::loncommon::help_open_topic('Greek_Symbols',&mt('Greek Symbols'), + undef,undef,600) + .' ' + .&Apache::loncommon::help_open_topic('Other_Symbols',&mt('Other Symbols'), + undef,undef,600) + .''; unless ($not_author) { - $out .= ''; + $out .= ' ' + .&Apache::loncommon::help_open_topic('Authoring_Output_Tags',&mt('Output Tags'), + undef,undef,600) + .''; } - $out .= '
'. - $addOther . - &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'), - undef,undef,600). - ''. - &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'), - undef,undef,600). - ''. - &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'), - undef,undef,600). - '
'; + $out .= ''; # End cheatsheet return $out; } @@ -2119,14 +2126,14 @@ sub authform_kerberos { $autharg,$jscall); my ($authnum,%can_assign) = &get_assignable_auth($in{'domain'}); if ($in{'kerb_def_auth'} eq 'krb5') { - $check5 = ' checked="on"'; + $check5 = ' checked="checked"'; } else { - $check4 = ' checked="on"'; + $check4 = ' checked="checked"'; } $krbarg = $in{'kerb_def_dom'}; if (defined($in{'curr_authtype'})) { if ($in{'curr_authtype'} eq 'krb') { - $krbcheck = ' checked="on"'; + $krbcheck = ' checked="checked"'; if (defined($in{'mode'})) { if ($in{'mode'} eq 'modifyuser') { $krbcheck = ''; @@ -2134,10 +2141,10 @@ sub authform_kerberos { } if (defined($in{'curr_kerb_ver'})) { if ($in{'curr_krb_ver'} eq '5') { - $check5 = ' checked="on"'; + $check5 = ' checked="checked"'; $check4 = ''; } else { - $check4 = ' checked="on"'; + $check4 = ' checked="checked"'; $check5 = ''; } } @@ -2228,7 +2235,7 @@ sub authform_internal{ if (defined($in{'curr_authtype'})) { if ($in{'curr_authtype'} eq 'int') { if ($can_assign{'int'}) { - $intcheck = 'checked="on" '; + $intcheck = 'checked="checked" '; if (defined($in{'mode'})) { if ($in{'mode'} eq 'modifyuser') { $intcheck = ''; @@ -2283,7 +2290,7 @@ sub authform_local{ if (defined($in{'curr_authtype'})) { if ($in{'curr_authtype'} eq 'loc') { if ($can_assign{'loc'}) { - $loccheck = 'checked="on" '; + $loccheck = 'checked="checked" '; if (defined($in{'mode'})) { if ($in{'mode'} eq 'modifyuser') { $loccheck = ''; @@ -2337,7 +2344,7 @@ sub authform_filesystem{ if (defined($in{'curr_authtype'})) { if ($in{'curr_authtype'} eq 'fsys') { if ($can_assign{'fsys'}) { - $fsyscheck = 'checked="on" '; + $fsyscheck = 'checked="checked" '; if (defined($in{'mode'})) { if ($in{'mode'} eq 'modifyuser') { $fsyscheck = ''; @@ -3815,7 +3822,7 @@ sub blocking_status { &Apache::lonnet::coursedescription($course); $coursedesc = $courseinfo{'description'}; } - $category = "Group files in the course '$coursedesc'"; + $category = "Group portfolio in the course '$coursedesc'"; } else { $category = 'Portfolio files belonging to '; if ($env{'user.name'} eq 'public' && @@ -4244,7 +4251,7 @@ $realm  ENDROLE - my $titleinfo = ''.$title.''; + my $titleinfo = '

'.$title.'

'; if ($customtitle) { $titleinfo = $customtitle; } @@ -4514,19 +4521,11 @@ table.thinborder tr td { form, .inline { display: inline; } -.LC_center { text-align: center; } -.LC_left { text-align:left; } .LC_right {text-align:right;} .LC_middle {vertical-align:middle;} -.LC_top {vertical-align:top;} -.LC_bottom {vertical-align:bottom;} /* just for tests */ -.LC_300Box { width:300px; } .LC_400Box {width:400px; } -.LC_500Box {width:500px; } -.LC_600Box {width:600px; } -.LC_800Box {width:800px;} /* end */ .LC_filename {font-family: $mono; white-space:pre;} @@ -4549,8 +4548,9 @@ form, .inline { display: inline; } } .LC_icon { - border: 0px; + border: none; } + .LC_indexer_icon { border: 0px; height: 22px; @@ -4558,7 +4558,7 @@ form, .inline { display: inline; } .LC_docs_spacer { width: 25px; height: 1px; - border: 0px; + border: none; } .LC_internal_info { @@ -4602,18 +4602,25 @@ table.LC_docs_path { table#LC_title_bar td { background: $tabbg; } -table#LC_title_bar td.LC_title_bar_who { +table#LC_title_bar .LC_title_bar_who { background: $tabbg; color: $font; font: small $sans; text-align: right; + margin: 0px; +} +table#LC_title_bar .LC_title_bar_name { + margin: 0px; +} +table#LC_title_bar .LC_title_bar_role { + margin: 0px; +} +table#LC_title_bar .LC_title_bar_realm { + margin: 0px; } span.LC_metadata { font-family: $sans; } -span.LC_title_bar_title { - font: bold x-large $sans; -} table#LC_title_bar td.LC_title_bar_domain_logo { background: $sidebg; text-align: right; @@ -4648,10 +4655,6 @@ 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; @@ -4662,20 +4665,9 @@ 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 { @@ -4692,11 +4684,6 @@ table#LC_mainmenu td.LC_mainmenu_column font-size: 120%; } -.LC_fontcolor_red -{ - color: #FF0000; -} - .LC_menubuttons_inline_text { color: $font; font-family: $sans; @@ -4883,9 +4870,6 @@ 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; @@ -4911,26 +4895,13 @@ table.LC_mail_list tr.LC_mail_other { table.LC_mail_list tr.LC_mail_other:hover { background-color: $mail_other_hover; } -table.LC_mail_list tr.LC_mail_even { -} -table.LC_mail_list tr.LC_mail_odd { -} -table.LC_data_table tr > td.LC_browser_file, -table.LC_data_table tr > td.LC_browser_file_published { +table.LC_data_table tr > td.LC_browser_file { background: #CCFF88; } -table.LC_data_table tr > td.LC_browser_file_locked, -table.LC_data_table tr > td.LC_browser_file_unpublished { +table.LC_data_table tr > td.LC_browser_file_locked { 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; } @@ -4982,7 +4953,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_restrictions { +td.LC_parm_overview_parm_selectors { border: 1px solid black; border-collapse: collapse; } @@ -5235,14 +5206,6 @@ 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, @@ -5272,6 +5235,7 @@ table.LC_prior_match tr td { border: 1px solid #000000; } +td.LC_nobreak, span.LC_nobreak { white-space: nowrap; } @@ -5291,11 +5255,6 @@ table.LC_docs_documents { 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; @@ -5514,13 +5473,6 @@ 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; @@ -5565,20 +5517,13 @@ h2,h3,h4,h5,h6 border:0px; } -.LC_bgLightGrey{ - background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left bottom; -} - /* Main Header with discription of Person, Course, etc. */ -.LC_HeadRight { - text-align: right; - float: right; - margin: 0px; - padding: 0px; - right:0; - position:absolute; - overflow:hidden; + +.LC_Right { + float: right; + margin: 0px; + padding: 0px; } p, .LC_ContentBox { @@ -5592,6 +5537,14 @@ p, .LC_ContentBox { text-decoration:underline; } +.LC_help_open_topic { + color: #FFFFFF; + background-color: #EEEEFF; + margin: 1px; + padding: 4px; + border: 1px solid #000033; + white-space: nowrap; +} dl,ul,div,fieldset { margin: 10px 10px 10px 0px; @@ -5616,7 +5569,7 @@ ol.LC_smallMenu a { color: RGB(80, 80, 80); text-decoration: none; } -ol#LC_TabMainMenueContent, ul.LC_TabContent , +ol#LC_TabMainMenuContent, ul.LC_TabContent , ul.LC_TabContentBigger { display:block; list-style:none; @@ -5660,10 +5613,12 @@ ul.LC_TabContent li a, ul.LC_TabContent text-decoration:none; font-size:95%; font-weight:bold; + padding-right: 16px; } ul.LC_TabContent li:hover, ul.LC_TabContent li.active{ - background-color:#FFFFFF; + background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center; border-bottom:solid 1px #FFFFFF; + padding-right: 16px; } ul.LC_TabContentBigger li{ vertical-align:bottom; @@ -5680,16 +5635,6 @@ ul.LC_TabContentBigger li, ul.LC_TabCont font-size:110%; font-weight:bold; } -#LC_CourseDocuments, #LC_SupplementalCourseDocuments -{ - margin:0px; -} - -.LC_hideThis -{ - display:none; - visibility:hidden; -} ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs { border-top: solid 1px RGB(255, 255, 255); @@ -5752,7 +5697,6 @@ dl.LC_ListStyleClean dd { .LC_ListStyleClean, .LC_ListStyleSimple, .LC_ListStyleNormal, -.LC_ListStyleNormal_Border, .LC_ListStyleSpecial { /*display:block; */ @@ -5889,29 +5833,98 @@ table em{ font-weight: bold; font-style: normal; } - -table#LC_tableOfContent{ - border-collapse: collapse; - border-spacing: 0; +table.LC_tableBrowseRes, +table.LC_tableOfContent{ + border:none; + border-spacing: 1; padding: 3px; - border: 0; background-color: #FFFFFF; font-size: 90%; } -table#LC_tableOfContent a { +table.LC_tableBrowseRes a, +table.LC_tableOfContent a { + background-color: transparent; text-decoration: none; } -table#LC_tableOfContent tr.LC_trOdd{ +table.LC_tableBrowseRes tr.LC_trOdd, +table.LC_tableOfContent tr.LC_trOdd{ background-color: #EEEEEE; } -table#LC_tableOfContent img{ +table.LC_tableOfContent img{ border: none; height: 1.3em; vertical-align: text-bottom; margin-right: 0.3em; } + +a#LC_content_toolbar_firsthomework{ + background-image:url(/res/adm/pages/open-first-problem.gif); +} + +a#LC_content_toolbar_launchnav{ + background-image:url(/res/adm/pages/start-navigation.gif); +} + +a#LC_content_toolbar_closenav{ + background-image:url(/res/adm/pages/close-navigation.gif); +} + +a#LC_content_toolbar_everything{ + background-image:url(/res/adm/pages/show-all.gif); +} + +a#LC_content_toolbar_uncompleted{ + background-image:url(/res/adm/pages/show-incomplete-problems.gif); +} + +#LC_content_toolbar_clearbubbles{ + background-image:url(/res/adm/pages/mark-discussionentries-read.gif); +} + +a#LC_content_toolbar_changefolder{ + background : url(/res/adm/pages/close-all-folders.gif) top center ; +} + +a#LC_content_toolbar_changefolder_toggled{ + background-image:url(/res/adm/pages/open-all-folders.gif); +} + +ul#LC_toolbar li a:hover{ + background-position: bottom center; +} + +ul#LC_toolbar{ + padding:0; + margin: 2px; + list-style:none; + position:relative; + background-color:white; +} + +ul#LC_toolbar li{ + border:1px solid white; + padding:0; + margin: 0; + float: left; + display:inline; + vertical-align:middle; +} + +a.LC_toolbarItem{ + display:block; + padding:0; + margin:0; + height: 32px; + width: 32px; + color:white; + border:0 none; + background-repeat:no-repeat; + background-color:transparent; +} + + END } @@ -6181,16 +6194,23 @@ sub start_page { $result = &html_encode($result); } - if (exists($args->{'bread_crumbs'})) { - &Apache::lonhtmlcommon::clear_breadcrumbs(); - if (ref($args->{'bread_crumbs'}) eq 'ARRAY') { - foreach my $crumb (@{$args->{'bread_crumbs'}}){ - &Apache::lonhtmlcommon::add_breadcrumb($crumb); - } - } - $result .= &Apache::lonhtmlcommon::breadcrumbs(); - } + #Breadcrumbs + if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) { + &Apache::lonhtmlcommon::clear_breadcrumbs(); + #if any br links exists, add them to the breadcrumbs + if (exists($args->{'bread_crumbs'}) and ref($args->{'bread_crumbs'}) eq 'ARRAY') { + foreach my $crumb (@{$args->{'bread_crumbs'}}){ + &Apache::lonhtmlcommon::add_breadcrumb($crumb); + } + } + #if bread_crumbs_component exists show it as headline else show only the breadcrumbs + if(exists($args->{'bread_crumbs_component'})){ + $result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'}); + }else{ + $result .= &Apache::lonhtmlcommon::breadcrumbs(); + } + } return $result; } @@ -6951,7 +6971,7 @@ sub default_quota { ['quotas'],$udom); if (ref($quotahash{'quotas'}) eq 'HASH') { if ($inststatus ne '') { - my @statuses = split(/:/,$inststatus); + my @statuses = map { &unescape($_); } split(/:/,$inststatus); foreach my $item (@statuses) { if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') { @@ -7417,6 +7437,7 @@ sub personal_data_fieldtitles { middlename => 'Middle Name', generation => 'Generation', gen => 'Generation', + inststatus => 'Affiliation', ); return %fieldtitles; } @@ -8782,9 +8803,10 @@ sub restore_settings { =item * &build_recipient_list() -Build recipient lists for three types of e-mail: -(a) Error Reports, (b) Package Updates, (c) Help requests, generated by -lonerrorhandler.pm, CHECKRPMS and lonsupportreq.pm respectively. +Build recipient lists for four types of e-mail: +(a) Error Reports, (b) Package Updates, (c) lonstatus warnings/errors +(d) Help requests, generated by +lonerrorhandler.pm, CHECKRPMS, loncron, and lonsupportreq.pm respectively. Inputs: defmail (scalar - email address of default recipient), @@ -8808,17 +8830,21 @@ sub build_recipient_list { my %domconfig = &Apache::lonnet::get_dom('configuration',['contacts'],$defdom); if (ref($domconfig{'contacts'}) eq 'HASH') { - if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') { - my @contacts = ('adminemail','supportemail'); - foreach my $item (@contacts) { - if ($domconfig{'contacts'}{$mailing}{$item}) { - my $addr = $domconfig{'contacts'}{$item}; - if (!grep(/^\Q$addr\E$/,@recipients)) { - push(@recipients,$addr); + if (exists($domconfig{'contacts'}{$mailing})) { + if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') { + my @contacts = ('adminemail','supportemail'); + foreach my $item (@contacts) { + if ($domconfig{'contacts'}{$mailing}{$item}) { + my $addr = $domconfig{'contacts'}{$item}; + if (!grep(/^\Q$addr\E$/,@recipients)) { + push(@recipients,$addr); + } } + $otheremails = $domconfig{'contacts'}{$mailing}{'others'}; } - $otheremails = $domconfig{'contacts'}{$mailing}{'others'}; } + } elsif ($origmail ne '') { + push(@recipients,$origmail); } } elsif ($origmail ne '') { push(@recipients,$origmail); @@ -9089,7 +9115,7 @@ sub assign_categories_table { my $checked = ''; if (@currcategories > 0) { if (grep(/^\Q$item\E$/,@currcategories)) { - $checked = ' checked="checked" '; + $checked = ' checked="checked"'; } } $output .= ''. @@ -9155,7 +9181,7 @@ sub assign_category_rows { if (ref($currcategories) eq 'ARRAY') { if (@{$currcategories} > 0) { if (grep(/^\Q$item\E$/,@{$currcategories})) { - $checked = ' checked="checked" '; + $checked = ' checked="checked"'; } } } @@ -9927,6 +9953,12 @@ sub init_user_environment { &Apache::lonnet::usertools_access($username,$domain,$tool,'reload'); } + foreach my $crstype ('official','unofficial') { + $userenv{'canrequest.'.$crstype} = + &Apache::lonnet::usertools_access($username,$domain,$crstype, + 'reload','requestcourses'); + } + $env{'user.environment'} = "$lonids/$cookie.id"; if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",