From 21833bf8cf7c9dce94d9136eb86cb7d814fcb0b8 Mon Sep 17 00:00:00 2001 From: Andrew Pogrebennyk Date: Fri, 2 Jan 2015 15:22:03 +0100 Subject: [PATCH] MT#9453 introduce handling for adm_cf_ncos[_id] preference Change-Id: I17fdb7fa89a8e1682aafe43c02d94c8e230b8098 --- .../Panel/Controller/API/NcosLevelsItem.pm | 2 +- lib/NGCP/Panel/Controller/NCOS.pm | 2 +- lib/NGCP/Panel/Form/Preferences.pm | 4 +++- lib/NGCP/Panel/Role/API/Preferences.pm | 2 +- lib/NGCP/Panel/Utils/Preferences.pm | 18 +++++++++++++++++- share/templates/helpers/pref_table.tt | 7 +++++++ 6 files changed, 30 insertions(+), 5 deletions(-) diff --git a/lib/NGCP/Panel/Controller/API/NcosLevelsItem.pm b/lib/NGCP/Panel/Controller/API/NcosLevelsItem.pm index 3f0d7ff3b4..e4ea52704c 100644 --- a/lib/NGCP/Panel/Controller/API/NcosLevelsItem.pm +++ b/lib/NGCP/Panel/Controller/API/NcosLevelsItem.pm @@ -173,7 +173,7 @@ sub DELETE :Allow { my $item = $self->item_by_id($c, $id); last unless $self->resource_exists($c, ncoslevel => $item); - for my $pref(qw/adm_ncos_id subadm_ncos_id ncos_id/) { + for my $pref(qw/adm_ncos_id subadm_ncos_id ncos_id adm_cf_ncos_id/) { my $rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs( c => $c, attribute => $pref, ); diff --git a/lib/NGCP/Panel/Controller/NCOS.pm b/lib/NGCP/Panel/Controller/NCOS.pm index 0c5cfbbb81..58c3f09b64 100644 --- a/lib/NGCP/Panel/Controller/NCOS.pm +++ b/lib/NGCP/Panel/Controller/NCOS.pm @@ -145,7 +145,7 @@ sub delete :Chained('base') :PathPart('delete') { try { my $schema = $c->model('DB'); $schema->txn_do(sub { - for my $pref(qw/adm_ncos_id subadm_ncos_id ncos_id/) { + for my $pref(qw/adm_ncos_id subadm_ncos_id ncos_id adm_cf_ncos_id/) { my $rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs( c => $c, attribute => $pref, ); diff --git a/lib/NGCP/Panel/Form/Preferences.pm b/lib/NGCP/Panel/Form/Preferences.pm index feb7849594..9f4dd8e8ec 100644 --- a/lib/NGCP/Panel/Form/Preferences.pm +++ b/lib/NGCP/Panel/Form/Preferences.pm @@ -49,7 +49,9 @@ sub field_list { type => 'Select', options => \@options, }; - } elsif ($meta->attribute eq "ncos" || $meta->attribute eq "adm_ncos") { + } elsif ($meta->attribute eq "ncos" || + $meta->attribute eq "adm_ncos" || + $meta->attribute eq "adm_cf_ncos") { my @options = map {{label => $_->level, value => $_->id}} defined $ncos_rs ? $ncos_rs->all : (); unshift @options, {label => '', value => ''}; diff --git a/lib/NGCP/Panel/Role/API/Preferences.pm b/lib/NGCP/Panel/Role/API/Preferences.pm index 9c5c149951..0e7fe37897 100644 --- a/lib/NGCP/Panel/Role/API/Preferences.pm +++ b/lib/NGCP/Panel/Role/API/Preferences.pm @@ -393,7 +393,7 @@ sub update_item { my $extra = [qw/ rewrite_caller_in_dpid rewrite_caller_out_dpid rewrite_callee_in_dpid rewrite_callee_out_dpid - ncos_id adm_ncos_id + ncos_id adm_ncos_id adm_cf_ncos_id sound_set contract_sound_set allowed_ips_grp man_allowed_ips_grp /]; diff --git a/lib/NGCP/Panel/Utils/Preferences.pm b/lib/NGCP/Panel/Utils/Preferences.pm index c88a14ce2a..7b46b4eeaa 100644 --- a/lib/NGCP/Panel/Utils/Preferences.pm +++ b/lib/NGCP/Panel/Utils/Preferences.pm @@ -105,6 +105,13 @@ sub load_preference_list { $pref->{adm_ncos_id} = $tmp->id; } } + elsif($pref->attribute eq "adm_cf_ncos") { + if ($pref_values->{adm_cf_ncos_id} && + (my $tmp = $c->stash->{ncos_levels_rs} + ->find($pref_values->{adm_cf_ncos_id}) )) { + $pref->{adm_cf_ncos_id} = $tmp->id; + } + } elsif($pref->attribute eq "allowed_ips") { $pref->{allowed_ips_group_id} = $pref_values->{allowed_ips_grp}; $pref->{allowed_ips_rs} = $c->model('DB')->resultset('voip_allowed_ip_groups') @@ -222,6 +229,15 @@ sub create_preference_form { if (defined $ncos_id_preference) { $preselected_value = $ncos_id_preference->value; } + } elsif ($c->stash->{preference_meta}->attribute eq "adm_cf_ncos") { + my $ncos_id_preference = $pref_rs->search({ + 'attribute.attribute' => 'adm_cf_ncos_id' + },{ + join => 'attribute' + })->first; + if (defined $ncos_id_preference) { + $preselected_value = $ncos_id_preference->value; + } } elsif ($c->stash->{preference_meta}->attribute eq "allowed_ips") { my $allowed_ips_grp = $pref_rs->search({ 'attribute.attribute' => 'allowed_ips_grp' @@ -535,7 +551,7 @@ sub create_preference_form { ); $c->response->redirect($base_uri); return 1; - } elsif ($attribute eq "ncos" || $attribute eq "adm_ncos") { + } elsif ($attribute eq "ncos" || $attribute eq "adm_ncos" || $attribute eq "adm_cf_ncos") { my $selected_level = $c->stash->{ncos_levels_rs}->find( $form->field($attribute)->value ); diff --git a/share/templates/helpers/pref_table.tt b/share/templates/helpers/pref_table.tt index 524c988ca1..72771c6850 100644 --- a/share/templates/helpers/pref_table.tt +++ b/share/templates/helpers/pref_table.tt @@ -84,6 +84,13 @@ [% END -%] + [% ELSIF r.attribute == "adm_cf_ncos" -%] + [% ELSIF r.attribute == "sound_set" -%]