'clear_on_error' => [ 'form_field1', 'form_field2', ... ],
+ ## message will be returned to redirect page as cookie and read by header.html
+ ## append =status, =warning, =error to change color of message box. Default is status
+ ## status is green, warning is yellow, and error is red
+ 'message' => [ 'My message=status', 'Please restart=warning' ],
+
#pass an arrayref of hashrefs for multiple m2ms or m2names
#be certain you incorporate m2m_Common if you see error: param
# for use with tables that are FS::option_Common (among other things)
'args_callback' => sub { my( $cgi, $object ) = @_; },
+ # if no errors after package insert or replace will update services attached to package.
+ 'update_svc' => sub { my( $cgi, $object ) = @_; },
+
'debug' => 1, #turns on debugging output
#agent virtualization
</%doc>
%if ( $error ) {
+% ## flatten any array refs so multi selects are sticky on error
+% for my $param ($cgi->param) {
+% if (ref($cgi->param($param)) eq "ARRAY") {
+% $cgi->param($param, (join ",", @{$cgi->param($param)}));
+% }
+% }
%
% #my $query = $m->scomp('/elements/create_uri_query');
% #$cgi->redirect("$url?$query");
}
}
+ if ( !$error and $opt{'update_svc'} ) {
+ my @args = ();
+ @args = &{ $opt{'args_callback'} }( $cgi, $new ) if $opt{'args_callback'};
+ $error = &{ $opt{'update_svc'} }( $cgi, $new, @args );
+ }
+
if ( $error ) {
$cgi->param('error', $error);
}
-if ($class eq "FS::tower") {
+if ($class eq "FS::tower" && !$error) {
foreach my $part_svc_broadband_export ( FS::tower_sector->part_export_svc_broadband ) {
if ($part_svc_broadband_export and $part_svc_broadband_export->can('export_tower_sector')) {
- $error = $part_svc_broadband_export->export_tower_sector($new);
+ my $export_tower = $part_svc_broadband_export->export_tower_sector($new);
+ $error = $export_tower->{'error'} if $export_tower;
}
}
+ $cgi->param('error', $error) if $error;
}
# set up redirect URLs
}
}
+my $messages = $opt{'message'} ? $opt{'message'} : '';
+
my $edit_ext = $opt{'edit_ext'} || 'html';
my $error_redirect = $opt{'error_redirect'}
|| popurl(2)."$table.$edit_ext";