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 %]
| VSC | @@ -51,6 +52,7 @@