--- loncom/interface/lonwhatsnew.pm 2012/08/19 00:18:16 1.106
+++ loncom/interface/lonwhatsnew.pm 2013/12/04 16:26:54 1.116
@@ -1,5 +1,5 @@
#
-# $Id: lonwhatsnew.pm,v 1.106 2012/08/19 00:18:16 raeburn Exp $
+# $Id: lonwhatsnew.pm,v 1.116 2013/12/04 16:26:54 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -285,6 +285,11 @@ END
$scripttag.='document.visible.submit();
}
+function thresholdreset() {
+ document.visible.command.value="reset";
+ document.visible.submit();
+}
+
function togglelogins() {
var total = document.visible.logincount.value;
var sumrow = document.visible.loginrow.value;
@@ -527,28 +532,33 @@ sub display_actions_box {
$headings{'crslogin'} = &mt('Last login for users in last 24 hours');
}
- my $now = time;
+ my ($now,$starttime,$activatedstart,$expiredstart,$crsloginstart);
+ $now = time;
+
if ($timediff{'versions'} == -1) {
- $timediff{'versions'} = time;
+ $starttime = 0;
+ } else {
+ $starttime = $now - $timediff{'versions'};
}
- my $starttime = $now - $timediff{'versions'};
if ($timediff{'newroles'} == -1) {
- $timediff{'newroles'} = time;
+ $activatedstart = 0;
+ } else {
+ $activatedstart = $now - $timediff{'newroles'};
}
- my $activatedstart = $now - $timediff{'newroles'};
if ($timediff{'oldroles'} == -1) {
- $timediff{'oldroles'} = time;
+ $expiredstart = 0;
+ } else {
+ $expiredstart = $now - $timediff{'oldroles'};
}
- my $expiredstart = $now - $timediff{'oldroles'};
if ($timediff{'crslogin'} == -1) {
- $timediff{'crslogin'} = time;
+ $crsloginstart = 0;
+ } else {
+ $crsloginstart = $now - $timediff{'crslogin'};
}
- my $crsloginstart = $now - $timediff{'crslogin'};
-
my $countunread = $display_settings{$cid.':countunread'};
unless (defined($countunread)) {
$countunread = 'on';
@@ -588,6 +598,10 @@ sub display_actions_box {
if ($needitems) {
$itemserror = &getitems(\%unread,\%ungraded,\%bombed,\%triggered,\%changed,\@newdiscussions,\@tograde,\@bombs,\@warnings,\%threshold,$cdom,$crs,\%res_title,\%show,$starttime,$countunread);
}
+ my $classlist;
+ if ($show{'oldroles'} || $show{'newroles'} || $show{'crslogin'}) {
+ $classlist = &Apache::loncoursedata::get_classlist();
+ }
if ($show{'coursenormalmail'}) {
$msgcount = &getnormalmail(\@newmsgs);
}
@@ -595,10 +609,10 @@ sub display_actions_box {
$critmsgcount = &getcritmail(\@critmsgs);
}
if ($show{'oldroles'}) {
- $expirecount = &getexpired(\%expired,$expiredstart,'previous');
+ $expirecount = &getexpired(\%expired,$expiredstart,'previous',$classlist);
}
if ($show{'newroles'}) {
- $activecount = &getactivated(\%activated,$activatedstart,'active');
+ $activecount = &getactivated(\%activated,$activatedstart,'active',$classlist);
}
if ($show{'crslogin'}) {
$logincount = &getloggedin($cdom,$crs,\%loggedin,$crsloginstart);
@@ -631,7 +645,7 @@ sub display_actions_box {
if ($displayed == $halfway) {
$r->print('
');
}
- &display_launcher($r,$actionitem,$refpage,$checkallowed,\%show,\%headings,\%res_title,\@tograde,\%ungraded,\@bombs,\%bombed,\%changed,\@warnings,\%triggered,\@newdiscussions,\%unread,$msgcount,\@newmsgs,$critmsgcount,\@critmsgs,\%interval,$countunread,\%expired,$expirecount,\%activated,$activecount,$crstype,$itemserror,\%loggedin,$logincount);
+ &display_launcher($r,$actionitem,$refpage,$checkallowed,\%show,\%headings,\%res_title,\@tograde,\%ungraded,\@bombs,\%bombed,\%changed,\@warnings,\%triggered,\@newdiscussions,\%unread,$msgcount,\@newmsgs,$critmsgcount,\@critmsgs,\%interval,$countunread,\%expired,$expirecount,\%activated,$activecount,$crstype,$itemserror,\%loggedin,$logincount,$classlist);
$displayed ++;
}
}
@@ -678,7 +692,7 @@ sub display_threshold_config {
foreach my $type (@thresholditems) {
my $parameter = $env{'request.course.id'}.':threshold_'.$type;
# onchange is javascript to automatically check the 'Set' button.
- my $onchange = 'onFocus="javascript:window.document.forms'.
+ my $onchange = 'onfocus="javascript:window.document.forms'.
"['thresholdform'].elements['".$parameter."_setparmval']".
'.checked=true;"';
$r->print(&Apache::loncommon::start_data_table_row()."\n".
@@ -785,7 +799,7 @@ function toggle_countunread(choice) {
.' '
.&mt("This can increase the time taken to gather data for the [_1]What's New Page[_2] by a few seconds.",'','')
.' '
- .&mt('Currently set to [_1].',''.$current.'.')
+ .&mt('Currently set to [_1].',''.$current.'')
);
$r->print('
');
+ $r->print('
');
} elsif ($itemserror) {
$r->print('
'.$itemserror.'
');
} else {
@@ -1750,7 +1761,7 @@ sub display_versionchanges {
}
sub display_rolechanges {
- my ($r,$chgcount,$changed,$interval,$crstype) = @_;
+ my ($r,$chgcount,$changed,$interval,$crstype,$classlist) = @_;
my $now = time();
my %lt = &Apache::lonlocal::texthash(
'user' => 'User',
@@ -1769,6 +1780,7 @@ sub display_rolechanges {
if (ref($changed) eq 'HASH') {
my @changes = sort { $b <=> $a } (keys(%{$changed}));
my $changenum = 0;
+ my $fullnameidx = &Apache::loncoursedata::CL_FULLNAME();
foreach my $item (@changes) {
if (ref($changed->{$item}) eq 'ARRAY') {
foreach my $chg (@{$changed->{$item}}) {
@@ -1786,8 +1798,14 @@ sub display_rolechanges {
my $udom = $chg->{'udom'};
$changenum ++;
my $css_class = $changenum%2?' class="LC_odd_row"':'';
+ my $fullname;
+ if (ref($classlist->{$uname.':'.$udom}) eq 'ARRAY') {
+ $fullname = $classlist->{$uname.':'.$udom}->[$fullnameidx];
+ } else {
+ $fullname = &Apache::loncommon::plainname($uname,$udom,'lastname');
+ }
my $link =
- &Apache::loncommon::aboutmewrapper(&Apache::loncommon::plainname($uname,$udom),$uname,$udom);
+ &Apache::loncommon::aboutmewrapper($fullname,$uname,$udom);
$r->print('
'.
'
'.&Apache::lonlocal::locallocaltime($item).'
'.
'
'.$link.'
'.
@@ -1807,7 +1825,8 @@ sub display_rolechanges {
}
sub display_crslogins {
- my ($r,$logincount,$loggedin,$interval,$crstype) = @_;
+ my ($r,$logincount,$loggedin,$interval,$crstype,$classlist) = @_;
+ return unless (ref($classlist) eq 'HASH');
my %lt = &Apache::lonlocal::texthash(
'user' => 'User',
'role' => 'Role',
@@ -1828,6 +1847,7 @@ sub display_crslogins {
if (ref($loggedin) eq 'HASH') {
my @logins = sort { $b <=> $a } (keys(%{$loggedin}));
my $numlogin = 0;
+ my $fullnameidx = &Apache::loncoursedata::CL_FULLNAME();
foreach my $item (@logins) {
if (ref($loggedin->{$item}) eq 'ARRAY') {
foreach my $user (@{$loggedin->{$item}}) {
@@ -1844,7 +1864,12 @@ sub display_crslogins {
$counts{$user->{'role'}}{$section} ++;
my $uname = $user->{'uname'};
my $udom = $user->{'udom'};
- my $fullname = &Apache::loncommon::plainname($uname,$udom,'lastname');
+ my $fullname;
+ if (ref($classlist->{$uname.':'.$udom}) eq 'ARRAY') {
+ $fullname = $classlist->{$uname.':'.$udom}->[$fullnameidx];
+ } else {
+ $fullname = &Apache::loncommon::plainname($uname,$udom,'lastname');
+ }
my $link =
&Apache::loncommon::aboutmewrapper($fullname,$uname,$udom);
push(@{$bylastname{$fullname}},
@@ -1921,7 +1946,7 @@ sub display_coursediscussion {
my $forum_title = $$unread{$ressymb}{'title'};
my $type = 'Resource';
my $feedurl=&Apache::lonfeedback::get_feedurl($ressymb);
- my $disclink = $feedurl.'?symb='.$$unread{$ressymb}{symb};
+ my $disclink = $feedurl.'?symb='. &escape($$unread{$ressymb}{symb});
if ($feedurl =~ /bulletinboard/) {
$type = 'Discussion Board';
}