summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2019-04-28 19:14:49 -0400
committerChristopher Burger <burgerc@freeside.biz>2019-04-28 19:14:49 -0400
commitc15c4b8b1afa91049915f77503487e663554938b (patch)
treed51830d50989fbc76f563ecea77a4dc09a88de41
parent91e2bc5f8559642e33090484daede730e32a5391 (diff)
RT# 83204 - added link to service or tower causing error.
-rw-r--r--FS/FS/part_export/saisei.pm20
-rw-r--r--httemplate/edit/part_export.cgi9
-rw-r--r--httemplate/edit/process/elements/process.html6
-rw-r--r--httemplate/elements/error.html27
-rw-r--r--httemplate/elements/progress-init.html2
-rw-r--r--httemplate/misc/progress-popup.html9
6 files changed, 62 insertions, 11 deletions
diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 9646879..8661651 100644
--- a/FS/FS/part_export/saisei.pm
+++ b/FS/FS/part_export/saisei.pm
@@ -62,6 +62,8 @@ tie my %scripts, 'Tie::IxHash',
label => 'Export provisioned services',
description => 'will export provisioned services of part service with Saisei export attached.',
html_label => '<b>Export provisioned services attached to this export.</b>',
+ error_url => '/edit/part_export.cgi?',
+ success_message => 'Saisei export of provisioned services successful',
},
;
@@ -169,6 +171,7 @@ sub _export_insert {
tower.up_rate_limit as tower_upratelimit,
tower.down_rate_limit as tower_downratelimit,
tower_sector.sectorname,
+ tower_sector.towernum,
tower_sector.up_rate_limit as sector_upratelimit,
tower_sector.down_rate_limit as sector_downratelimit ',
'addl_from' => 'LEFT JOIN tower USING ( towernum )',
@@ -182,6 +185,7 @@ sub _export_insert {
my $tower_opt = {
'tower_name' => $tower_name,
+ 'tower_num' => $tower_sector->{Hash}->{towernum},
'tower_uprate_limit' => $tower_sector->{Hash}->{tower_upratelimit},
'tower_downrate_limit' => $tower_sector->{Hash}->{tower_downratelimit},
};
@@ -194,6 +198,7 @@ sub _export_insert {
my $sector_opt = {
'tower_name' => $tower_name,
+ 'tower_num' => $tower_sector->{Hash}->{towernum},
'sector_name' => $sector_name,
'sector_uprate_limit' => $tower_sector->{Hash}->{sector_upratelimit},
'sector_downrate_limit' => $tower_sector->{Hash}->{sector_downratelimit},
@@ -331,6 +336,7 @@ sub export_tower_sector {
$tower_name =~ s/\s/_/g;
my $tower_opt = {
'tower_name' => $tower_name,
+ 'tower_num' => $tower->{Hash}->{towernum},
'tower_uprate_limit' => $tower->{Hash}->{up_rate_limit},
'tower_downrate_limit' => $tower->{Hash}->{down_rate_limit},
'modify_existing' => '1', # modify an existing access point with this info
@@ -352,6 +358,7 @@ sub export_tower_sector {
$sector_name =~ s/\s/_/g;
my $sector_opt = {
'tower_name' => $tower_name,
+ 'tower_num' => $tower_sector->{Hash}->{towernum},
'sector_name' => $sector_name,
'sector_uprate_limit' => $tower_sector->{Hash}->{up_rate_limit},
'sector_downrate_limit' => $tower_sector->{Hash}->{down_rate_limit},
@@ -437,7 +444,7 @@ sub api_call {
return;
}
elsif ($client->responseCode() eq '500') {
- $self->{'__saisei_error'} = "Could not connect to the host (".$self->{Hash}->{machine}.':'.$self->option('port').") during $method , we received the responce code: " . $client->responseCode();
+ $self->{'__saisei_error'} = "Could not connect to the Saisei export host machine (".$self->{Hash}->{machine}.':'.$self->option('port').") during $method , we received the responce code: " . $client->responseCode();
warn "Saisei Response Content is\n".$client->responseContent."\n" if $self->option('debug');
return;
}
@@ -554,8 +561,8 @@ Creates a rateplan.
sub api_create_rateplan {
my ($self, $svc, $rateplan) = @_;
- $self->{'__saisei_error'} = "There is no download speed set for the service $rateplan with host (".$svc->{Hash}->{ip_addr}."). All services that are to be exported to Saisei need to have a download speed set for them." if !$svc->{Hash}->{speed_down};
- $self->{'__saisei_error'} = "There is no upload speed set for the service $rateplan with host (".$svc->{Hash}->{ip_addr}."). All services that are to be exported to Saisei need to have a upload speed set for them." if !$svc->{Hash}->{speed_up};
+ $self->{'__saisei_error'} = "There is no download speed set for the service !--service,".$svc->svcnum.",".$rateplan."--! with host (".$svc->{Hash}->{ip_addr}."). All services that are to be exported to Saisei need to have a download speed set for them." if !$svc->{Hash}->{speed_down};
+ $self->{'__saisei_error'} = "There is no upload speed set for the service !--service,".$svc->svcnum.",".$rateplan."--! with host (".$svc->{Hash}->{ip_addr}."). All services that are to be exported to Saisei need to have a upload speed set for them." if !$svc->{Hash}->{speed_up};
my $new_rateplan = $self->api_call(
"PUT",
@@ -617,6 +624,9 @@ Modify a existing rateplan.
sub api_modify_existing_rateplan {
my ($self,$svc,$rateplan_name) = @_;
+ $self->{'__saisei_error'} = "There is no download speed set for the service !--service,".$svc->svcnum.",".$rateplan_name."--! with host (".$svc->{Hash}->{ip_addr}."). All services that are to be exported to Saisei need to have a download speed set for them." if !$svc->{Hash}->{speed_down};
+ $self->{'__saisei_error'} = "There is no upload speed set for the service !--service,".$svc->svcnum.",".$rateplan_name."--! with host (".$svc->{Hash}->{ip_addr}."). All services that are to be exported to Saisei need to have a upload speed set for them." if !$svc->{Hash}->{speed_up};
+
my $modified_rateplan = $self->api_call(
"PUT",
"/rate_plans/$rateplan_name",
@@ -795,7 +805,7 @@ sub process_tower {
my ($self, $opt) = @_;
if (!$opt->{tower_uprate_limit} || !$opt->{tower_downrate_limit}) {
- $self->{'__saisei_error'} = "Could not export tower ".$opt->{tower_name}." because there was no up or down rates attached to the tower. Saisei requires a up and down rate be attached to each tower.";
+ $self->{'__saisei_error'} = "Could not export tower !--tower,".$opt->{tower_num}.",".$opt->{tower_name}."--! because there was no up or down rates attached to the tower. Saisei requires a up and down rate be attached to each tower.";
return { error => $self->api_error, };
}
@@ -835,7 +845,7 @@ sub process_sector {
}
if (!$opt->{sector_uprate_limit} || !$opt->{sector_downrate_limit}) {
- $self->{'__saisei_error'} = "Could not export sector ".$opt->{tower_name}." because there was no up or down rates attached to the sector. Saisei requires a up and down rate be attached to each sector.";
+ $self->{'__saisei_error'} = "Could not export sector !--tower,".$opt->{tower_num}.",".$opt->{sector_name}."--! because there was no up or down rates attached to the sector. Saisei requires a up and down rate be attached to each sector.";
return { error => $self->api_error, };
}
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index f6ec208..f8a46c7 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 f70875b..e332957 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 f9664bd..5083799 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 789825c..2a62c5e 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 9964bcc..a0aa6f5 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>