Re: [webmin-devel] adding a "please wait" popup while executing time consuming commands
"Jamie Cameron" <[email protected]> Fri, 06 Jun 2014 13:33:57 -0700 (PDT)
| Newsgroups | gmane.comp.web.webmin.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --bound1402086837 Content-Type: multipart/alternative; boundary="altsbound1402086837" Content-Transfer-Encoding: 7bit --altsbound1402086837 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit You should check if the same issue happens when not proxying via Nginx - it may be doing some buffering that delays the whole output. On 06/Jun/2014 08:17 marty leisner <[email protected]> wrote .. I still can't get the behavior I want where I print some text as soon as possible and then wait. Here's the relevant parg of a test .cgi: $start=qx(date); ui_print_unbuffered_header('Changing communication mode'); $|=1; print "started at $start\n<BR>"; my $type_ethernet=$in{'type_ethernet'}; my $type_wifi=$in{'type_wifi'}; set_wifi($type_wifi); set_ethernet($type_ethernet); $end=qx(date); print "ends at $end\n<BR>"; #print '<meta http-equiv="refresh" content="0;URL=index.cgi">'; footer(); The behavior of the "meta refresh" is what I want (at the end of the script, go to another page) But everything seems to print at once: (with and without the $|=1 trick) Changing communication mode started at Wed Jun 4 03:36:49 UTC 2014 ssh stop/waiting ssh start/running, process 20496 ends at Wed Jun 4 03:36:56 UTC 2014 (there should be about a 7 second visual delay between the started and ends, the data is transmitted instantenously). I want the data to be transmitted when I write it. I've done lots of playing with this simple example wihtout different results (seems the output is being buffered). I have webmin being redirected through the SSL of nginx (though I can't imagine that would be a problem) marty On Fri, May 23, 2014 at 4:48 PM, Jamie Cameron <[1][email protected]> wrote: You can't use the redirect function, as that can only be called if header isn't. You should instead output some JS like : <script> window.location = "/module./page.cgi"; </script> On 23/May/2014 07:15 marty leisner <[2][email protected]> wrote .. Thanks -- its ui_print_unbuffered_header. But after the page is displayed, I want to force a redirect to another page -- how would I do it Something like: &ui_print_unbuffered_header('please wait'); system('date'); print "<BR>\n"; sleep(5); system('date'); print "<BR>first line\n<BR>"; sleep(5); system('date'); print "<BR>second line\n<BR>"; footer(); # redirect('index.cgi'); marty On Wed, May 21, 2014 at 1:47 PM, Jamie Cameron <[3][email protected]> wrote: Try using un_print_unbuffered_header instead of ui_print_header On 20/May/2014 21:20 marty leisner <[4][email protected]> wrote .. I'm having a problem where my page is delivered on the network at the same time -- after the delay (I used wireshark to monitor this) What I want tried is: ui_print_header('please wait'); footer(); sleep(5); print "final\n<BR>"; I would have expected to see the header render, a delay, and "final". Its all happening after the delay. What I really want to do is: display "please wait" run a long command redirect to another page (after the command runs) marty On Tue, May 20, 2014 at 4:19 PM, Jamie Cameron <[5][email protected]> wrote: On 20/May/2014 09:27 marty leisner <[6][email protected]> wrote .. > When having a custom module in webmin execute time consuming commands, how > would I add a > "please wait" message until the command is finished (without user > interaction). > > I.e.: > > start_please_wait(); > system("long_command"); > stop_please_wait(); In some modules, I've had Webmin print out a series of dots (one per second) while performing some long operation. The code is like : print "Doing something slow .."; launch_slow_op_in_background(); while(!done_slow_op()) { sleep(1); print "."; } print "<br>\n"; print ".. done<p>\n"; - Jamie -------------------------------------------------------------------------- ---- "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." [7]http://p.sf.net/sfu/SauceLabs - Forwarded by the Webmin development list at [8][email protected] To remove yourself from this list, go to [9]http://lists.sourceforge.net/lists/listinfo/webadmin-devel -------------------------------------------------------------------------- ---- "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." [10]http://p.sf.net/sfu/SauceLabs - Forwarded by the Webmin development list at [11][email protected] To remove yourself from this list, go to [12]http://lists.sourceforge.net/lists/listinfo/webadmin-devel -------------------------------------------------------------------------- ---- "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." [13]http://p.sf.net/sfu/SauceLabs - Forwarded by the Webmin development list at [14][email protected] To remove yourself from this list, go to [15]http://lists.sourceforge.net/lists/listinfo/webadmin-devel 1. file://localhost/home/webmail/homes/jcameron/.tmp/reply_mail.cgi?new=1&to=jcameron%40webmin%2Ecom 2. file://localhost/home/webmail/homes/jcameron/.tmp/reply_mail.cgi?new=1&to=maleisner%40gmail%2Ecom 14. file://localhost/home/webmail/homes/jcameron/.tmp/reply_mail.cgi?new=1&to=webmin%2Ddevel%40webmin%2Ecom --altsbound1402086837 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit <p>You should check if the same issue happens when not proxying via Nginx - it may be doing some buffering that delays the whole output. </p> <p>On 06/Jun/2014 08:17 marty leisner <[email protected]> wrote .. </p> <blockquote type="cite"> <div dir="ltr"><br /> <div>I still can't get the behavior I want where I print some text as soon as possible and then wait.</div> <div><br /></div> <div>Here's the relevant parg of a test .cgi:</div> <div><br /></div> <div style="margin-left: 40px;"> <span style="font-family: 'courier new', monospace;">$start=qx(date);<br /><br /> ui_print_unbuffered_header('</span><span style="font-family: 'courier new', monospace;">Changing communication mode');<br />$|=1;<br />print "started at $start\n<BR>";<br /><br />my $type_ethernet=$in{'type_</span><span style="font-family: 'courier new', monospace;">ethernet'};<br /> <br />my $type_wifi=$in{'type_wifi'};<br /></span> <span style="font-family: 'courier new', monospace;"><br />set_wifi($type_wifi);<br />set_ethernet($type_ethernet);<br /><br />$end=qx(date);</span></div> <div style="margin-left: 40px;"><span style="font-family: 'courier new', monospace;"><br /> </span></div> <div style="margin-left: 40px;"><span style="font-family: 'courier new', monospace;"> print "ends at $end\n<BR>";<br /><br />#print '<meta http-equiv="refresh" content="0;URL=index.cgi">';<br /> footer();<br /></span></div> <div><br /></div> <div>The behavior of the "meta refresh" is what I want (at the end of the script, go to another page)</div> <div><br /></div> <div>But everything seems to print at once: (with and without the $|=1 trick)<br /> </div> <div><br /> </div> <div style="margin-left: 40px;"><span style="font-family: 'courier new', monospace;">Changing communication mode<br /> started at Wed Jun 4 03:36:49 UTC 2014 <br />ssh stop/waiting ssh start/running, process 20496 ends at Wed Jun 4 03:36:56 UTC 2014</span></div> <div><br /></div> <div>(there should be about a 7 second visual delay between the started and ends, the data is transmitted instantenously).<br /><br /></div> <div>I want the data to be transmitted when I write it.<br /><br /></div> <div> I've done lots of playing with this simple example wihtout different results (seems the output is being buffered).<br /><br /></div> <div>I have webmin being redirected through the SSL of nginx (though I can't imagine that would be a problem)<br /> </div> <div><br /></div> <div>marty<br /></div> <div><br /></div> <div class="gmail_extra"><br /><br /> <div class="gmail_quote">On Fri, May 23, 2014 at 4:48 PM, Jamie Cameron <span dir="ltr"><<a href="reply_mail.cgi?new=1&to=jcameron%40webmin%2Ecom" target="_blank">[email protected]</a>></span> wrote:<br /> <blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: #cccccc; border-left-style: solid; padding-left: 1ex;"> <p>You can't use the redirect function, as that can only be called if header isn't. You should instead output some JS like :<br /> <br /><script><br />window.location = "/module./page.cgi";<br /></script> </p> <p>On 23/May/2014 07:15 marty leisner <<a href="reply_mail.cgi?new=1&to=maleisner%40gmail%2Ecom" target="_blank">[email protected]</a>> wrote .. </p> <div> <div> <blockquote type="cite"> <div dir="ltr"> <div><br /></div> <div>Thanks -- its ui_print_unbuffered_header.</div> <div><br /></div> <div>But after the page is displayed, I want to force a redirect to another page -- how would I do it</div> <div><br /></div> <div> Something like:</div> <div style="margin-left: 40px !important;">&ui_print_unbuffered_header('please wait'); <div>system('date');</div> <div>print "<BR>\n";</div> <div>sleep(5);</div> <div>system('date');</div> <div> print "<BR>first line\n<BR>";</div> <div>sleep(5);</div> <div>system('date');</div> <div>print "<BR>second line\n<BR>";</div> <div><br /></div> <div>footer();</div> <div> <br /> </div> <div># redirect('index.cgi');<br /></div> </div> <div style="margin-left: 40px !important;"><br /></div> <div style="margin-left: 0px !important;">marty<br /></div> </div> <div class="gmail_extra"><br /><br /> <div class="gmail_quote"> On Wed, May 21, 2014 at 1:47 PM, Jamie Cameron <span dir="ltr"><<a href="http://reply_mail.cgi?new=1&to=jcameron%40webmin%2Ecom" target="_blank">[email protected]</a>></span> wrote:<br /> <blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: #cccccc; border-left-style: solid; padding-left: 1ex;"> <p>Try using un_print_unbuffered_header instead of ui_print_header </p> <p>On 20/May/2014 21:20 marty leisner <<a href="http://reply_mail.cgi?new=1&to=maleisner%40gmail%2Ecom" target="_blank">[email protected]</a>> wrote .. </p> <div> <div> <blockquote type="cite"> <div dir="ltr"> <div> <div> <div> <div>I'm having a problem where my page is delivered on the network at the same time -- after the delay (I used wireshark to <br /></div> <div>monitor this)<br /></div> <div><br /></div>What I want tried is:<br /> <br />ui_print_header('please wait');<br /> </div> <div>footer();<br />sleep(5);<br />print "final\n<BR>";<br /><br /></div> <div>I would have expected to see the header render, a delay, and "final".<br /> </div> <div><br /></div> <div>Its all happening after the delay.<br /><br /></div> <div>What I really want to do is:<br /><br /></div> <div>display "please wait"<br /></div> <div>run a long command<br /></div> <div>redirect to another page (after the command runs)<br /> <br /></div> <div>marty<br /></div> </div> </div> </div> <div class="gmail_extra"><br /><br /> <div class="gmail_quote">On Tue, May 20, 2014 at 4:19 PM, Jamie Cameron <span dir="ltr"><<a href="http://reply_mail.cgi?new=1&to=jcameron%40webmin%2Ecom" target="_blank">[email protected]</a>></span> wrote:<br /> <blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: #cccccc; border-left-style: solid; padding-left: 1ex;">On 20/May/2014 09:27 marty leisner <<a href="http://reply_mail.cgi?new=1&to=maleisner%40gmail%2Ecom" target="_blank">[email protected]</a>> wrote ..<br /> <div> <div>> When having a custom module in webmin execute time consuming commands, how<br /> > would I add a<br /> > "please wait" message until the command is finished (without user<br /> > interaction).<br /> ><br /> > I.e.:<br /> ><br /> > start_please_wait();<br /> > system("long_command");<br /> > stop_please_wait();<br /> <br /> </div> </div>In some modules, I've had Webmin print out a series of dots (one per second)<br /> while performing some long operation. The code is like :<br /> <br /> print "Doing something slow ..";<br /> launch_slow_op_in_background();<br /> while(!done_slow_op()) {<br /> sleep(1);<br /> print ".";<br /> }<br /> print "<br>\n";<br /> print ".. done<p>\n";<br /> <br /> - Jamie<br /> <br /> ------------------------------------------------------------------------------<br /> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE<br /> Instantly run your Selenium tests across 300+ browser/OS combos.<br /> Get unparalleled scalability from the best Selenium testing platform available<br /> Simple to use. Nothing to install. Get started now for free."<br /> <a href="http://p.sf.net/sfu/SauceLabs" target="_blank">http://p.sf.net/sfu/SauceLabs</a><br /> -<br /> Forwarded by the Webmin development list at <a href="http://reply_mail.cgi?new=1&to=webmin%2Ddevel%40webmin%2Ecom" target="_blank">[email protected]</a><br /> To remove yourself from this list, go to<br /> <a href="http://lists.sourceforge.net/lists/listinfo/webadmin-devel" target="_blank">http://lists.sourceforge.net/lists/listinfo/webadmin-devel</a><br /> </blockquote> </div><br /> </div> </blockquote><br /> </div> </div><br />------------------------------------------------------------------------------<br /> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE<br /> Instantly run your Selenium tests across 300+ browser/OS combos.<br /> Get unparalleled scalability from the best Selenium testing platform available<br /> Simple to use. Nothing to install. Get started now for free."<br /> <a href="http://p.sf.net/sfu/SauceLabs" target="_blank">http://p.sf.net/sfu/SauceLabs</a><br />-<br /> Forwarded by the Webmin development list at <a href="http://reply_mail.cgi?new=1&to=webmin%2Ddevel%40webmin%2Ecom" target="_blank">[email protected]</a><br /> To remove yourself from this list, go to<br /> <a href="http://lists.sourceforge.net/lists/listinfo/webadmin-devel" target="_blank">http://lists.sourceforge.net/lists/listinfo/webadmin-devel</a><br /> <br /> </blockquote> </div><br /> </div> </blockquote><br /> </div> </div><br />------------------------------------------------------------------------------<br /> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE<br /> Instantly run your Selenium tests across 300+ browser/OS combos.<br /> Get unparalleled scalability from the best Selenium testing platform available<br /> Simple to use. Nothing to install. Get started now for free."<br /> <a href="http://p.sf.net/sfu/SauceLabs" target="_blank">http://p.sf.net/sfu/SauceLabs</a><br />-<br /> Forwarded by the Webmin development list at <a href="reply_mail.cgi?new=1&to=webmin%2Ddevel%40webmin%2Ecom" target="_blank">[email protected]</a><br /> To remove yourself from this list, go to<br /> <a href="http://lists.sourceforge.net/lists/listinfo/webadmin-devel" target="_blank">http://lists.sourceforge.net/lists/listinfo/webadmin-devel</a><br /> <br /> </blockquote> </div><br /> </div> </div> </blockquote><br /> --altsbound1402086837-- --bound1402086837 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech --bound1402086837 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline - Forwarded by the Webmin development list at [email protected] To remove yourself from this list, go to http://lists.sourceforge.net/lists/listinfo/webadmin-devel --bound1402086837--