--- loncom/interface/lonhtmlcommon.pm 2010/04/13 10:21:29 1.271 +++ loncom/interface/lonhtmlcommon.pm 2010/08/08 02:00:38 1.282 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.271 2010/04/13 10:21:29 www Exp $ +# $Id: lonhtmlcommon.pm,v 1.282 2010/08/08 02:00:38 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -121,7 +121,7 @@ sub dragmath_button { my ($textarea,$helpicon) = @_; my $help_text; if ($helpicon) { - $help_text = &Apache::loncommon::help_open_topic('Authoring_Math_Editor'); + $help_text = &Apache::loncommon::help_open_topic('Authoring_Math_Editor',undef,undef,undef,undef,'mathhelpicon_'.$textarea); } my $buttontext=&mt('Edit Math'); return < 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'})/ - $$prog_state{'done'} * - ($$prog_state{'max'}-$$prog_state{'done'}); + $current * $last; $time_est = int($time_est); # my $min = int($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'}; if ($lasttime > 9) { $lasttime = int($lasttime); @@ -1081,27 +1078,24 @@ sub Increment_PrgWin { } else { $lasttime = sprintf("%3.2f",$lasttime); } - if ($lasttime == 1) { - $lasttime = '('.$lasttime.' '.&mt('second for').' '.$extraInfo.')'; - } else { - $lasttime = '('.$lasttime.' '.&mt('seconds for').' '.$extraInfo.')'; - } - # - my $user_browser = $env{'browser.type'} if (exists($env{'browser.type'})); - my $user_os = $env{'browser.os'} if (exists($env{'browser.os'})); - if (! defined($user_browser) || ! defined($user_os)) { - (undef,$user_browser,undef,undef,undef,$user_os) = - &Apache::loncommon::decode_user_agent(); - } - if ($user_browser eq 'explorer' && $user_os =~ 'mac') { - $lasttime = ''; - } + + $sec = 0 if ($min >= 10); # Don't show seconds if remaining time >= 10 min. + $sec = 1 if ( ($min == 0) && ($sec == 0) ); # Little cheating: pretend to have 1 second remaining instead of 0 to have something to display + + my $timeinfo = + &mt('[_1]/[_2]:' + .' [quant,_3,minute,minutes,] [quant,_4,second ,seconds ,]remaining' + .' ([quant,_5,second] for '.$extraInfo.')', + $current, + $$prog_state{'max'}, + $min, + $sec, + $lasttime); + &r_print($r,&Apache::lonhtmlcommon::scripttag( $$prog_state{'window'}.'.document.'. $$prog_state{'formname'}.'.'. - $$prog_state{'inputname'}.'.value="'. - $$prog_state{'done'}.'/'.$$prog_state{'max'}. - ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";' + $$prog_state{'inputname'}.'.value="'.$timeinfo.'";' )); $$prog_state{'laststart'}=&Time::HiRes::time(); } @@ -1218,23 +1212,7 @@ sub spelllink { ENDLINK } -# ------------------------------------------------- Output headers for HTMLArea - -{ - my @htmlareafields; - sub init_htmlareafields { - undef(@htmlareafields); - } - - sub add_htmlareafields { - my (@newfields) = @_; - push(@htmlareafields,@newfields); - } - - sub get_htmlareafields { - return @htmlareafields; - } -} +# ------------------------------------------------- Output headers for CKEditor sub htmlareaheaders { my $s=""; @@ -1253,22 +1231,6 @@ ENDJQUERY # ----------------------------------------------------------------- Preferences -sub disablelink { - my @fields=@_; - if (defined($#fields)) { - unless ($#fields>=0) { return ''; } - } - return ''.&mt('Disable WYSIWYG Editor').''; -} - -sub enablelink { - my @fields=@_; - if (defined($#fields)) { - unless ($#fields>=0) { return ''; } - } - return ''.&mt('Enable WYSIWYG Editor').''; -} - # ------------------------------------------------- lang to use in html editor sub htmlarea_lang { my $lang='en'; @@ -1281,22 +1243,45 @@ sub htmlarea_lang { # ----------------------------------------- Script to activate only some fields sub htmlareaselectactive { - my @fields=@_; + my ($args) = @_; unless (&htmlareabrowser()) { return ''; } my $output='
'; + .''; return $output; } @@ -1481,7 +1510,10 @@ returns: nothing my $lasttext = $last->{'no_mt'} ? $last->{'text'} : mt( $last->{'text'} ); - $links .= htmltag( 'li', htmltag('b', $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 = ''; $faq = $last->{'faq'} if (exists($last->{'faq'})); @@ -1812,15 +1844,15 @@ sub role_select_row { sub course_select_row { my ($title,$formname,$totcodes,$codetitles,$idlist,$idlist_titles, - $css_class,$crstype) = @_; + $css_class,$crstype,$standardnames) = @_; 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(); return $output; } sub course_selection { - my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype) = @_; + my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype,$standardnames) = @_; my $output = qq|