--- loncom/interface/lonwhatsnew.pm 2007/02/27 22:16:02 1.68 +++ loncom/interface/lonwhatsnew.pm 2008/12/12 15:48:05 1.83 @@ -1,5 +1,5 @@ # -# $Id: lonwhatsnew.pm,v 1.68 2007/02/27 22:16:02 raeburn Exp $ +# $Id: lonwhatsnew.pm,v 1.83 2008/12/12 15:48:05 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,6 +36,7 @@ use Apache::lonlocal; use Apache::loncoursedata(); use Apache::lonnavmaps(); use Apache::lonuserstate; +use Apache::lonuserutils; use Apache::Constants qw(:common :http); use Time::Local; use GDBM_File; @@ -68,6 +69,8 @@ sub handler { ['vgr','abovethreshold',1], ['opa','haserrors',1], ['mdc','versionchanges',0], + ['vcl','newroles',1], + ['vcl','oldroles',1], ) { my ($perm,$key,$check_section) = @{ $perm_check }; my $scope = $env{'request.course.id'}; @@ -99,32 +102,46 @@ sub handler { text=>"Display Action Items"}); if (($command eq 'chgthreshold') && $checkallowed{'abovethreshold'}) { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/whatsnew?command=chgthreshold&refpage='.$refpage, + ({href=>'/adm/whatsnew?command=chgthreshold&refpage='.$refpage, text=>"Change thresholds"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs ("What's New?",#'Course_Action_Items_Thresholds' )); } elsif (($command eq 'chginterval') && $checkallowed{'versionchanges'} ) { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/whatsnew?command=chginterval&refpage='.$refpage, + ({href=>'/adm/whatsnew?command=chginterval&refpage='.$refpage, text=>"Change interval"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs ("What's New?",#'Course_Action_Items_Intervals' )); } elsif (($command eq 'chgdisc') && $checkallowed{'coursediscussion'}) { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/whatsnew?command=chgdisc&refpage='.$refpage, + ({href=>'/adm/whatsnew?command=chgdisc&refpage='.$refpage, text=>"Change discussion display"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs ("What's New?",#'Course_Action_Items_Intervals' )); } elsif ($command eq 'courseinit') { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>'/adm/whatsnew?command=courseinit&refpage='.$refpage, + ({href=>'/adm/whatsnew?command=courseinit&refpage='.$refpage, text=>"Course initialization preference"}); $r->print(&Apache::lonhtmlcommon::breadcrumbs ("What's New?",#'Course_Action_Items_Initialization' )); + } elsif ($command eq 'chgoldroleinterval' && $checkallowed{'oldroles'}) { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/whatsnew?command=chgoldroleinterval&refpage='.$refpage, + text=>"Change interval"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + ("What's New?",#'Course_Action_Items_Intervals' + )); + } elsif ($command eq 'chgnewroleinterval' && $checkallowed{'newroles'}) { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/whatsnew?command=chgnewroleinterval&refpage='.$refpage, + text=>"Change interval"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + ("What's New?",#'Course_Action_Items_Intervals' + )); } else { $r->print(&Apache::lonhtmlcommon::breadcrumbs ("What's New?",#'Course_Action_Items_Display' @@ -144,7 +161,6 @@ sub display_main_box { my ($r,$command,$refpage,$checkallowed) = @_; my $domain=&Apache::loncommon::determinedomain(); my $function = &Apache::loncommon::get_users_function(); - my $tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain); my $lctype = lc(&Apache::loncommon::course_type()); $r->print('
');
@@ -153,14 +169,29 @@ sub display_main_box {
degdiff => 'Degree of difficulty',
numstudents => 'Total number of students with submissions',
);
-
- my %interval_titles = &Apache::lonlocal::texthash (
- -1 => "since start of $lctype",
- 2592000 => 'since last month',
- 604800 => 'since last week',
- 86400 => 'since yesterday',
+ my %versions = (
+ -1 => "version changes since start of $lctype",
+ 2592000 => 'version changes since last month',
+ 604800 => 'version changes since last week',
+ 86400 => 'version changes since yesterday',
+ );
+ my %newroles = (
+ -1 => "roles which have become active since start of $lctype",
+ 2592000 => 'roles which have become active since last month',
+ 604800 => 'roles which have become active since last week',
+ 86400 => 'roles which have become active since yesterday',
+ );
+ my %oldroles = (
+ -1 => "roles which expired since start of $lctype",
+ 2592000 => 'roles which expired since last month',
+ 604800 => 'roles which expired since last week',
+ 86400 => 'roles which expired since yesterday',
+ );
+ my %interval_titles = (
+ versions => \%versions,
+ newroles => \%newroles,
+ oldroles => \%oldroles,
);
-
my %initpage = &Apache::lonlocal::texthash (
firstres => "first resource in the $lctype",
whatsnew => "what's new? page",
@@ -172,18 +203,24 @@ sub display_main_box {
if (($command eq 'chgthreshold')
&& $checkallowed->{'abovethreshold'}) {
- &display_threshold_config($r,$refpage,$tabbg,\%threshold_titles,
+ &display_threshold_config($r,$refpage,\%threshold_titles,
$cdom,$crs);
} elsif (($command eq 'chginterval')
&& $checkallowed->{'versionchanges'}) {
- &display_interval_config($r,$refpage,\%interval_titles);
+ &display_interval_config($r,$refpage,\%interval_titles,'versions');
} elsif (($command eq 'chgdisc')
&& $checkallowed->{'coursediscussion'}) {
&display_discussion_config($r,$refpage);
} elsif ($command eq 'courseinit') {
&courseinit_config($r,$refpage,\%initpage);
+ } elsif (($command eq 'chgnewroleinterval')
+ && $checkallowed->{'newroles'}) {
+ &display_interval_config($r,$refpage,\%interval_titles,'newroles');
+ } elsif (($command eq 'chgoldroleinterval')
+ && $checkallowed->{'oldroles'}) {
+ &display_interval_config($r,$refpage,\%interval_titles,'oldroles');
} else {
- &display_actions_box($r,$tabbg,$command,$refpage,\%threshold_titles,
+ &display_actions_box($r,$command,$refpage,\%threshold_titles,
\%interval_titles,\%initpage,$cdom,$crs,$checkallowed);
}
my $end_page = &Apache::loncommon::end_page();
@@ -206,12 +243,13 @@ sub display_header {
my ($command,$checkallowed) = @_;
my $scripttag;
- unless ($command eq 'chgthreshold' || $command eq 'chginterval') {
+ unless ($command eq 'chgthreshold' || $command eq 'chginterval' ||
+ $command eq 'chgoldroleinterval' || $command eq 'chgnewroleinterval') {
$scripttag = <<"END";
');
- $r->print(' '.&mt('Choose whether or not to display a count of the number of new posts for each resource or bulletin board which has unread posts.').' '.&mt('This can increase the time taken to gather data for the [_1] page by a few seconds.',"What's New?").' '.&mt('Currently set to [_1].',''.$current.'')); + $r->print(' ' + .&mt('Choose whether or not to display a count of the number of new posts for each resource or bulletin board which has unread posts.') + .' ' + .&mt("This can increase the time taken to gather data for the 'What's New?' page by a few seconds.") + .' ' + .&mt('Currently set to [_1].',''.$current.'.') + ); $r->print(' '); @@ -613,9 +741,9 @@ END if ($choice eq $control) { $chkstring = ' checked="checked" '; } - $r->print(' '.&mt('If').' '.$$initpage{'coursespecific'}. ' - '.$lt{'chce'}.": \n"); @@ -624,9 +752,9 @@ END if (($choice eq $current) && ($control eq 'coursespecific')) { $chkstring = ' checked="checked" '; } - $r->print(' '); @@ -654,20 +782,21 @@ sub curr_courseinit { } sub display_launcher { - my ($r,$action,$refpage,$checkallowed,$tabbg,$show,$headings,$res_title, + my ($r,$action,$refpage,$checkallowed,$show,$headings,$res_title, $tograde,$ungraded,$bombs,$bombed,$changed,$warnings,$triggered, $newdiscussions,$unread,$msgcount,$newmsgs,$critmsgcount,$critmsgs, - $interval,$countunread) = @_; + $interval,$countunread,$expired,$expirecount,$activated,$activecount, + $crstype) = @_; if ($$checkallowed{$action}) { - &start_box($r,$tabbg,$show,$headings,$action,$refpage,$action); + &start_box($r,$show,$headings,$action,$refpage,$action); if ($$show{$action}) { if ($action eq 'handgrading') { # UNGRADED ITEMS &display_handgrade($r,$tograde,$ungraded); } elsif ($action eq 'haserrors') { # BOMBS &display_haserrors($r,$bombs,$bombed,$res_title); } elsif ($action eq 'versionchanges') { # VERSION CHANGES - &display_versionchanges($r,$changed,$res_title,$interval); + &display_versionchanges($r,$changed,$res_title,$interval->{'versions'}); } elsif ($action eq 'abovethreshold') { # DEGDIFF/AV. TRIES TRIGGERS &display_abovethreshold($r,$refpage,$warnings,$triggered, $res_title); @@ -678,6 +807,12 @@ sub display_launcher { &display_coursenormalmail($r,$msgcount,$newmsgs); } elsif ($action eq 'coursecritmail') { # CRITICAL MESSAGES &display_coursecritmail($r,$critmsgcount,$critmsgs); + } elsif ($action eq 'newroles') { # ACTIVATED ROLES + &display_rolechanges($r,$activecount,$activated,$interval->{'newroles'}, + $crstype); + } elsif ($action eq 'oldroles') { # EXPIRED ROLES + &display_rolechanges($r,$expirecount,$expired,$interval->{'oldroles'}, + $crstype); } } &end_box($r); @@ -870,10 +1005,10 @@ sub check_thresholds { my $resettitle = 'title_'.&escape($symb."\0".$part); if (@parts > 1) { $$triggered{$symb}{text}[$partcount] = ' - | part - '.$part.' | '; +'.&mt('part - ').$part.' | '; } else { $$triggered{$symb}{text}[$partcount] = ' -single part | '; +'.&mt('single part').' | '; } $$triggered{$symb}{text}[$partcount] .= ''.$stats{$part}{users}.' | @@ -983,7 +1118,7 @@ sub process_reset { sub process_update { my ($uname,$udom,$threshold_titles) = @_; - my $setoutput = 'Changes to threshold(s) for problem tracking:
'. @@ -1258,8 +1591,65 @@ sub display_versionchanges { $$changed{$item}{'version'}.' | |||||
'.$lt{'noup'}. - ' '.$interval.' | |||||
' + .&mt('No '.$interval).' | |||||
'.$lt{'tich'}.' | '. + ''.$lt{'user'}.' | '. + ''.$lt{'role'}.' | '. + ''.$lt{'sec'}.' | '. + ''.$lt{'status'}.' | |
'.&Apache::lonlocal::locallocaltime($item).' | '. + ''.$link.' | '. + ''.$role.' | '. + ''.$section.' | '. + ''.$status.' | |
' + .&mt('There are no '.$interval).' | |||||
'.$forum_title.' | '.$type.' | '); + $r->print('||||
'.$forum_title.' | '.&mt($type).' | '); if ($countunread eq 'on') { my $unreadnum = $$unread{$ressymb}{'unreadcount'}; $r->print(''.$lastpost.' | '. @@ -1330,11 +1720,12 @@ sub display_coursenormalmail { foreach my $msg (@{$newmsgs}) { $mailcount ++; my $css_class = $mailcount%2?' class="LC_odd_row"':''; - $r->print(' | ||
'.$mailcount. - '. | '. - $msg->{'shortsub'}.' | '. - $msg->{'from'}.'@'.$msg->{'fromdom'}.' | '. - $msg->{'sendtime'}.' | ||
'.$mailcount + .'. | ' + .$msg->{'shortsub'}.' | ' + .$msg->{'from'}.':'.$msg->{'fromdom'}.' | ' + .$msg->{'sendtime'}.' | ||
'. @@ -1357,7 +1748,7 @@ sub display_coursecritmail { $r->print(' | |||||
'.$mailcount. '. | '. $msg->{'shortsub'}.' | '. - $msg->{'from'}.'@'.$msg->{'fromdom'}.' | '. + $msg->{'from'}.':'.$msg->{'fromdom'}.' | '. $msg->{'sendtime'}.' |
'.$$heading{$caller}.' | +'.$$heading{$caller}.' | '.$showhide.' | '.$lt{'chop'}.' | '); } + } elsif (($caller eq 'newroles') && ($$show{$caller})) { + if ($$show{$caller}) { + $r->print(' +
---|---|---|
'.$lt{'chin'}.' | +||
'.$lt{'chin'}.' | +||