version 1.273, 2010/05/30 18:30:52
|
version 1.280, 2010/07/09 14:40:20
|
Line 927 Returns: none
|
Line 927 Returns: none
|
|
|
=item Increment_PrgWin |
=item Increment_PrgWin |
|
|
Increment the count of items completed for the progress window by 1. |
Increment the count of items completed for the progress window by $step or 1 if no step is provided. |
|
|
Inputs: |
Inputs: |
|
|
Line 940 Inputs:
|
Line 940 Inputs:
|
=item $extraInfo A description of the items being iterated over. Typically |
=item $extraInfo A description of the items being iterated over. Typically |
'student'. |
'student'. |
|
|
|
=item $step (optional) counter step. Will be set to default 1 if ommited. step must be greater than 0 or empty. |
|
|
=back |
=back |
|
|
Returns: none |
Returns: none |
Line 1049 sub Update_PrgWin {
|
Line 1051 sub Update_PrgWin {
|
|
|
# increment progress state |
# increment progress state |
sub Increment_PrgWin { |
sub Increment_PrgWin { |
my ($r,$prog_state,$extraInfo)=@_; |
my ($r,$prog_state,$extraInfo,$step)=@_; |
$$prog_state{'done'}++; |
$step = $step > 0 ? $step : 1; |
|
$$prog_state{'done'} += $step; |
|
|
|
# Catch (max modulo step) <> 0 |
|
my $current = $$prog_state{'done'}; |
|
my $last = ($$prog_state{'max'} - $current); |
|
if ($last <= 0) { |
|
$last = 1; |
|
$current = $$prog_state{'max'}; |
|
} |
|
|
my $time_est= (&Time::HiRes::time() - $$prog_state{'firststart'})/ |
my $time_est= (&Time::HiRes::time() - $$prog_state{'firststart'})/ |
$$prog_state{'done'} * |
$current * $last; |
($$prog_state{'max'}-$$prog_state{'done'}); |
|
$time_est = int($time_est); |
$time_est = int($time_est); |
# |
# |
my $min = int($time_est/60); |
my $min = int($time_est/60); |
my $sec = $time_est % 60; |
my $sec = $time_est % 60; |
# |
|
my $str; |
|
if ($min == 0 && $sec > 1) { |
|
$str = '[_1] seconds'; |
|
} elsif ($min == 1 && $sec > 1) { |
|
$str = '1 minute [_2] seconds'; |
|
} elsif ($min == 1 && $sec < 2) { |
|
$str = '1 minute'; |
|
} elsif ($min < 10 && $sec > 1) { |
|
$str = '[_1] minutes, [_2] seconds'; |
|
} elsif ($min >= 10 || $sec < 2) { |
|
$str = '[_1] minutes'; |
|
} |
|
$time_est = &mt($str,$min,$sec); |
|
# |
|
my $lasttime = &Time::HiRes::time()-$$prog_state{'laststart'}; |
my $lasttime = &Time::HiRes::time()-$$prog_state{'laststart'}; |
if ($lasttime > 9) { |
if ($lasttime > 9) { |
$lasttime = int($lasttime); |
$lasttime = int($lasttime); |
Line 1081 sub Increment_PrgWin {
|
Line 1078 sub Increment_PrgWin {
|
} else { |
} else { |
$lasttime = sprintf("%3.2f",$lasttime); |
$lasttime = sprintf("%3.2f",$lasttime); |
} |
} |
if ($lasttime == 1) { |
|
$lasttime = '('.$lasttime.' '.&mt('second for').' '.$extraInfo.')'; |
$sec = 0 if ($min >= 10); # Don't show seconds if remaining time >= 10 min. |
} else { |
$sec = 1 if ( ($min == 0) && ($sec == 0) ); # Little cheating: pretend to have 1 second remaining instead of 0 to have something to display |
$lasttime = '('.$lasttime.' '.&mt('seconds for').' '.$extraInfo.')'; |
|
} |
my $timeinfo = |
# |
&mt('[_1]/[_2]:' |
my $user_browser = $env{'browser.type'} if (exists($env{'browser.type'})); |
.' [quant,_3,minute,minutes,] [quant,_4,second ,seconds ,]remaining' |
my $user_os = $env{'browser.os'} if (exists($env{'browser.os'})); |
.' ([quant,_5,second] for '.$extraInfo.')', |
if (! defined($user_browser) || ! defined($user_os)) { |
$current, |
(undef,$user_browser,undef,undef,undef,$user_os) = |
$$prog_state{'max'}, |
&Apache::loncommon::decode_user_agent(); |
$min, |
} |
$sec, |
if ($user_browser eq 'explorer' && $user_os =~ 'mac') { |
$lasttime); |
$lasttime = ''; |
|
} |
|
&r_print($r,&Apache::lonhtmlcommon::scripttag( |
&r_print($r,&Apache::lonhtmlcommon::scripttag( |
$$prog_state{'window'}.'.document.'. |
$$prog_state{'window'}.'.document.'. |
$$prog_state{'formname'}.'.'. |
$$prog_state{'formname'}.'.'. |
$$prog_state{'inputname'}.'.value="'. |
$$prog_state{'inputname'}.'.value="'.$timeinfo.'";' |
$$prog_state{'done'}.'/'.$$prog_state{'max'}. |
|
': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";' |
|
)); |
)); |
$$prog_state{'laststart'}=&Time::HiRes::time(); |
$$prog_state{'laststart'}=&Time::HiRes::time(); |
} |
} |
Line 1481 returns: nothing
|
Line 1475 returns: nothing
|
my $lasttext = $last->{'no_mt'} ? $last->{'text'} |
my $lasttext = $last->{'no_mt'} ? $last->{'text'} |
: mt( $last->{'text'} ); |
: mt( $last->{'text'} ); |
|
|
$links .= htmltag( 'li', htmltag('h1', $lasttext), {title => $lasttext}); |
# last breadcrumb is the first order heading of a page |
|
# for course breadcrumbs it's just bold |
|
$links .= htmltag( 'li', htmltag($CourseBreadcrumbs ? 'b' : 'h1', |
|
$lasttext), {title => $lasttext}); |
|
|
my $icons = ''; |
my $icons = ''; |
$faq = $last->{'faq'} if (exists($last->{'faq'})); |
$faq = $last->{'faq'} if (exists($last->{'faq'})); |
Line 1812 sub role_select_row {
|
Line 1809 sub role_select_row {
|
|
|
sub course_select_row { |
sub course_select_row { |
my ($title,$formname,$totcodes,$codetitles,$idlist,$idlist_titles, |
my ($title,$formname,$totcodes,$codetitles,$idlist,$idlist_titles, |
$css_class,$crstype) = @_; |
$css_class,$crstype,$standardnames) = @_; |
my $output = &row_title($title,$css_class); |
my $output = &row_title($title,$css_class); |
$output .= &course_selection($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype); |
$output .= &course_selection($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype,$standardnames); |
$output .= &row_closure(); |
$output .= &row_closure(); |
return $output; |
return $output; |
} |
} |
|
|
sub course_selection { |
sub course_selection { |
my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype) = @_; |
my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype,$standardnames) = @_; |
my $output = qq| |
my $output = qq| |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 1867 sub course_selection {
|
Line 1864 sub course_selection {
|
if ($numtitles > 0) { |
if ($numtitles > 0) { |
$output .= '<input type="radio" name="coursepick" value="category" onclick="coursePick(this.form);alert('."'".&mt('Choose categories, from left to right')."'".')" />'.&mt('Pick courses by category:').' <br />'; |
$output .= '<input type="radio" name="coursepick" value="category" onclick="coursePick(this.form);alert('."'".&mt('Choose categories, from left to right')."'".')" />'.&mt('Pick courses by category:').' <br />'; |
$output .= '<table><tr><td>'.$$codetitles[0].'<br />'."\n". |
$output .= '<table><tr><td>'.$$codetitles[0].'<br />'."\n". |
'<select name="'.$$codetitles[0]. |
'<select name="'.$standardnames->[0]. |
'" onChange="setPick(this.form);courseSet('."'$$codetitles[0]'".')">'."\n". |
'" onChange="setPick(this.form);courseSet('."'$$codetitles[0]'".')">'."\n". |
' <option value="-1" />Select'."\n"; |
' <option value="-1" />Select'."\n"; |
my @items = (); |
my @items = (); |
Line 1897 sub course_selection {
|
Line 1894 sub course_selection {
|
$output .= '</select></td>'; |
$output .= '</select></td>'; |
for (my $i=1; $i<$numtitles; $i++) { |
for (my $i=1; $i<$numtitles; $i++) { |
$output .= '<td>'.$$codetitles[$i].'<br />'."\n". |
$output .= '<td>'.$$codetitles[$i].'<br />'."\n". |
'<select name="'.$$codetitles[$i]. |
'<select name="'.$standardnames->[$i]. |
'" onChange="courseSet('."'$$codetitles[$i]'".')">'."\n". |
'" onChange="courseSet('."'$$codetitles[$i]'".')">'."\n". |
'<option value="-1"><-Pick '.$$codetitles[$i-1].'</option>'."\n". |
'<option value="-1"><-Pick '.$$codetitles[$i-1].'</option>'."\n". |
'</select>'."\n". |
'</select>'."\n". |