--- loncom/interface/lonwhatsnew.pm 2020/09/01 22:25:27 1.128
+++ loncom/interface/lonwhatsnew.pm 2025/03/22 21:18:30 1.132
@@ -1,7 +1,7 @@
# The LearningOnline Network
# What's New in a course
#
-# $Id: lonwhatsnew.pm,v 1.128 2020/09/01 22:25:27 raeburn Exp $
+# $Id: lonwhatsnew.pm,v 1.132 2025/03/22 21:18:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -118,7 +118,23 @@ sub handler {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- $r->print(&display_header($command,\%checkallowed));
+ my $udom = $env{'user.domain'};
+ my $uname = $env{'user.name'};
+ my $cid = $env{'request.course.id'};
+ my $store_result = &store_display_settings($uname,$udom,$cid,\%checkallowed);
+ my $store_error;
+
+ unless ($store_result eq 'ok') {
+ my $lctype = lc(&Apache::loncommon::course_type());
+ &Apache::lonnet::logthis('Error saving whatsnew settings: '.
+ $store_result.' for '.'user '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
+ $store_error = ''
+ .&mt('Unable to save visibility settings due to [_1]',
+ $store_result)
+ .' ';
+ }
+
+ $r->print(&display_header($command,$uname,$udom,$cid,\%checkallowed));
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb
@@ -185,7 +201,7 @@ sub handler {
("What's New?",#'Course_Action_Items_Display'
));
}
- &display_main_box($r,$command,$refpage,\%checkallowed,$cdom,$crs);
+ &display_main_box($r,$command,$refpage,\%checkallowed,$cdom,$crs,$store_error);
return OK;
}
@@ -196,11 +212,10 @@ sub handler {
#------------------------------
sub display_main_box {
- my ($r,$command,$refpage,$checkallowed,$cdom,$crs) = @_;
+ my ($r,$command,$refpage,$checkallowed,$cdom,$crs,$store_error) = @_;
my $domain=&Apache::loncommon::determinedomain();
my $function = &Apache::loncommon::get_users_function();
my $lctype = lc(&Apache::loncommon::course_type());
- $r->print('
');
my %threshold_titles = &Apache::lonlocal::texthash (
av_attempts => 'Average number of attempts',
@@ -245,12 +260,13 @@ sub display_main_box {
crslogin => \%crslogins,
sessions => \%sessions,
);
- my %initpage = &Apache::lonlocal::texthash (
+ my %initpage = (
firstres => "first resource in the $lctype",
whatsnew => "What's New Page",
userpref => 'your general user preferences',
coursespecific => "specific setting for this $lctype",
);
+ $r->print('');
if (($command eq 'chgthreshold')
&& $checkallowed->{'abovethreshold'}) {
@@ -277,15 +293,11 @@ sub display_main_box {
&display_interval_config($r,$refpage,\%interval_titles,'sessions');
} else {
&display_actions_box($r,$command,$refpage,\%threshold_titles,
- \%interval_titles,\%initpage,$cdom,$crs,$checkallowed);
+ \%interval_titles,\%initpage,$cdom,$crs,
+ $checkallowed,$store_error);
}
my $end_page = &Apache::loncommon::end_page();
- $r->print(<
-
-
-$end_page
-END_OF_BLOCK
+ $r->print(' '.$end_page);
}
#-------------------------------
@@ -296,13 +308,48 @@ END_OF_BLOCK
#-------------------------------
sub display_header {
- my ($command,$checkallowed) = @_;
-
+ my ($command,$uname,$udom,$cid,$checkallowed) = @_;
+
my $scripttag;
- unless ($command eq 'chgthreshold' || $command eq 'chginterval' ||
- $command eq 'chgoldroleinterval' ||
- $command eq 'chgnewroleinterval' || $command eq 'chgcrslogininterval') {
- $scripttag = <<"END";
+ my $args = {};
+ my %loadentries;
+
+ if ($command eq 'courseinit') {
+ $scripttag = <<"END";
+
+END
+ $loadentries{'onload'} = 'toggleCourseInit(document.courseinitswitch);';
+ } else {
+ unless (($command eq 'chgthreshold' && $checkallowed->{'abovethreshold'}) ||
+ ($command eq 'chginterval' && $checkallowed->{'versionchanges'}) ||
+ ($command eq 'chgdisc' && $checkallowed->{'coursediscussion'}) ||
+ ($command eq 'chgoldroleinterval' && $checkallowed->{'oldroles'}) ||
+ ($command eq 'chgnewroleinterval' && $checkallowed->{'newroles'}) ||
+ ($command eq 'chgcrslogininterval' && $checkallowed->{'crslogin'}) ||
+ ($command eq 'chgsessionlimit' && $checkallowed->{'sessions'})) {
+ my %display_settings = &get_display_settings($uname,$udom,$cid);
+ $scripttag = <<"END";
ENDTOGG
+ if (($checkallowed->{'crslogin'}) && ($display_settings{$cid.':crslogin'} ne 'hide')) {
+ $loadentries{'onload'} = "toggledetails('login');";
+ }
+ if (($checkallowed->{'sessions'}) && ($display_settings{$cid.':sessions'} ne 'hide')) {
+ $loadentries{'onload'} .= "toggledetails('session');";
+ }
+ }
}
my $course_type=&Apache::loncommon::course_type();
+ if (keys(%loadentries)) {
+ $args->{'add_entries'} = \%loadentries;
+ }
return &Apache::loncommon::start_page("What's New?",
- $scripttag);
+ $scripttag,$args);
}
#-------------------------------
@@ -390,7 +447,7 @@ ENDTOGG
sub display_actions_box {
my ($r,$command,$refpage,$threshold_titles,$interval_titles,$initpage,
- $cdom,$crs,$checkallowed) = @_;
+ $cdom,$crs,$checkallowed,$store_error) = @_;
my $udom = $env{'user.domain'};
my $uname = $env{'user.name'};
my $cid = $env{'request.course.id'};
@@ -467,7 +524,7 @@ sub display_actions_box {
}
$header .= &mt('Page set to be displayed after you have selected a role in this '.$lctype).'.'
.' '
- .&mt('Currently: [_1].',''.$currinit.' ')
+ .&mt('Currently: [_1].',''.$currinit.' ')
.' '
.&mt('[_1]Change[_2] for just [_3]this '.$lctype.'[_4] or for [_5]all your courses/communities[_6].'
,''
@@ -490,15 +547,8 @@ sub display_actions_box {
$result = &store_discussion_setting($uname,$udom,$cid);
}
- my $store_result=&store_display_settings($uname,$udom,$cid,$checkallowed);
-
- unless ($store_result eq 'ok') {
- &Apache::lonnet::logthis('Error saving whatsnew settings: '.
- $store_result.' for '.'user '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
- $result .= ''
- .&mt('Unable to save visibility settings due to [_1]',
- $store_result)
- .' ';
+ if ($store_error) {
+ $result = $store_error;
}
if ($result) {
@@ -690,9 +740,13 @@ sub display_actions_box {
if ($show{'sessions'}) {
$sessioncount = &getsessions($cdom,$crs,\%sessions,$timediff{'sessions'},$classlist);
}
- $r->print(qq|$lt{'hial'}
- $lt{'shal'}
-
');
}
@@ -769,13 +822,18 @@ sub display_threshold_config {
my $onchange = 'onfocus="javascript:window.document.forms'.
"['thresholdform'].elements['".$parameter."_setparmval']".
'.checked=true;"';
+ my $aria_textbox = ' aria-label="'.&mt('Threshold value for [_1]',
+ $threshold_titles{$type}).'"';
+ my $aria_checkbox = ' aria-label="'.&mt('Change threshold value for [_1]',
+ $threshold_titles{$type}).'"';
$r->print(&Apache::loncommon::start_data_table_row()."\n".
' '.$threshold_titles{$type}.' '."\n".
''.&Apache::lonhtmlcommon::textbox($parameter.'_value',
$threshold{$type},
- 10,$onchange).' '."\n".
+ 10,$onchange.$aria_textbox).''."\n".
''.
- &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').
+ &Apache::lonhtmlcommon::checkbox($parameter.'_setparmval',
+ '','',$aria_checkbox).
' '."\n".
&Apache::loncommon::end_data_table_row());
}
@@ -829,7 +887,7 @@ sub display_interval_config {
'.
&mt('Display:').'
-
+
'.&mt('Select').'
');
if (ref($interval_titles) eq 'HASH') {
@@ -917,46 +975,49 @@ sub courseinit_config {
my ($control,$current) = &curr_courseinit();
my @chgstate = ('userpref','coursespecific');
my @chgentry = ('firstres','whatsnew');
+ my $courseinitsty = 'display:none;';
+ if ($control eq 'coursespecific') {
+ $courseinitsty = 'display:inline;';
+ }
my $lctype = lc(&Apache::loncommon::course_type());
my %lt = &Apache::lonlocal::texthash(
'chwp' => "Choose which page will be displayed when you enter this $lctype after selecting a role.",
- 'cuva' => 'Current value is determined by',
- 'anis' => 'and is set to display',
'padc' => 'Page display controlled by',
- 'chce' => 'Choose '.$lctype.' entry',
+ 'chce' => "Choose $lctype entry",
'moce' => 'Save',
);
- $r->print(<<"END");
+ $lt{'cuva'} = &mt('Current value is determined by[_1]'.$initpage->{$control}.'[_2] and is set to display[_1]'.$initpage->{$current}.'[_2].',
+ ': ',' ');
+ $r->print(<<"END");
$lt{'chwp'}
- $lt{'cuva'}:
-$$initpage{$control} $lt{'anis'}
-$$initpage{$current} .
+ $lt{'cuva'}
+
');
return;
}
@@ -1139,6 +1200,11 @@ sub check_handgraded {
if (grep(/^essay$/,@types)) {
$handgradeable=1;
last;
+ } elsif (grep(/^custom$/,@types)) {
+ if ($resource->handgrade($part) eq 'yes') {
+ $handgradeable=1;
+ last;
+ }
}
}
}
@@ -1245,8 +1311,10 @@ sub check_thresholds {
'.$stats{$part}{degdiff}.'
'.$lastreset{$part}.' ';
if ($checkallowed->{'resetcounters'}) {
+ my $aria = ' aria-label="'.&mt('Reset counter for [_1] (part [_2])',
+ $$triggered{$symb}{title},$part).'"';
$$triggered{$symb}{text}[$partcount] .=
- ' '.
+ ' '.
' ';
}
$partcount ++;
@@ -1807,10 +1875,14 @@ sub display_handgrade {
'nopr' => 'No problems require handgrading',
);
if (@{$tograde} > 0) {
- $r->print(''.
- $lt{'prna'}.' '.
- $lt{'nmun'}.' ');
+ $r->print(''.
+ $lt{'prna'}.' '.
+ $lt{'nmun'}.' ');
my $rowNum = 0;
+ my $usediv;
+ if (@{$tograde} > 1) {
+ $usediv = 1;
+ }
foreach my $res (@{$tograde}) {
$rowNum ++;
my $css_class = $rowNum%2?' class="LC_odd_row"':'';
@@ -1832,12 +1904,21 @@ sub display_handgrade {
}
$linkurl.='&command=ungraded';
}
- $r->print(''.$$ungraded{$res}{title}.' '.$$ungraded{$res}{count}.' ');
+ $r->print('');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print(' '.
+ ''.$$ungraded{$res}{count}.' ');
}
} elsif ($itemserror) {
- $r->print(''.$itemserror.' ');
+ $r->print(''.$itemserror.' ');
} else {
- $r->print(''.$lt{'nopr'}.' ');
+ $r->print(''.$lt{'nopr'}.' ');
}
}
@@ -1850,21 +1931,32 @@ sub display_haserrors {
noer => 'No problems with errors',
);
if (@{$bombs} > 0) {
- $r->print(''.
- $lt{'reso'}.' '.
- $lt{'nmer'}.' ');
+ $r->print(''.
+ $lt{'reso'}.' '.
+ $lt{'nmer'}.' ');
@{$bombs} = sort { &cmp_title($a,$b,$res_title) } @{$bombs};
+ my $usediv;
+ if (@{$bombs} > 1) {
+ $usediv = 1;
+ }
foreach my $bomb (@{$bombs}) {
$bombnum ++;
my $css_class = $bombnum%2?' class="LC_odd_row"':'';
- $r->print(''.$$bombed{$bomb}{errorlink}.
- ' '.
+ $r->print(' ');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print($$bombed{$bomb}{errorlink});
+ if ($usediv) {
+ $r->print('
');
+ }
+ $r->print(' '.
$$bombed{$bomb}{errorcount}.' ');
}
} elsif ($itemserror) {
- $r->print(''.$itemserror.' ');
+ $r->print(''.$itemserror.' ');
} else {
- $r->print(''.$lt{'noer'}.' ');
+ $r->print(''.$lt{'noer'}.' ');
}
return;
}
@@ -1885,16 +1977,19 @@ sub display_abovethreshold {
if (@{$warnings} > 0) {
@{$warnings} = sort { &cmp_title($a,$b,$res_title) } @{$warnings};
$r->print(''.
- ''.$lt{'reso'}.
- ' '.
- ''.$lt{'part'}.' '.$lt{'nust'}.' '.
- ''.$lt{'avat'}.' '.$lt{'dedi'}.' '.
- ''.$lt{'lare'}.' ');
+ ''.$lt{'reso'}.
+ ' '.
+ ''.$lt{'part'}.' '.$lt{'nust'}.' '.
+ ''.$lt{'avat'}.' '.$lt{'dedi'}.' '.
+ ''.$lt{'lare'}.' ');
if ($checkallowed->{'resetcounters'}) {
- $r->print(''.$lt{'reco'}.' ');
+ $r->print(''.$lt{'reco'}.' ');
}
$r->print(' ');
- my $row;
+ my ($usediv,$row);
+ if (@{$warnings} > 1) {
+ $usediv = 1;
+ }
foreach my $res (@{$warnings}) {
$row++;
my ($map,$id,$url)=&Apache::lonnet::decode_symb($res);
@@ -1910,12 +2005,20 @@ sub display_abovethreshold {
}
my $css_class = $row%2?' class="LC_odd_row"':'';
$r->print(''.
- ''.
- $$triggered{$res}{title}.' ');
- if (ref($$triggered{$res}{text}) eq 'ARRAY') {
- $r->print($$triggered{$res}{text}[0]);
- }
- $r->print(' ');
+ '');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print(' ');
+ if (ref($$triggered{$res}{text}) eq 'ARRAY') {
+ $r->print($$triggered{$res}{text}[0]);
+ }
+ $r->print('');
if (ref($$triggered{$res}{text}) eq 'ARRAY') {
if (@{$$triggered{$res}{text}} > 1) {
for (my $i=1; $i<@{$$triggered{$res}{text}}; $i++) {
@@ -1929,9 +2032,9 @@ sub display_abovethreshold {
$r->print(' ');
}
} elsif ($itemserror) {
- $r->print(''.$itemserror.' ');
+ $r->print(''.$itemserror.' ');
} else {
- $r->print(''.$lt{'nopr'}.' ');
+ $r->print(''.$lt{'nopr'}.' ');
}
}
@@ -1944,12 +2047,18 @@ sub display_versionchanges {
'veru' => 'Version used',
);
if (keys(%{$changed}) > 0) {
- $r->print(''.
- $lt{'reso'}.' '.$lt{'revd'}.' '.
- $lt{'newv'}.' '.
- $lt{'veru'}.' ');
+ $r->print(''.
+ ''.$lt{'reso'}.' '.
+ ''.$lt{'revd'}.' '.
+ ''.$lt{'newv'}.' '.
+ ''.$lt{'veru'}.' '.
+ ' ');
my @changes = sort { &cmp_title($a,$b,$res_title) } keys(%{$changed});
my $changenum = 0;
+ my $usediv;
+ if (@changes > 1) {
+ $usediv = 1;
+ }
foreach my $item (@changes) {
$changenum ++;
my $css_class = $changenum%2?' class="LC_odd_row"':'';
@@ -1957,17 +2066,25 @@ sub display_versionchanges {
my $linkurl=&Apache::lonnet::clutter($url);
$linkurl .= '?symb='.&escape($item);
- $r->print(''.
- $$res_title{$item}.' '.
+ $r->print(' ');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print(' '.
$$changed{$item}{'revdate'}.' '.
$$changed{$item}{'current'}.' '.
$$changed{$item}{'version'}.' ');
}
} elsif ($itemserror) {
- $r->print(''.$itemserror.' ');
+ $r->print(''.$itemserror.' ');
} else {
- $r->print(''
- .&mt('No '.$interval).' ');
+ $r->print(''
+ .&mt('No '.$interval).' ');
}
return;
}
@@ -1984,15 +2101,19 @@ sub display_rolechanges {
);
if ($chgcount) {
$r->print(''.
- ''.$lt{'tich'}.' '.
- ''.$lt{'user'}.' '.
- ''.$lt{'role'}.' '.
- ''.$lt{'sec'}.' '.
- ''.$lt{'status'}.' ');
+ ''.$lt{'tich'}.' '.
+ ''.$lt{'user'}.' '.
+ ''.$lt{'role'}.' '.
+ ''.$lt{'sec'}.' '.
+ ''.$lt{'status'}.' ');
if (ref($changed) eq 'HASH') {
my @changes = sort { $b <=> $a } (keys(%{$changed}));
my $changenum = 0;
my $fullnameidx = &Apache::loncoursedata::CL_FULLNAME();
+ my $usediv;
+ if ($chgcount > 1) {
+ $usediv = 1;
+ }
foreach my $item (@changes) {
if (ref($changed->{$item}) eq 'ARRAY') {
foreach my $chg (@{$changed->{$item}}) {
@@ -2020,7 +2141,15 @@ sub display_rolechanges {
&Apache::loncommon::aboutmewrapper($fullname,$uname,$udom);
$r->print(''.
''.&Apache::lonlocal::locallocaltime($item).' '.
- ''.$link.' '.
+ '');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print($link);
+ if ($usediv) {
+ $r->print('
');
+ }
+ $r->print(' '.
''.$role.' '.
''.$section.' '.
''.$status.' ');
@@ -2030,8 +2159,8 @@ sub display_rolechanges {
}
}
} else {
- $r->print(''
- .&mt('There are no '.$interval).' ');
+ $r->print(''
+ .&mt('There are no '.$interval).' ');
}
return;
}
@@ -2054,22 +2183,26 @@ sub display_activity {
if ($count) {
my $hdr = ''.
- ''.$lt{'user'}.' '.
- ''.$lt{'role'}.' '.
- ''.$lt{'sec'}.' ';
+ ''.$lt{'user'}.' '.
+ ''.$lt{'role'}.' '.
+ ''.$lt{'sec'}.' ';
if ($context eq 'sessions') {
- $hdr .= ''.$lt{'active'}.' ';
+ $hdr .= ''.$lt{'active'}.' ';
}
$hdr .= ' '."\n".
''.
- ''.$lt{'number'}.' '.
- ''.$lt{'role'}.' '.
- ''.$lt{'sec'};
+ ' '.$lt{'number'}.' '.
+ ''.$lt{'role'}.' '.
+ ''.$lt{'sec'};
my (%bylastname,%counts);
if (ref($details) eq 'HASH') {
my @items = sort { $b <=> $a } (keys(%{$details}));
my $num = 0;
my $fullnameidx = &Apache::loncoursedata::CL_FULLNAME();
+ my $usediv;
+ if ($count > 1) {
+ $usediv = 1;
+ }
foreach my $item (@items) {
if (ref($details->{$item}) eq 'ARRAY') {
foreach my $user (@{$details->{$item}}) {
@@ -2093,9 +2226,17 @@ sub display_activity {
}
my $link =
&Apache::loncommon::aboutmewrapper($fullname,$uname,$udom);
- my $entry = ' '.$link.' '.
- ''.$role.' '.
- ''.$section.' ';
+ my $entry = '';
+ if ($usediv) {
+ $entry .= '';
+ }
+ $entry .= $link;
+ if ($usediv) {
+ $entry .= '
';
+ }
+ $entry .= ' '.
+ ''.$role.' '.
+ ''.$section.' ';
if ($context eq 'sessions') {
$entry .= ''.&Apache::lonlocal::locallocaltime($item).' ';
}
@@ -2130,13 +2271,13 @@ sub display_activity {
}
$r->print($hdr.' '.$table);
+ '" />'.$table);
}
} else {
- $r->print(''.
+ $r->print(' '.
&mt('There are no '.$interval).
' ');
+ '." />');
}
return;
}
@@ -2147,24 +2288,28 @@ sub display_coursediscussion {
my %lt = &Apache::lonlocal::texthash(
'loca' => 'Location',
'type' => 'Type',
- 'numn' => 'Number of new posts',
+ 'numn' => 'New posts',
'noun' => 'No unread posts in '.$lctype.' discussions',
'tmlp' => 'Time of last post',
);
if (@{$newdiscussions} > 0) {
- $r->print(''.
- $lt{'loca'}.' '.
- $lt{'type'}.' ');
+ $r->print(''.
+ ''.$lt{'loca'}.' '.
+ ''.$lt{'type'}.' ');
if ($countunread eq 'on') {
- $r->print(''.$lt{'tmlp'}.' '.
- ''.$lt{'numn'}.' ');
+ $r->print(''.$lt{'tmlp'}.' '.
+ ''.$lt{'numn'}.' ');
} else {
- $r->print(''.$lt{'tmlp'}.' ');
+ $r->print(''.$lt{'tmlp'}.' ');
}
$r->print(" \n");
@{$newdiscussions} = sort { &cmp_title($a,$b,$res_title) }
@{$newdiscussions};
my $rowNum = 0;
+ my $usediv;
+ if (@{$newdiscussions} > 1) {
+ $usediv = 1;
+ }
foreach my $ressymb (@{$newdiscussions}) {
$rowNum ++;
my $forum_title = $$unread{$ressymb}{'title'};
@@ -2180,20 +2325,29 @@ sub display_coursediscussion {
my $css_class = $rowNum%2?' class="LC_odd_row"':'';
my $lastpost = &Apache::lonnavmaps::timeToHumanString(
$$unread{$ressymb}{'lastpost'});
- $r->print(''.$forum_title.' '.&mt($type).' ');
+ $r->print('');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print(' '.
+ ''.&mt($type).' ');
if ($countunread eq 'on') {
my $unreadnum = $$unread{$ressymb}{'unreadcount'};
- $r->print(''.$lastpost.' '.
- $unreadnum.' ');
+ $r->print(''.$lastpost.' '.
+ $unreadnum.' ');
} else {
- $r->print(''.$lastpost.' ');
+ $r->print(''.$lastpost.' ');
}
$r->print(" \n");
}
} elsif ($itemserror) {
- $r->print(''.$itemserror.' ');
+ $r->print(''.$itemserror.' ');
} else {
- $r->print(''.$lt{'noun'}.' ');
+ $r->print(''.$lt{'noun'}.' ');
}
}
@@ -2201,24 +2355,37 @@ sub display_coursenormalmail {
my ($r,$msgcount,$newmsgs) = @_;
my $lctype = lc(&Apache::loncommon::course_type());
if ($msgcount > 0) {
- $r->print(''.
- &mt('Number').' '.&mt('Subject').' '.
- &mt('Sender').' '.
- &mt('Date/Time').' ');
+ $r->print(''.
+ &mt('Number').' '.
+ &mt('Subject').' '.
+ &mt('Sender').' '.
+ &mt('Date/Time').' ');
my $mailcount = 0;
+ my $usediv;
+ if (@{$newmsgs}) {
+ $usediv = 1;
+ }
foreach my $msg (@{$newmsgs}) {
$mailcount ++;
my $css_class = $mailcount%2?' class="LC_odd_row"':'';
$r->print(''.$mailcount
- .'. ');
+ }
+ $r->print(' '
- .$msg->{'shortsub'}.' '
- .$msg->{'from'}.':'.$msg->{'fromdom'}.' '
+ .$msg->{'shortsub'}.' ');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print(' '
+ .$msg->{'from'}.':'.$msg->{'fromdom'}.' '
.$msg->{'sendtime'}.' ');
}
} else {
- $r->print(''.
- &mt('No new '.$lctype.' messages').' ');
+ $r->print(''.
+ &mt('No new '.$lctype.' messages').' ');
}
}
@@ -2226,24 +2393,37 @@ sub display_coursecritmail {
my ($r,$critmsgcount,$critmsgs) = @_;
my $lctype = lc(&Apache::loncommon::course_type());
if ($critmsgcount > 0) {
- $r->print(''.
- &mt('Number').' '.&mt('Subject').' '.
- &mt('Sender').' '.
- &mt('Date/Time').' ');
+ $r->print(''.
+ &mt('Number').' '.&mt('Subject').' '.
+ &mt('Sender').' '.
+ &mt('Date/Time').' ');
my $mailcount = 0;
+ my $usediv;
+ if (@{$critmsgs} > 1) {
+ $usediv = 1;
+ }
foreach my $msg (@{$critmsgs}) {
$mailcount ++;
my $css_class = $mailcount%2?' class="LC_odd_row"':'';
$r->print(''.$mailcount.
- '. '.
- $msg->{'shortsub'}.' '.
+ '. '.
+ '');
+ if ($usediv) {
+ $r->print('');
+ }
+ $r->print(' '.
$msg->{'from'}.':'.$msg->{'fromdom'}.' '.
$msg->{'sendtime'}.' ');
}
} else {
- $r->print(''.
+ $r->print(' '.
&mt('No unread critical messages in '.$lctype).
- ' ');
+ '');
}
}
@@ -2377,7 +2557,7 @@ sub store_courseinit_setting {
$result = &Apache::lonhtmlcommon::confirm_success(&mt("Page displayed after role selection in $lctype now set by [_1]user's global preferences[_2].",'',' '));
} else {
$result = &Apache::lonhtmlcommon::confirm_success(&mt('Page displayed after role selection in this '.$lctype.' set to [_1].'
- ,''.$$initpage{$env{'form.courseinit_page'}}.' '));
+ ,''.&mt($initpage->{$env{'form.courseinit_page'}}).' '));
}
} else {
&Apache::lonnet::logthis('Error saving whatsnew courseinit '.
@@ -2390,7 +2570,7 @@ sub store_courseinit_setting {
''.$outcome.' '),1);
} else {
$result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set page display, after role selection, for this '.$lctype.' to [_1] due to [_2].'
- ,''.$$initpage{$env{'form.courseinit_page'}}.' '
+ ,''.&mt($initpage->{$env{'form.courseinit_page'}}).' '
,''.$outcome.' '),1);
}
}
@@ -2463,14 +2643,14 @@ sub start_box {
if ($$show{$caller}) {
$r->print('
-
+
');
}
} elsif (($caller eq 'sessions') && ($$show{$caller})) {
if ($$show{$caller}) {
$r->print('
-
+
');
}
}