--- loncom/interface/lonmenu.pm 2003/05/23 23:58:53 1.70 +++ loncom/interface/lonmenu.pm 2003/05/27 19:57:51 1.73 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.70 2003/05/23 23:58:53 www Exp $ +# $Id: lonmenu.pm,v 1.73 2003/05/27 19:57:51 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -158,6 +158,13 @@ ENDINLINEMENU } } +# ===== Early call to LONCAPAreg for long-running pages, preferably used right +# ===== before $r->rflush() + +sub regflush { + return ''; +} + # ====================================== This gets called in the header section sub registerurl { @@ -181,13 +188,15 @@ sub registerurl { (!&Apache::lonnet::is_on_map($ENV{'REQUEST_URI'}))) && (!$forcereg))) { my $loadfunction=''; + my $inlineloadfunction=''; my $unloadfunction=''; unless (($ENV{'browser.interface'} eq 'textual') || ($ENV{'environment.remote'} eq 'off') || ($ENV{'request.publicaccess'})) { my $reopen=&Apache::lonmenu::reopenmenu(); - $loadfunction='swmenu='.$reopen.'swmenu.noclient=0;'; - $unloadfunction='swmenu='.$reopen.'swmenu.noclient=1;'; + $loadfunction='swmenu='.$reopen.'swmenu.windowloaded(self.name);'; + $inlineloadfunction=®flush(); + $unloadfunction='swmenu='.$reopen.'swmenu.windowunloaded(self.name);'; } return $result.(< @@ -199,6 +208,7 @@ function LONCAPAstale() { $unloadfunction } +$inlineloadfunction $force_title ENDFUNCTIONS } @@ -391,7 +401,7 @@ var swmenu=null; function LONCAPAreg() { swmenu=$reopen; - swmenu.noclient=0; + swmenu.windowloaded(self.name); swmenu.clearTimeout(swmenu.menucltim); $timesync $newmail @@ -419,7 +429,7 @@ var swmenu=null; 'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ 'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3);clearbut(6,1)', 2000); - swmenu.noclient=1; + swmenu.windowunloaded(self.name); } // END LON-CAPA Internal @@ -443,7 +453,7 @@ var swmenu=null; function LONCAPAreg() { swmenu=$reopen - swmenu.noclient=0; + swmenu.windowloaded(self.name); $timesync swmenu.currentStale=1; swmenu.clearbut(2,1); @@ -461,7 +471,7 @@ var swmenu=null; function LONCAPAstale() { swmenu=$reopen - swmenu.noclient=1; + swmenu.windowunloaded(self.name); } // END LON-CAPA Internal @@ -592,6 +602,7 @@ ENDRESIZE window.status='Opening LON-CAPA Remote Control'; var menu=window.open("/res/adm/pages/menu.html","$menuname", "height=350,width=150,scrollbars=no,menubar=no,top=5,left=5,screenX=5,screenY=5"); +self.name='loncapaclient'; ENDOPEN return ''; }