--- loncom/interface/loncommon.pm 2017/11/12 13:15:25 1.1301 +++ loncom/interface/loncommon.pm 2017/12/18 15:49:11 1.1303 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.1301 2017/11/12 13:15:25 raeburn Exp $ +# $Id: loncommon.pm,v 1.1303 2017/12/18 15:49:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -5115,7 +5115,7 @@ sub blockcheck { ($env{'request.role'} !~ m{^st\./\Q$cdom\E/\Q$cnum\E})); next if ($no_userblock); - # Retrieve blocking times and identity of locker for course + # Retrieve blocking times and identity of blocker for course # of specified user, unless user has 'evb' privilege. my ($start,$end,$trigger) = @@ -8893,8 +8893,9 @@ sub end_togglebox { } sub LCprogressbar_script { - my ($id)=@_; - return(<<ENDPROGRESS); + my ($id,$number_to_do)=@_; + if ($number_to_do) { + return(<<ENDPROGRESS); <script type="text/javascript"> // <![CDATA[ \$('#progressbar$id').progressbar({ @@ -8907,21 +8908,39 @@ sub LCprogressbar_script { // ]]> </script> ENDPROGRESS + } else { + return(<<ENDPROGRESS); +<script type="text/javascript"> +// <![CDATA[ +\$('#progressbar$id').progressbar({ + value: false, + create: function(event, ui) { + \$('.ui-widget-header', this).css({'background':'#F0F0F0'}); + \$('.ui-progressbar-overlay', this).css({'margin':'0'}); + } +}); +// ]]> +</script> +ENDPROGRESS + } } sub LCprogressbarUpdate_script { return(<<ENDPROGRESSUPDATE); <style type="text/css"> .ui-progressbar { position:relative; } +.progress-label {position: absolute; width: 100%; text-align: center; top: 1px; font-weight: bold; text-shadow: 1px 1px 0 #fff;margin: 0; line-height: 200%; } .pblabel { position: absolute; width: 100%; text-align: center; line-height: 1.9em; } </style> <script type="text/javascript"> // <![CDATA[ var LCprogressTxt='---'; -function LCupdateProgress(percent,progresstext,id) { +function LCupdateProgress(percent,progresstext,id,maxnum) { LCprogressTxt=progresstext; - if (percent === \$('#progressbar'+id).progressbar( "value" )) { + if ((maxnum == '') || (maxnum == undefined) || (maxnum == null)) { + \$('#progressbar'+id).find('.progress-label').text(LCprogressTxt); + } else if (percent === \$('#progressbar'+id).progressbar( "value" )) { \$('#progressbar'+id).find('.pblabel').text(LCprogressTxt); } else { \$('#progressbar'+id).progressbar('value',percent); @@ -8937,37 +8956,54 @@ my $LCidcnt; my $LCcurrentid; sub LCprogressbar { - my ($r)=(@_); + my ($r,$number_to_do,$preamble)=@_; $LClastpercent=0; $LCidcnt++; $LCcurrentid=$$.'_'.$LCidcnt; - my $starting=&mt('Starting'); - my $content=(<<ENDPROGBAR); + my ($starting,$content); + if ($number_to_do) { + $starting=&mt('Starting'); + $content=(<<ENDPROGBAR); +$preamble <div id="progressbar$LCcurrentid"> <span class="pblabel">$starting</span> </div> ENDPROGBAR - &r_print($r,$content.&LCprogressbar_script($LCcurrentid)); + } else { + $starting=&mt('Loading...'); + $LClastpercent='false'; + $content=(<<ENDPROGBAR); +$preamble + <div id="progressbar$LCcurrentid"> + <div class="progress-label">$starting</div> + </div> +ENDPROGBAR + } + &r_print($r,$content.&LCprogressbar_script($LCcurrentid,$number_to_do)); } sub LCprogressbarUpdate { - my ($r,$val,$text)=@_; - unless ($val) { - if ($LClastpercent) { - $val=$LClastpercent; - } else { - $val=0; - } + my ($r,$val,$text,$number_to_do)=@_; + if ($number_to_do) { + unless ($val) { + if ($LClastpercent) { + $val=$LClastpercent; + } else { + $val=0; + } + } + if ($val<0) { $val=0; } + if ($val>100) { $val=0; } + $LClastpercent=$val; + unless ($text) { $text=$val.'%'; } + } else { + $val = 'false'; } - if ($val<0) { $val=0; } - if ($val>100) { $val=0; } - $LClastpercent=$val; - unless ($text) { $text=$val.'%'; } $text=&js_ready($text); &r_print($r,<<ENDUPDATE); <script type="text/javascript"> // <![CDATA[ -LCupdateProgress($val,'$text','$LCcurrentid'); +LCupdateProgress($val,'$text','$LCcurrentid','$number_to_do'); // ]]> </script> ENDUPDATE