From 1ce43fa8432306e61a0cd3a820fe89fc8e85afde Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Thu, 24 Sep 2009 04:14:42 +0000 Subject: [PATCH] +speed dial vsc default can be specified in admin.conf +fix with empty speed dial slot lists (including html table) -unresolved: forward oss call errors correctly --- lib/admin/Controller/subscriber.pm | 35 ++++++++++-------------------- lib/admin/Utils.pm | 22 +++++++++++++++++++ root/tt/speed_dial_list.tt | 4 +++- 3 files changed, 36 insertions(+), 25 deletions(-) diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm index 321790f..ba54835 100644 --- a/lib/admin/Controller/subscriber.pm +++ b/lib/admin/Controller/subscriber.pm @@ -289,15 +289,17 @@ sub detail : Local { } my $i = 1; - my $default_speed_dial_slots = $self->_get_default_slot_list(); + my $default_speed_dial_slots = admin::Utils::get_default_slot_list($c); my @used_default_speed_dial_slots = (); - foreach my $sdentry (sort {$a->{id} <=> $b->{id}} eval{@{$$speed_dial_slots{result}}}) { - push @{$c->stash->{speed_dial_slots}}, { id => $$sdentry{id}, - number => $i++, - label => 'Slot ' . $$sdentry{slot} . ': ' . $$sdentry{destination} - }; - if (grep { $_ eq $$sdentry{slot} } @$default_speed_dial_slots) { - push @used_default_speed_dial_slots,$$sdentry{slot}; + if (ref $$speed_dial_slots{result} eq 'ARRAY') { + foreach my $sdentry (sort {$a->{id} <=> $b->{id}} @{$$speed_dial_slots{result}}) { + push @{$c->stash->{speed_dial_slots}}, { id => $$sdentry{id}, + number => $i++, + label => 'Slot ' . $$sdentry{slot} . ': ' . $$sdentry{destination} + }; + if (grep { $_ eq $$sdentry{slot} } @$default_speed_dial_slots) { + push @used_default_speed_dial_slots,$$sdentry{slot}; + } } } foreach my $free_slot (@$default_speed_dial_slots) { @@ -1037,7 +1039,7 @@ sub edit_speed_dial_slots : Local { my $i = 1; my $bg = ''; - my $default_speed_dial_slots = $self->_get_default_slot_list(); + my $default_speed_dial_slots = admin::Utils::get_default_slot_list($c); my @used_default_speed_dial_slots = (); foreach my $sdentry (sort {$a->{id} <=> $b->{id}} @{$$speed_dial_slots{result}}) { push @{$c->stash->{speed_dial_slots}}, { id => $$sdentry{id}, @@ -1187,21 +1189,6 @@ sub expire : Local { $c->response->redirect("/subscriber/detail?subscriber_id=$subscriber_id"); } -#-# sub _get_default_slot_list -#-# parameter none -#-# return \@slots -#-# description generates list of default speed dial slots -sub _get_default_slot_list { - my $self = shift; - - my @slots = (); - for (my $i = 0; $i < 10; $i++) { - push @slots,'#' . $i; - } - return \@slots; - -} - =head1 BUGS AND LIMITATIONS =over diff --git a/lib/admin/Utils.pm b/lib/admin/Utils.pm index 947dcdf..08e86ae 100644 --- a/lib/admin/Utils.pm +++ b/lib/admin/Utils.pm @@ -40,4 +40,26 @@ sub paginate { return \@pagination; } +#-# sub get_default_slot_list +#-# parameter $c +#-# return \@slots +#-# description gets default speed dial slot set from admin.conf +sub get_default_slot_list { + my ($c) = @_; + + if (defined $c->config->{speed_dial_vsc_presets} and ref $c->config->{speed_dial_vsc_presets}->{vsc} eq 'ARRAY') { + return $c->config->{speed_dial_vsc_presets}->{vsc}; + } else { + return []; + } + + #my @slots = (); + + #for (my $i = 0; $i < 10; $i++) { + # push @slots,'#' . $i; + #} + #return \@slots; + +} + 1; diff --git a/root/tt/speed_dial_list.tt b/root/tt/speed_dial_list.tt index 2ffac23..a9616e2 100755 --- a/root/tt/speed_dial_list.tt +++ b/root/tt/speed_dial_list.tt @@ -16,6 +16,7 @@ No speed dial vertical service codes (slots) defined yet.
[% END %] + [% IF speed_dial_slots %] @@ -51,6 +52,7 @@ [% END %]
VSC
+ [% END %]
@@ -75,7 +77,7 @@
[% ELSE %] - All speed dial vertical service codes in use. Please delete or modify the exisitng ones. + All allowed speed dial vertical service codes in use. Please delete or modify the exisitng ones. [% END %] \ No newline at end of file