X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FUI%2FWeb.pm;h=d5c7168434941959c0cdee0b4b11fec00e097956;hp=646804de67af245031526828d84934e1d6f6b164;hb=d6047391feb3236374e16fd73240d9821d77fe06;hpb=9e1ec0694dff61d375af8c0ef0e3895a7f1e07fd 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(); }