From 0aaa4dcdf34a1c98b413cb6c4287e7013e0c7d61 Mon Sep 17 00:00:00 2001 From: Kirill Solomko Date: Tue, 7 Mar 2023 12:31:11 +0100 Subject: [PATCH] MT#56802 fix preferences default values selection * preferences form with enum values now set the default one as selected if no preference is set yet. * disable autocomplete for the preferences table fields. this addresses Firefox using incorrect selected values even though the correct data is sent by the server. Change-Id: I6865eec05c085b89e651b125a7f35724859ccbc2 (cherry picked from commit 3c1842c122a0a33be085e0c50a7775c522fb522f) --- lib/NGCP/Panel/Utils/Preferences.pm | 9 ++++++- share/templates/helpers/pref_table.tt | 38 +++++++++++++-------------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/lib/NGCP/Panel/Utils/Preferences.pm b/lib/NGCP/Panel/Utils/Preferences.pm index 327bd328b1..9d6f347737 100644 --- a/lib/NGCP/Panel/Utils/Preferences.pm +++ b/lib/NGCP/Panel/Utils/Preferences.pm @@ -12,7 +12,7 @@ use HTTP::Status qw(:constants); use File::Type; use Readonly; use MIME::Base64 qw(decode_base64); -use List::Util qw(any); +use List::Util qw(any first); use constant _DYNAMIC_PREFERENCE_PREFIX => '__'; @@ -1604,6 +1604,13 @@ sub create_preference_form { } } } + } elsif ($c->stash->{preference_meta}->data_type eq 'enum') { + if ($c->stash->{preference}->first) { + $preselected_value = $c->stash->{preference}->first->value unless ($c->stash->{preference_meta}->data_type eq 'blob'); + } else { + my $default_val = first { $_->default_val == 1 } @{ $enums }; + $preselected_value = $default_val ? $default_val->value : undef; + } } elsif ($c->stash->{preference_meta}->max_occur == 1) { if ($c->stash->{preference}->first) { $preselected_value = $c->stash->{preference}->first->value unless ($c->stash->{preference_meta}->data_type eq 'blob'); diff --git a/share/templates/helpers/pref_table.tt b/share/templates/helpers/pref_table.tt index 84640c9ab5..da7cdcf288 100644 --- a/share/templates/helpers/pref_table.tt +++ b/share/templates/helpers/pref_table.tt @@ -64,84 +64,84 @@ [% IF r.attribute == "rewrite_rule_set" -%] - [% FOR set IN helper.rewrite_rule_sets -%] [% END -%] [% ELSIF r.attribute == "cdr_export_sclidui_rwrs" -%] - [% FOR set IN helper.rewrite_rule_sets -%] [% END -%] [% ELSIF r.attribute == "header_rule_set" -%] - [% FOR set IN helper.header_rule_sets -%] [% END -%] [% ELSIF r.attribute == "ncos" -%] - [% FOR level IN helper.ncos_levels -%] [% END -%] [% ELSIF r.attribute == "adm_ncos" -%] - [% FOR level IN helper.ncos_levels -%] [% END -%] [% ELSIF r.attribute == "adm_cf_ncos" -%] - [% FOR level IN helper.ncos_levels -%] [% END -%] [% ELSIF r.attribute == "ncos_set" -%] - [% FOR set IN helper.ncos_sets -%] [% END -%] [% ELSIF r.attribute == "adm_ncos_set" -%] - [% FOR set IN helper.ncos_sets -%] [% END -%] [% ELSIF r.attribute == "adm_cf_ncos_set" -%] - [% FOR set IN helper.ncos_sets -%] [% END -%] [% ELSIF r.attribute == "emergency_mapping_container" -%] - [% FOR container IN helper.emergency_mapping_containers -%] [% END -%] [% ELSIF r.attribute == "sound_set" -%] - [% FOR set IN helper.sound_sets -%] [% END -%] [% ELSIF r.attribute == "contract_sound_set" -%] - [% FOR set IN helper.contract_sound_sets -%] @@ -157,7 +157,7 @@ [% END -%] [% ELSIF r.data_type == "boolean" %] - [% ELSIF r.data_type == "string" || r.data_type == "int" || r.data_type == "blob" %] [% IF r.max_occur == 1 %] @@ -173,9 +173,9 @@ [% END %] [% END %] [% ELSIF r.data_type == "enum" %] - [% FOREACH e IN r.enums %] - + [% END %] [% END %] @@ -229,7 +229,7 @@