diff options
author | ivan <ivan> | 2005-02-20 08:44:40 +0000 |
---|---|---|
committer | ivan <ivan> | 2005-02-20 08:44:40 +0000 |
commit | d6047391feb3236374e16fd73240d9821d77fe06 (patch) | |
tree | 26cd3c1df50a28ed50ce77669a31d672748866a6 /FS | |
parent | 9e1ec0694dff61d375af8c0ef0e3895a7f1e07fd (diff) |
use a javascript layer instead of a browser popup (popup blockers), really generalize the progressbar code to make it easy to use as a component
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/UI/Web.pm | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm index 646804de6..d5c716843 100644 --- a/FS/FS/UI/Web.pm +++ b/FS/FS/UI/Web.pm @@ -9,14 +9,17 @@ package FS::UI::Web; package FS::UI::Web::JSRPC; +use strict; use vars qw(@ISA $DEBUG); use Storable qw(nfreeze); use MIME::Base64; use JavaScript::RPC::Server::CGI; use FS::UID; +use FS::Record qw(qsearchs); +use FS::queue; @ISA = qw( JavaScript::RPC::Server::CGI ); -$DEBUG = 1; +$DEBUG = 0; sub new { my $class = shift; @@ -59,6 +62,32 @@ sub start_job { } +sub job_status { + my( $self, $jobnum ) = @_; #$url ??? + + sleep 5; #could use something better... + + my $job; + if ( $jobnum =~ /^(\d+)$/ ) { + $job = qsearchs('queue', { 'jobnum' => $jobnum } ); + } else { + die "FS::UI::Web::job_status: illegal jobnum $jobnum\n"; + } + + my @return; + if ( $job && $job->status ne 'failed' ) { + @return = ( 'progress', $job->statustext ); + } elsif ( !$job ) { #handle job gone case : job sucessful + # so close popup, redirect parent window... + @return = ( 'complete' ); + } else { + @return = ( 'error', $job ? $job->statustext : $jobnum ); + } + + join("\n",@return); + +} + sub get_new_query { FS::UID::cgi(); } |