--- loncom/interface/loncommon.pm 2009/02/25 13:25:52 1.755 +++ loncom/interface/loncommon.pm 2009/03/17 21:05:06 1.770 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.755 2009/02/25 13:25:52 neumanie Exp $ +# $Id: loncommon.pm,v 1.770 2009/03/17 21:05:06 droeschl 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; } @@ -2808,8 +2815,7 @@ sub aboutmewrapper { return; } return ''.$link.''; + ($target?' target="$target"':'').' title="'.&mt("View this user's personal information page").'">'.$link.''; } # ------------------------------------------------------------ Syllabus Wrapper @@ -3816,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' && @@ -4245,7 +4251,7 @@ $realm  ENDROLE - my $titleinfo = ''.$title.''; + my $titleinfo = '

'.$title.'

'; if ($customtitle) { $titleinfo = $customtitle; } @@ -4612,9 +4618,6 @@ table#LC_title_bar td.LC_title_bar_who { 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; @@ -5273,6 +5276,7 @@ table.LC_prior_match tr td { border: 1px solid #000000; } +td.LC_nobreak, span.LC_nobreak { white-space: nowrap; } @@ -5582,6 +5586,12 @@ h2,h3,h4,h5,h6 overflow:hidden; } +.LC_Right { + float: right; + margin: 0px; + padding: 0px; +} + p, .LC_ContentBox { padding: 10px; @@ -5593,6 +5603,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; @@ -5617,7 +5635,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; @@ -5661,10 +5679,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; @@ -5891,28 +5911,95 @@ table em{ font-style: normal; } -table#LC_tableOfContent{ - border-collapse: collapse; - border-spacing: 0; +table.LC_tableOfContent{ + border:none; + border-spacing: 1; padding: 3px; - border: 0; background-color: #FFFFFF; font-size: 90%; } -table#LC_tableOfContent a { +table.LC_tableOfContent a { + background-color:transparent; text-decoration: none; } -table#LC_tableOfContent 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 } @@ -6182,16 +6269,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; } @@ -6952,7 +7046,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 '') { @@ -7418,6 +7512,7 @@ sub personal_data_fieldtitles { middlename => 'Middle Name', generation => 'Generation', gen => 'Generation', + inststatus => 'Affiliation', ); return %fieldtitles; } @@ -8783,9 +8878,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), @@ -8809,17 +8905,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); @@ -9928,6 +10028,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",