TT#83502 - UI: drop ringtimeout pref when deleting last CFT

* if there are no more *enabled* CFT left after editing
	   callforwards (simple/advanced) or if CFT is deleted,
	   the ringtimeout has to be removed.

Change-Id: Icfa2fb1db281a5a5b4b2edce28ad7b0d69ddf47c
changes/47/40847/6
Flaviu Mates 5 years ago
parent f6a2802130
commit 51f55ea114

@ -1074,9 +1074,14 @@ sub preferences_callforward :Chained('base') :PathPart('preferences/callforward'
$cf_preference->create({ value => $map->id });
if($cf_type eq 'cft') {
if($ringtimeout_preference->first) {
$ringtimeout_preference->first->update({
value => $c->request->params->{ringtimeout}
});
if (!$cf_form->field('enabled')->value) {
$ringtimeout_preference->first->delete;
}
else {
$ringtimeout_preference->first->update({
value => $c->request->params->{ringtimeout}
});
}
} else {
$ringtimeout_preference->create({
value => $c->request->params->{ringtimeout},
@ -1299,6 +1304,9 @@ sub preferences_callforward_advanced :Chained('base') :PathPart('preferences/cal
$ringtimeout_preference->create({ value => $cf_form->field('ringtimeout')->value });
}
}
if ($prov_subscriber->voip_cf_mappings->search_rs({ type => "cft", enabled => 1 })->count == 0) {
$ringtimeout_preference->delete;
}
});
NGCP::Panel::Utils::Message::info(
c => $c,
@ -2480,6 +2488,15 @@ sub preferences_callforward_delete :Chained('base') :PathPart('preferences/callf
foreach my $map($mapping_rs->all) {
$autoattendant_count += NGCP::Panel::Utils::Subscriber::check_dset_autoattendant_status($map->destination_set);
}
if($cf_type eq 'cft') {
my $ringtimeout_preference = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, prov_subscriber => $prov_subscriber,
attribute => 'ringtimeout'
);
if($ringtimeout_preference->first) {
$ringtimeout_preference->delete;
}
}
$mapping_rs->delete_all;
my $cf_pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c,

@ -130,7 +130,7 @@ $( document ).ready(function() {
<tr class="sw_action_row">
<td>[% cf.desc %]</td> <!--- Type -->
<td> <!--- Answer Timeout (only cft) -->
[% cf_ringtimeout _ 's' IF cf.type == "cft" && cf_destinations.${cf.type}.size %]
[% cf_ringtimeout _ 's' IF cf.type == "cft" && cf_destinations.${cf.type}.size && cf_ringtimeout.defined %]
</td>
<td> <!--- Timeset -->
[% idx = 0 -%]

Loading…
Cancel
Save