From 8f4c9cd4b8121a87a060481c60232559fbbcf8d6 Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Tue, 10 Jan 2012 13:29:25 +0000 Subject: [PATCH] Prepare preference view to make CFs editable. Show dsets and tsets dropdown while editing CFs. Remove time defs from dset view (has a own view now). --- lib/admin/Controller/subscriber.pm | 53 +++++-- root/tt/subscriber_callforward.tt | 234 ----------------------------- root/tt/subscriber_preferences.tt | 69 +++++++-- 3 files changed, 98 insertions(+), 258 deletions(-) diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm index 194f03f..82e98e1 100644 --- a/lib/admin/Controller/subscriber.pm +++ b/lib/admin/Controller/subscriber.pm @@ -574,6 +574,7 @@ sub preferences : Local { my $preferences; my $speed_dial_slots; + my $cf_dsets; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', @@ -588,6 +589,13 @@ sub preferences : Local { \$preferences ); + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_cf_destination_sets', + { username => $$subscriber{username}, + domain => $$subscriber{domain}, + }, + \$cf_dsets, + ); + # voicebox requires a number if(length $$subscriber{sn} && $c->config->{voicemail_features}) { return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_voicebox_preferences', @@ -632,6 +640,7 @@ sub preferences : Local { $$subscriber{reminder} ); + $c->stash->{cf_dsets} = $cf_dsets; $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber}{subscriber_id} = $subscriber_id; $c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})-> @@ -774,6 +783,7 @@ sub preferences : Local { $c->stash->{edit_voicebox} = $c->request->params->{edit_voicebox}; $c->stash->{edit_fax} = $c->request->params->{edit_fax}; $c->stash->{edit_reminder} = $c->request->params->{edit_reminder}; + $c->stash->{edit_callforward} = $c->request->params->{edit_callforward}; return 1; } @@ -1219,16 +1229,18 @@ sub edit_cf : Local { my $subscriber_id = $c->request->params->{subscriber_id}; $c->stash->{subscriber_id} = $subscriber_id; + + my $subscriber; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber, ); - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; my $dsets; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_cf_destination_sets', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $subscriber->{username}, + domain => $subscriber->{domain}, }, \$dsets, ); @@ -1274,9 +1286,16 @@ sub edit_cf_saveset : Local { $dset{name} = $c->request->params->{dsetname}; $dset{id} = $dset_id; + my $subscriber; + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', + { subscriber_id => $subscriber_id }, + \$subscriber, + ); + $c->stash->{subscriber} = $subscriber; + if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_subscriber_cf_destination_set', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $subscriber->{username}, + domain => $subscriber->{domain}, data => \%dset, }, undef, @@ -1308,9 +1327,16 @@ sub edit_cf_delset : Local { $dset{id} = $dset_id; + my $subscriber; + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', + { subscriber_id => $subscriber_id }, + \$subscriber, + ); + $c->stash->{subscriber} = $subscriber; + if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_subscriber_cf_destination_set', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $subscriber->{username}, + domain => $subscriber->{domain}, data => \%dset, }, undef, @@ -1338,9 +1364,16 @@ sub edit_cf_createset : Local { $dset{name} = $c->request->params->{dsetname}; + my $subscriber; + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', + { subscriber_id => $subscriber_id }, + \$subscriber, + ); + $c->stash->{subscriber} = $subscriber; + if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_subscriber_cf_destination_set', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $subscriber->{username}, + domain => $subscriber->{domain}, data => \%dset, }, undef, diff --git a/root/tt/subscriber_callforward.tt b/root/tt/subscriber_callforward.tt index 3753c8b..acb8119 100644 --- a/root/tt/subscriber_callforward.tt +++ b/root/tt/subscriber_callforward.tt @@ -176,237 +176,3 @@ [% END %] - -
-

Weekdays

- - [% IF messages.epeakmsg %]
[% messages.epeakmsg %]
[% END %] - [% IF messages.epeakerr %]
[% messages.epeakerr %]
[% END %] - - - -
-

Dates

- - [% IF messages.epeakmsg %]
[% messages.epeakmsg %]
[% END %] - [% IF messages.epeakerr %]
[% messages.epeakerr %]
[% END %] - - - [% FOREACH year = years %] - [% IF year == show_year %] - [% year %] - [% ELSE %] - [% year %] - [% END %] - [% UNLESS loop.count == years.size %] - [% END %] - [% END %] -
- - diff --git a/root/tt/subscriber_preferences.tt b/root/tt/subscriber_preferences.tt index 231be53..22ac733 100644 --- a/root/tt/subscriber_preferences.tt +++ b/root/tt/subscriber_preferences.tt @@ -202,32 +202,73 @@

Call Forwards

+ + [% IF messages.cfmsg %]
[% messages.cfmsg %]
[% END %] + [% IF messages.cferr %]
[% messages.cferr %]
[% END %] + [% IF edit_callforward && prov_error %]
[% prov_error %]
[% END %] + [% UNLESS Catalyst.session.admin.read_only %] +
[% IF edit_callforward %] Cancel + [% ELSE %] Edit Call-Forwards Edit Destination Sets Edit Time Sets [% END %] [% END %] - [% IF messages.cfmsg %]
[% messages.cfmsg %]
[% END %] - [% IF messages.cferr %]
[% messages.cferr %]
[% END %] - [% IF edit_callforward && prov_error %]
[% prov_error %]
[% END %] - + +