--- loncom/interface/lonhtmlcommon.pm 2004/02/16 21:49:16 1.48 +++ loncom/interface/lonhtmlcommon.pm 2004/02/16 22:32:19 1.50 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.48 2004/02/16 21:49:16 albertel Exp $ +# $Id: lonhtmlcommon.pm,v 1.50 2004/02/16 22:32:19 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -557,6 +557,13 @@ Inputs =item $number_to_do The total number of items being processed. +=item $type Either 'popup' or 'inline' (popup is assumed if nothing is + specified) + +=item $formname Only useful in the inline case, if a form already exists, this needs to be used and specfiy the name of the form, otherwise the Progress line will be created in a new form of it's own + +=item $inputname Only useful in the inline case, if a form and an input of type text exists, use this to specify the name of the input field + =back Returns a hash containing the progress state data structure. @@ -627,36 +634,62 @@ Returns: none # Create progress sub Create_PrgWin { - my ($r, $title, $heading, $number_to_do)=@_; - #the whole function called through timeout is due to issues - #in mozilla Read BUG #2665 if you want to know the whole story - &r_print($r,'"); + "popwin.document.close();}". + "\nwindow.setTimeout(openpopwin,0)"); + $prog_state{'formname'}='popremain'; + $prog_state{'inputname'}="remaining"; + } elsif ($type eq 'inline') { + $prog_state{'window'}='window'; + if (!$formname) { + &r_print($r,'
'); + $prog_state{'formname'}='progresswindow'; + } else { + $prog_state{'formname'}=$formname; + } + if (!$inputname) { + &r_print($r,''); + $prog_state{'inputname'}="progressline"; + } else { + $prog_state{'inputname'}=$inputname; + + } + if (!$formname) { &r_print($r,'
'); } + &Update_PrgWin($r,\%prog_state,&mt('Starting')); + } - my %prog_state; $prog_state{'done'}=0; $prog_state{'firststart'}=&Time::HiRes::time(); $prog_state{'laststart'}=&Time::HiRes::time(); $prog_state{'max'}=$number_to_do; - + return %prog_state; } # update progress sub Update_PrgWin { my ($r,$prog_state,$displayString)=@_; - &r_print($r,''); $$prog_state{'laststart'}=&Time::HiRes::time(); } @@ -706,7 +739,9 @@ sub Increment_PrgWin { if ($user_browser eq 'explorer' && $user_os =~ 'mac') { $lasttime = ''; } - &r_print($r,''); $$prog_state{'laststart'}=&Time::HiRes::time(); @@ -715,7 +750,11 @@ sub Increment_PrgWin { # close Progress Line sub Close_PrgWin { my ($r,$prog_state)=@_; - &r_print($r,''."\n"); + if ($$prog_state{'type'} eq 'popup') { + &r_print($r,''."\n"); + } elsif ($$prog_state{'type'} eq 'inline') { + &Update_PrgWin($r,$prog_state,&mt('Done')); + } undef(%$prog_state); }