From 8f377efa3643b02c7ab25c989903813591888a1a Mon Sep 17 00:00:00 2001 From: Christopher Burger Date: Wed, 28 Nov 2018 08:55:29 -0500 Subject: [PATCH] RT# 81126 - IP address field now shows required when required, IP address and Radius Group sticky on error when provisioning svc broadband --- FS/FS/svc_broadband.pm | 7 ++++++- httemplate/edit/elements/edit.html | 3 +++ httemplate/edit/process/elements/process.html | 6 ++++++ httemplate/edit/svc_broadband.cgi | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) 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 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: %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); }, }, -- 2.11.0