From d616680361b7e453260fa1eb062f016982f8e836 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 Conflicts: FS/FS/svc_broadband.pm --- 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 9cd085942..45c6b1158 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 a238a3f04..a919c0376 100644 --- a/httemplate/edit/elements/edit.html +++ b/httemplate/edit/elements/edit.html @@ -833,6 +833,7 @@ Example: my(%opt) = @_; +my $conf = new FS::Conf; my $curuser = $FS::CurrentUser::CurrentUser; #false laziness w/process.html @@ -845,6 +846,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 11757237a..7933717b0 100644 --- a/httemplate/edit/process/elements/process.html +++ b/httemplate/edit/process/elements/process.html @@ -105,6 +105,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