diff options
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(); } |