--- loncom/interface/lonmenu.pm 2016/04/04 17:24:05 1.444
+++ loncom/interface/lonmenu.pm 2016/05/04 05:54:51 1.447
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.444 2016/04/04 17:24:05 raeburn Exp $
+# $Id: lonmenu.pm,v 1.447 2016/05/04 05:54:51 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -124,9 +124,13 @@ dropdown list when mouse hovers over top
(no hover psuedo class) via LC_hoverable class for
tag for top-
level item, which employs jQuery to handle behavior on mouseover.
-Inputs: 4 - (a) link and (b) target for anchor href in top level item,
- (c) title for text wrapped by anchor tag in top level item.
- (d) reference to array of arrays of sub-menu items.
+Inputs: 6 - (a) link and (b) target for anchor href in top level item,
+ (c) title for text wrapped by anchor tag in top level item,
+ (d) reference to array of arrays of sub-menu items,
+ (e) boolean to indicate whether to call &mt() to translate
+ name of menu item,
+ (f) optional class for element in primary menu, for which
+ sub menu is being generated.
The underlying datastructure used in (d) contains data from mydesk.tab.
It consists of an array which has an array for each item appearing in
@@ -534,13 +538,13 @@ sub secondary_menu {
}
sub create_submenu {
- my ($link,$target,$title,$submenu,$translate) = @_;
+ my ($link,$target,$title,$submenu,$translate,$addclass) = @_;
return unless (ref($submenu) eq 'ARRAY');
my $disptarget;
if ($target ne '') {
$disptarget = ' target="'.$target.'"';
}
- my $menu = ''.
+ my $menu = ''.
''.
''.$title.
''.
@@ -560,7 +564,7 @@ sub create_submenu {
# see perldoc create_submenu documentation for further information
sub build_submenu {
my ($target, $submenu, $translate, $first_level) = @_;
- if (!defined(@{$submenu})) {
+ unless (@{$submenu}) {
return '';
}
@@ -947,9 +951,14 @@ ENDMENUITEMS
}
}
}
+ my $showprogress;
+ if (($crstype eq 'Placement') && (!$env{'request.role.adv'})) {
+ $showprogress = &placement_progress();
+ }
+
+ my $addremote=0;
+ foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} }
- my $addremote=0;
- foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} }
if ($addremote) {
my $countdown;
if ($env{'request.filename'} =~ /\.page$/) {
@@ -969,6 +978,9 @@ ENDMENUITEMS
if ($countdown) {
&Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$countdown);
}
+ if ($showprogress) {
+ &Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$showprogress);
+ }
} else {
my @tools = @inlineremote[93,91,81,82,83];
if ($countdown) {
@@ -987,6 +999,10 @@ ENDMENUITEMS
}
&advtools_crumbs(@inlineremote);
}
+ } else {
+ if ($showprogress) {
+ &Apache::lonhtmlcommon::add_breadcrumb_tool('tools',$showprogress);
+ }
}
my ($topic_help,$topic_help_text);
if ($is_const_dir == 2) {
@@ -2534,6 +2550,13 @@ END
return;
}
+sub placement_progress {
+ my ($totalpoints,$incomplete) = &Apache::lonplacementtest::check_completion(undef,undef,1);
+ my $complete = 100 - $incomplete;
+ return ''.
+ &mt('Test is [_1]% complete',$complete).'';
+}
+
# ================================================================ Main Program
BEGIN {