summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xFS/FS/svc_broadband.pm7
-rw-r--r--httemplate/edit/elements/edit.html3
-rw-r--r--httemplate/edit/process/elements/process.html6
-rw-r--r--httemplate/edit/svc_broadband.cgi1
4 files changed, 16 insertions, 1 deletions
diff --git a/FS/FS/svc_broadband.pm b/FS/FS/svc_broadband.pm
index 02136c594..d089f4105 100755
--- a/FS/FS/svc_broadband.pm
+++ b/FS/FS/svc_broadband.pm
@@ -96,6 +96,8 @@ points to. You can ask the object for a copy with the I<hash> method.
=cut
sub table_info {
+ my $conf = new FS::Conf;
+ my $ip_addr_required = $conf->exists('svc_broadband-allow_null_ip_addr');
{
'name' => 'Wireless broadband',
'name_plural' => 'Wireless broadband services',
@@ -117,7 +119,10 @@ sub table_info {
'type' => 'fcc_477_speed',
'def_info' => 'both upload and download speed must be set to FCC 477 information if using that modifier',
},
- 'ip_addr' => 'IP address',
+ 'ip_addr' => {
+ 'label' => 'IP address',
+ 'required' => $ip_addr_required,
+ },
'blocknum' => {
'label' => 'Address block',
'type' => 'select',
diff --git a/httemplate/edit/elements/edit.html b/httemplate/edit/elements/edit.html
index 1d472099b..feec098f3 100644
--- a/httemplate/edit/elements/edit.html
+++ b/httemplate/edit/elements/edit.html
@@ -869,6 +869,7 @@ Example:
my(%opt) = @_;
+my $conf = new FS::Conf;
my $curuser = $FS::CurrentUser::CurrentUser;
#false laziness w/process.html
@@ -881,6 +882,8 @@ my $fields = $opt{'fields'}
my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields;
push @actualfields, $pkey;
+push @actualfields, 'ip_addr' if $table eq 'svc_broadband';
+push @actualfields, 'usergroup' if ($table eq 'svc_broadband' && $conf->exists('svc_broadband-radius'));
my $js_form_validate = {};
diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html
index d2b037053..0e9edb064 100644
--- a/httemplate/edit/process/elements/process.html
+++ b/httemplate/edit/process/elements/process.html
@@ -109,6 +109,12 @@ Example:
</%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");
diff --git a/httemplate/edit/svc_broadband.cgi b/httemplate/edit/svc_broadband.cgi
index bcf55fe11..374af4770 100644
--- a/httemplate/edit/svc_broadband.cgi
+++ b/httemplate/edit/svc_broadband.cgi
@@ -109,6 +109,7 @@ my @fields = (
return () unless $part_svc; #sanity check
my $col = $part_svc->part_svc_column('ip_addr');
return () unless $col; #sanity check
+ $col->set('required', 'Y') unless $conf->exists('svc_broadband-allow_null_ip_addr');
return ('ip_addr_required' => $col->required);
},
},