From 79b6db901a587d5952e57617d867f7dbc01bbebf Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Mon, 23 Jan 2012 17:30:12 +0000 Subject: [PATCH] Properly display existing time periods. Use similar blocks like when creating/editing periods. --- lib/admin/Controller/subscriber.pm | 90 ++++++++++++++++++++ root/tt/subscriber_callforward_times.tt | 105 ++++++++++++++++++++++-- 2 files changed, 187 insertions(+), 8 deletions(-) diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm index 887c1b4..685c01c 100644 --- a/lib/admin/Controller/subscriber.pm +++ b/lib/admin/Controller/subscriber.pm @@ -1606,6 +1606,12 @@ sub edit_cf_times : Local { \$tsets, ); + foreach my $tset (@{$tsets}) { + foreach my $per (@{$tset->{periods}}) { + $self->period_expand($per); + } + } + $c->stash->{tsets} = $tsets; $c->stash->{seditid} = $c->request->params->{seditid}; @@ -1880,6 +1886,90 @@ sub period_collapse : Private { return 0; } +sub period_expand : Private { + my ($self, $period) = @_; + + if(defined $period->{year} && $period->{year} =~ /^\d+$/) { + # nothing to be done + } + elsif(defined $period->{year} && $period->{year} =~ /^(\d+)\-(\d+)$/) { + $period->{from_year} = $1; + $period->{to_year} = $2; + delete $period->{year}; + } + else { + # skip if incomplete + delete $period->{year}; + } + + if(defined $period->{month} && $period->{month} =~ /^\d+$/) { + # nothing to be done + } + elsif(defined $period->{month} && $period->{month} =~ /^(\d+)\-(\d+)$/) { + $period->{from_month} = $1; + $period->{to_month} = $2; + delete $period->{month}; + } + else { + # skip if incomplete + delete $period->{month}; + } + + if(defined $period->{mday} && $period->{mday} =~ /^\d+$/) { + # nothing to be done + } + elsif(defined $period->{mday} && $period->{mday} =~ /^(\d+)\-(\d+)$/) { + $period->{from_mday} = $1; + $period->{to_mday} = $2; + delete $period->{mday}; + } + else { + # skip if incomplete + delete $period->{mday}; + } + + if(defined $period->{wday} && $period->{wday} =~ /^\d+$/) { + # nothing to be done + } + elsif(defined $period->{wday} && $period->{wday} =~ /^(\d+)\-(\d+)$/) { + $period->{from_wday} = $1; + $period->{to_wday} = $2; + delete $period->{wday}; + } + else { + # skip if incomplete + delete $period->{wday}; + } + + if(defined $period->{hour} && $period->{hour} =~ /^\d+$/) { + # nothing to be done + } + elsif(defined $period->{hour} && $period->{hour} =~ /^(\d+)\-(\d+)$/) { + $period->{from_hour} = $1; + $period->{to_hour} = $2; + delete $period->{hour}; + } + else { + # skip if incomplete + delete $period->{hour}; + } + + if(defined $period->{minute} && $period->{minute} =~ /^\d+$/) { + # nothing to be done + } + elsif(defined $period->{minute} && $period->{minute} =~ /^(\d+)\-(\d+)$/) { + $period->{from_minute} = $1; + $period->{to_minute} = $2; + delete $period->{minute}; + } + else { + # skip if incomplete + delete $period->{minute}; + } + + return 0; +} + sub edit_cf_time_delperiod : Local { my ( $self, $c ) = @_; $c->stash->{template} = 'tt/subscriber_callforward_times.tt'; diff --git a/root/tt/subscriber_callforward_times.tt b/root/tt/subscriber_callforward_times.tt index 38bcfd1..084430e 100644 --- a/root/tt/subscriber_callforward_times.tt +++ b/root/tt/subscriber_callforward_times.tt @@ -50,6 +50,10 @@ height: 94px; padding: 2px; } + .content li.ui-state-default.medium { + height: 82px; + padding: 2px; + } @@ -421,18 +425,103 @@