X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FUI%2FWeb.pm;h=cb740ee3b329fe640e1b39473adc3ef4f44e8608;hb=09ce724404f16e036cbdfeccb64a0955dafca99a;hp=821b1916a77e13ead172b3dad6e3ba52c02009e7;hpb=2ab068f449eb97a10e18d20e9dab5ab9faa017e7;p=freeside.git diff --git a/FS/FS/UI/Web.pm b/FS/FS/UI/Web.pm index 821b1916a..cb740ee3b 100644 --- a/FS/FS/UI/Web.pm +++ b/FS/FS/UI/Web.pm @@ -3,6 +3,7 @@ package FS::UI::Web; use strict; use vars qw($DEBUG @ISA @EXPORT_OK $me); use Exporter; +use Carp qw( confess );; use FS::Conf; use FS::Misc::DateTime qw( parse_datetime ); use FS::Record qw(dbdef); @@ -143,6 +144,9 @@ sub svc_X_link { return $x unless $FS::CurrentUser::CurrentUser->access_right('View customer services'); + confess "svc_X_link called without a service ($x, $m, $part_svc, $cust_svc)\n" + unless $cust_svc; + my $ahref = svc_url( 'ahref' => 1, 'm' => $m, @@ -494,6 +498,7 @@ use JSON; use FS::UID qw(getotaker); use FS::Record qw(qsearchs); use FS::queue; +use FS::CGI qw(rooturl); $DEBUG = 0; @@ -565,6 +570,7 @@ sub start_job { } } $param{CurrentUser} = getotaker(); + $param{RootURL} = rooturl($self->{cgi}->self_url); warn "FS::UI::Web::start_job\n". join('', map { if ( ref($param{$_}) ) { @@ -620,13 +626,15 @@ sub job_status { } my @return; - if ( $job && $job->status ne 'failed' ) { + if ( $job && $job->status ne 'failed' && $job->status ne 'done' ) { my ($progress, $action) = split ',', $job->statustext, 2; $action ||= 'Server processing job'; @return = ( 'progress', $progress, $action ); } elsif ( !$job ) { #handle job gone case : job successful # so close popup, redirect parent window... @return = ( 'complete' ); + } elsif ( $job->status eq 'done' ) { + @return = ( 'done', $job->statustext, '' ); } else { @return = ( 'error', $job ? $job->statustext : $jobnum ); }