--- loncom/interface/loncommon.pm 2009/02/07 20:45:27 1.743
+++ 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.743 2009/02/07 20:45:27 raeburn Exp $
+# $Id: loncommon.pm,v 1.770 2009/03/17 21:05:06 droeschl Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -923,19 +923,23 @@ sub help_open_topic {
}
# Add the text
- if ($text ne "") {
- $template .=
- "
".
- "$text";
+ if ($text ne "") {
+ $template.=''
+ .''
+ .$text.'';
}
- # Add the graphic
+ # (Always) Add the graphic
my $title = &mt('Online Help');
my $helpicon=&lonhttpdurl("/adm/help/help.png");
- $template .= <<"ENDTEMPLATE";
-
-ENDTEMPLATE
- if ($text ne '') { $template.=' |
' };
+ $template.=' '
+ .'';
+ if ($text ne "") {
+ $template.='';
+ }
return $template;
}
@@ -947,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("Greek_Symbols",&mt('Greek Symbols'),
- undef,undef,600).
- ' | '.
- &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
- undef,undef,600).
- ' | ';
+ $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 .= ''.
- &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
- undef,undef,600).
- ' | ';
+ $out .= ' '
+ .&Apache::loncommon::help_open_topic('Authoring_Output_Tags',&mt('Output Tags'),
+ undef,undef,600)
+ .'';
}
- $out .= ' ';
+ $out .= ''; # End cheatsheet
return $out;
}
@@ -2810,7 +2815,7 @@ sub aboutmewrapper {
return;
}
return ''.$link.'';
+ ($target?' target="$target"':'').' title="'.&mt("View this user's personal information page").'">'.$link.'';
}
# ------------------------------------------------------------ Syllabus Wrapper
@@ -3817,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' &&
@@ -4246,7 +4251,7 @@ $realm
|
ENDROLE
- my $titleinfo = ''.$title.'';
+ my $titleinfo = ''.$title.'
';
if ($customtitle) {
$titleinfo = $customtitle;
}
@@ -4525,7 +4530,7 @@ form, .inline { display: inline; }
/* just for tests */
.LC_300Box { width:300px; }
-.LC_200Box {width:200px; }
+.LC_400Box {width:400px; }
.LC_500Box {width:500px; }
.LC_600Box {width:600px; }
.LC_800Box {width:800px;}
@@ -4613,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;
@@ -5274,6 +5276,7 @@ table.LC_prior_match tr td {
border: 1px solid #000000;
}
+td.LC_nobreak,
span.LC_nobreak {
white-space: nowrap;
}
@@ -5583,6 +5586,12 @@ h2,h3,h4,h5,h6
overflow:hidden;
}
+.LC_Right {
+ float: right;
+ margin: 0px;
+ padding: 0px;
+}
+
p, .LC_ContentBox {
padding: 10px;
@@ -5594,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;
@@ -5618,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;
@@ -5626,7 +5643,7 @@ ul.LC_TabContentBigger {
padding: 0px;
}
-ol#LC_TabMainMenuContent li, ul.LC_TabContent,
+ol#LC_TabMainMenuContent li, ul.LC_TabContent li,
ul.LC_TabContentBigger li{
display: inline;
border-right: solid 1px $lg_border_color;
@@ -5650,17 +5667,24 @@ ol#LC_TabMainMenuContent li a{
}
ul.LC_TabContent {
min-height:1.6em;
- border-bottom:solid 1px $lg_border_color;
}
ul.LC_TabContent li{
vertical-align:middle;
padding:0px 10px 0px 10px;
+ 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%;
font-weight:bold;
+ padding-right: 16px;
+}
+ul.LC_TabContent li:hover, ul.LC_TabContent li.active{
+ 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;
@@ -5670,6 +5694,9 @@ ul.LC_TabContentBigger li{
margin-left:2px;
background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
}
+ul.LC_TabContentBigger li:hover, ul.LC_TabContentBigger li.active{
+ background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;
+}
ul.LC_TabContentBigger li, ul.LC_TabContentBigger li a{
font-size:110%;
font-weight:bold;
@@ -5719,7 +5746,21 @@ ol#LC_PathBreadcrumbs li a{
{
border: solid 1px $lg_border_color;
}
-
+.LC_ContentBoxSpecialContactInfo
+{
+ border: solid 1px $lg_border_color;
+ max-width:25%;
+ min-width:25%;
+}
+.LC_AboutMe_Image
+{
+ float:left;
+ margin-right:10px;
+}
+.LC_Clear_AboutMe_Image
+{
+ clear:left;
+}
dl.LC_ListStyleClean dt {
padding-right: 5px;
display: table-header-group;
@@ -5795,12 +5836,7 @@ div.LC_columnSection {
div.LC_columnSection>* {
float: left;
margin: 10px 20px 10px 0px;
- overflow:hidden;
-}
-div.LC_columnSection > .LC_ContentBox,
-div.LC_columnSection > .LC_ContentBoxSpecial
- {
- width: 400px;
+ overflow:hidden;
}
.ContentBoxSpecialTemplate
@@ -5815,7 +5851,6 @@ div.LC_columnSection > .ContentBoxTempla
div.LC_columnSection > .ContentBoxSpecialTemplate
{
width: 600px;
-
}
.clear{
@@ -5866,11 +5901,105 @@ div.LC_columnSection > .ContentBoxSpecia
}
.LC_loginpage_space {
- clear:both;
- margin-bottom:20px;
+ clear: both;
+ margin-bottom: 20px;
border-bottom: 1px solid #CCCCCC;
}
+table em{
+ font-weight: bold;
+ font-style: normal;
+}
+
+table.LC_tableOfContent{
+ border:none;
+ border-spacing: 1;
+ padding: 3px;
+ background-color: #FFFFFF;
+ font-size: 90%;
+}
+table.LC_tableOfContent a {
+ background-color:transparent;
+ text-decoration: none;
+}
+
+table.LC_tableOfContent tr.LC_trOdd{
+ background-color: #EEEEEE;
+}
+
+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
}
@@ -6140,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;
}
@@ -6910,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 '') {
@@ -7376,6 +7512,7 @@ sub personal_data_fieldtitles {
middlename => 'Middle Name',
generation => 'Generation',
gen => 'Generation',
+ inststatus => 'Affiliation',
);
return %fieldtitles;
}
@@ -8741,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),
@@ -8767,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);
@@ -9886,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",