--- loncom/interface/lonmenu.pm 2012/05/24 22:56:30 1.375
+++ loncom/interface/lonmenu.pm 2012/05/29 16:25:53 1.380
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.375 2012/05/24 22:56:30 raeburn Exp $
+# $Id: lonmenu.pm,v 1.380 2012/05/29 16:25:53 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -260,7 +260,7 @@ sub primary_menu {
if (@primsub > 0) {
$menu .= &create_submenu($link,$target,$title,\@primsub);
} elsif ($link) {
- $menu .= '
'.$title.'';
+ $menu .= ''.&mt($title).'';
}
}
} elsif ($$menuitem[3] eq 'Help') { # special treatment for helplink
@@ -319,6 +319,7 @@ sub secondary_menu {
? "/$env{'request.course.sec'}"
: '');
my $canedit = &Apache::lonnet::allowed('mdc', $env{'request.course.id'});
+ my $canviewroster = $env{'course.'.$env{'request.course.id'}.'.student_classlist_view'};
my $canviewgrps = &Apache::lonnet::allowed('vcg', $crs_sec);
my $canmodifyuser = &Apache::lonnet::allowed('cst', $crs_sec);
my $canviewwnew = &Apache::lonnet::allowed('whn', $crs_sec);
@@ -347,7 +348,7 @@ sub secondary_menu {
next if $$menuitem[4] eq 'cst'
&& !$canmodifyuser;
next if $$menuitem[4] eq 'ncst'
- && $canmodifyuser;
+ && ($canmodifyuser || !$canviewroster);
next if $$menuitem[4] eq 'mgr'
&& !$canmgr;
next if $$menuitem[4] eq 'nmgr'
@@ -401,9 +402,13 @@ sub secondary_menu {
sub create_submenu {
my ($link,$target,$title,$submenu) = @_;
return unless (ref($submenu) eq 'ARRAY');
+ my $disptarget;
+ if ($target ne '') {
+ $disptarget = ' target="'.$target.'"';
+ }
my $menu = ''.
- ''.
- ''.$title.
+ ''.
+ ''.&mt($title).
''.
' ▼'.
'';
@@ -418,7 +423,7 @@ sub create_submenu {
}
$menu .= '- '.
- $item->[1].'
';
+ &mt($item->[1]).'
';
}
}
$menu .= '';
@@ -777,9 +782,18 @@ ENDMENUITEMS
&Apache::lonhtmlcommon::add_breadcrumb_tool(
'navigation', @inlineremote[21,23]);
- if(hidden_button_check() ne 'yes') {
+ my $countdown = &countdown_timer();
+ if (&hidden_button_check() eq 'yes') {
+ if ($countdown) {
+ &Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$countdown);
+ }
+ } else {
+ my @tools = @inlineremote[93,91,81,82,83];
+ if ($countdown) {
+ unshift(@tools,$countdown);
+ }
&Apache::lonhtmlcommon::add_breadcrumb_tool(
- 'tools', @inlineremote[93,91,81,82,83]);
+ 'tools',@tools);
#publish button in construction space
if ($env{'request.state'} eq 'construct'){
@@ -890,9 +904,19 @@ sub switch {
}
} else {
# Inline Menu
- $inlineremote[$idx]=
+ my @tools = (93,91,81,82,83);
+ unless ($env{'request.state'} eq 'construct') {
+ push(@tools,63);
+ }
+ if (($env{'environment.icons'} eq 'iconsonly') &&
+ (grep(/^$idx$/,@tools))) {
+ $inlineremote[$idx] =
+ '';
+ } else {
+ $inlineremote[$idx] =
'';
+ }
}
return '';
}
@@ -1178,6 +1202,27 @@ END
}
+sub countdown_toggle_js {
+ return <<"END";
+
+function toggleCountdown() {
+ var countdownid = document.getElementById('duedatecountdown');
+ var currstyle = countdownid.style.display;
+ if (currstyle == 'inline') {
+ countdownid.style.display = 'none';
+ document.getElementById('ddcountcollapse').innerHTML='';
+ document.getElementById('ddcountexpand').innerHTML='◄ ';
+ } else {
+ countdownid.style.display = 'inline';
+ document.getElementById('ddcountcollapse').innerHTML='► ';
+ document.getElementById('ddcountexpand').innerHTML='';
+ }
+ return;
+}
+
+END
+}
+
sub utilityfunctions {
my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0]));
if ($currenturl =~ m{^/adm/wrapper/ext/}
@@ -1212,6 +1257,8 @@ sub utilityfunctions {
my $esc_url=&escape($currenturl);
my $esc_symb=&escape($currentsymb);
+ my $countdown = &countdown_toggle_js();
+
return (< time) ||
+ (!$duedate && @interval > 1)) {
+ my ($collapse,$expand,$alttxt,$title,$currdisp);
+ if (@interval > 1) {
+ $currdisp = 'inline';
+ $collapse = '► ';
+ } else {
+ $currdisp = 'none';
+ $expand = '◄ ';
+ }
+ unless ($env{'environment.icons'} eq 'iconsonly') {
+ $alttxt = &mt('Timer');
+ $title = $alttxt.' ';
+ }
+ my $desc = &mt('Countdown to due date/time');
+ return <