diff --git a/lib/NGCP/Panel/Controller/Domain.pm b/lib/NGCP/Panel/Controller/Domain.pm index aaca01297e..b6102c8fc8 100644 --- a/lib/NGCP/Panel/Controller/Domain.pm +++ b/lib/NGCP/Panel/Controller/Domain.pm @@ -243,6 +243,28 @@ sub preferences_edit :Chained('preferences_detail') :PathPart('edit') :Args(0) { return; } } + + my $delete_param = $c->request->params->{delete}; + my $deactivate_param = $c->request->params->{deactivate}; + my $activate_param = $c->request->params->{activate}; + my $param_id = $delete_param || $deactivate_param || $activate_param; + # only one parameter is processed at a time (?) + if($param_id) { + my $rs = $c->model('provisioning') + ->resultset('voip_dom_preferences') + ->find($param_id); + if($rs->attribute_id != $c->stash->{preference_meta}->id) { + # Invalid param (dom_pref does not belong to current pref) + } elsif($delete_param) { + $rs->delete(); + } elsif ($deactivate_param) { + $rs->update({value => "#".$rs->value}); + } elsif ($activate_param) { + my $new_value = $rs->value; + $new_value =~ s/^#//; + $rs->update({value => $new_value}); + } + } $c->stash(form => $form); } diff --git a/share/templates/helpers/pref_table.tt b/share/templates/helpers/pref_table.tt index 7abc6af99f..3343228340 100644 --- a/share/templates/helpers/pref_table.tt +++ b/share/templates/helpers/pref_table.tt @@ -74,7 +74,12 @@ [% IF helper.preference_meta.max_occur != 1 %] [% FOREACH v IN helper.preference.all %] - Delete + + [% IF v.value.substr(0,1) == '#' %] + + [% ELSE %] + + [% END %]
[% END %] [% END %]