[freeside-commits] branch master updated. c15c4b8b1afa91049915f77503487e663554938b

Christopher Burger burgerc at freeside.biz
Sun Apr 28 16:16:47 PDT 2019


The branch, master has been updated
       via  c15c4b8b1afa91049915f77503487e663554938b (commit)
      from  91e2bc5f8559642e33090484daede730e32a5391 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c15c4b8b1afa91049915f77503487e663554938b
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Sun Apr 28 19:14:49 2019 -0400

    RT# 83204 - added link to service or tower causing error.

diff --git a/FS/FS/part_export/saisei.pm b/FS/FS/part_export/saisei.pm
index 9646879a8..8661651df 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 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>

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/part_export/saisei.pm                   | 20 +++++++++++++++-----
 httemplate/edit/part_export.cgi               |  9 ++++++++-
 httemplate/edit/process/elements/process.html |  6 +++++-
 httemplate/elements/error.html                | 27 +++++++++++++++++++++++++--
 httemplate/elements/progress-init.html        |  2 +-
 httemplate/misc/progress-popup.html           |  9 ++++++++-
 6 files changed, 62 insertions(+), 11 deletions(-)




More information about the freeside-commits mailing list