diff options
author | Christopher Burger <burgerc@freeside.biz> | 2019-04-28 19:14:49 -0400 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2019-04-28 19:14:49 -0400 |
commit | c15c4b8b1afa91049915f77503487e663554938b (patch) | |
tree | d51830d50989fbc76f563ecea77a4dc09a88de41 /httemplate | |
parent | 91e2bc5f8559642e33090484daede730e32a5391 (diff) |
RT# 83204 - added link to service or tower causing error.
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/edit/part_export.cgi | 9 | ||||
-rw-r--r-- | httemplate/edit/process/elements/process.html | 6 | ||||
-rw-r--r-- | httemplate/elements/error.html | 27 | ||||
-rw-r--r-- | httemplate/elements/progress-init.html | 2 | ||||
-rw-r--r-- | httemplate/misc/progress-popup.html | 9 |
5 files changed, 47 insertions, 6 deletions
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index f6ec208be..f8a46c7fd 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -63,6 +63,8 @@ if ( $cgi->param('error') ) { $part_export = new FS::part_export ( { map { $_, scalar($cgi->param($_)) } fields('part_export') } ); +} elsif ( $cgi->param('exportnum') ) { + $part_export = qsearchs('part_export', { 'exportnum' => $cgi->param('exportnum') } ); } elsif ( $query =~ /^(\d+)$/ ) { $part_export = qsearchs('part_export', { 'exportnum' => $1 } ); } else { @@ -296,7 +298,12 @@ my $widget = new HTML::Widgets::SelectLayers( $part_export->exporttype, [ $script.'_exportnum', $script.'_script' ], rooturl().'view/svc_export/run_script.cgi', - rooturl().'edit/part_export.cgi?'.$part_export->{Hash}->{exportnum}, + { + 'error_url' => rooturl().$exports->{$layer}{scripts}{$script}->{error_url}."exportnum=".$part_export->{Hash}->{exportnum}, + 'reload_with_error' => '1', + 'url' => rooturl().'edit/part_export.cgi?'.$part_export->{Hash}->{exportnum}, + 'message' => $exports->{$layer}{scripts}{$script}->{success_message}, + }, $script, ) . '<INPUT TYPE="hidden" NAME="'.$script.'_exportnum" VALUE="'.$part_export->{Hash}->{exportnum}.'"> diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html index f70875bec..e332957eb 100644 --- a/httemplate/edit/process/elements/process.html +++ b/httemplate/edit/process/elements/process.html @@ -499,7 +499,11 @@ if ($class eq "FS::tower" && !$error) { $error = $export_tower->{'error'} if $export_tower; } } - $cgi->param('error', $error) if $error; + if ($error) { + my $encoded_error = encode_base64($error); + $cgi->param('error_link', $encoded_error) if $error; + + } } # set up redirect URLs diff --git a/httemplate/elements/error.html b/httemplate/elements/error.html index f9664bd65..5083799fa 100644 --- a/httemplate/elements/error.html +++ b/httemplate/elements/error.html @@ -1,5 +1,28 @@ % if ( $cgi->param('error') ) { % $m->notes('error', $cgi->param('error')); <FONT SIZE="+1" COLOR="#ff0000"><% mt("Error: [_1]", $cgi->param('error')) |h %></FONT> - <BR><BR> -% } + <BR> +% } + +% if ( $cgi->param('error_link') ) { +% $m->notes('error', $error_link); + <FONT SIZE="+1" COLOR="#ff0000"><% $error_link %></FONT> + <BR> +% } +<BR> + +<%init> + +my %type_error_links = ( + 'service' => rooturl()."/view/svc_broadband.cgi?", + 'tower' => rooturl()."/edit/tower.html?", +); + +my $error_link; + +if ( $cgi->param('error_link') ) { + $error_link = encode_entities(decode_base64($cgi->param('error_link'))); + $error_link =~ s/!--(.*)\,(.*)\,(.*)--!/<a href=$type_error_links{$1}$2><font color=red><b>$3<\/b><\/font><\/a>/g; +} + +</%init>
\ No newline at end of file diff --git a/httemplate/elements/progress-init.html b/httemplate/elements/progress-init.html index 789825cc5..2a62c5e99 100644 --- a/httemplate/elements/progress-init.html +++ b/httemplate/elements/progress-init.html @@ -154,7 +154,7 @@ my %dest_info; if ( ref($url_or_message) ) { #its a message or something %dest_info = map { $_ => $url_or_message->{$_} } grep { $url_or_message->{$_} } - qw( message url popup_url error_url ); + qw( message url popup_url error_url reload_with_error ); } else { # it can also just be a url %dest_info = ( 'url' => $url_or_message ); diff --git a/httemplate/misc/progress-popup.html b/httemplate/misc/progress-popup.html index 9964bcc02..a0aa6f5d9 100644 --- a/httemplate/misc/progress-popup.html +++ b/httemplate/misc/progress-popup.html @@ -73,7 +73,13 @@ function updateStatus( status_statustext ) { % # default behavior: just close the popup % my $onClick = 'parent.nd(1);'; % if ( $error_url ) { # then on clicking to confirm, redirect somewhere -% $onClick = "window.top.location.href = \\'$error_url\\';"; +% if ( $reload_with_error ) { + var encodedString = btoa(statustext); + parent.nd(1); + window.top.location.href = '<% $error_url."&error_link=" %>'+encodedString; +% } +% +% $onClick = "window.top.location.href = \\'$error_url\\';"; % } document.getElementById("progress_message").innerHTML = '<FONT SIZE="+1" COLOR="#FF0000">Error: ' + statustext + '</FONT>'; @@ -126,5 +132,6 @@ my $message = $cgi->param('message'); my $popup_url = $cgi->param('popup_url'); my $formname = scalar($cgi->param('formname')); my $error_url = $cgi->param('error_url'); +my $reload_with_error = $cgi->param('reload_with_error'); </%init> |