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).
3.3
Andreas Granig 15 years ago
parent f80c24f32c
commit 8f4c9cd4b8

@ -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,

@ -176,237 +176,3 @@
[% END %]
</ul>
<div class="hspace-20"></div>
<h3 id="weekdays">Weekdays</h3>
[% IF messages.epeakmsg %]<div class="success">[% messages.epeakmsg %]</div>[% END %]
[% IF messages.epeakerr %]<div class="error">[% messages.epeakerr %]</div>[% END %]
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-4">Weekday</div>
<div class="span-5">Start - End</div>
<div class="span-5 last">Destination Set</div>
</li>
[% wd = 0 %]
[% FOREACH weekday = cftimes.weekdays %]
[% IF wd == edit_weekday %]
[% IF weekday.ranges %]
[% id = 0 %]
[% FOREACH range = weekday.ranges %]
<li class="ui-state-default">
<div class="span-4">[% IF id == 0 %][% weekday.name %][% END %]</div>
<form action="/billing/do_edit_peaktime" method="post" class="peakedit">
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<input type="hidden" name="weekday" value="[% wd %]" />
<input type="hidden" name="startold" value="[% range.start %]" />
<input type="hidden" name="endold" value="[% range.end %]" />
<div class="span-8">
<input type="text" size="14" name="start" title="hh:mm:ss"
value="[% range.restore_start || range.start %]" /> -
<input type="text" size="14" name="end" title="hh:mm:ss"
value="[% range.restore_end || range.end %]" />
</div>
<div class="span-1">
<button class="button-save" id="peaksave[% id %]">Save</button>
</div>
</form>
<form action="/billing/do_edit_peaktime" method="post">
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<input type="hidden" name="weekday" value="[% wd %]" />
<input type="hidden" name="startold" value="[% range.start %]" />
<input type="hidden" name="endold" value="[% range.end %]" />
<div class="span-1 last">
<button class="button-delete" id="peakdel[% id %]">Delete</button>
</div>
</form>
</li>
[% id = id + 1 %]
[% END %]
[% END %]
<li class="ui-state-default">
<div class="span-4">[% IF !weekday.ranges %][% weekday.name %][% END %]</div>
<form action="/billing/do_edit_peaktime" method="post">
<input type="hidden" name="weekday" value="[% wd %]" />
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<div class="span-8">
<input type="text" size="14" name="start" title="hh:mm:ss"
value="[% newrange.start %]" /> -
<input type="text" size="14" name="end" title="hh:mm:ss"
value="[% newrange.end %]" />
</div>
<div class="span-1">
<button class="button-add" id="peaksavenew">Add</button>
</div>
</form>
<div class="span-1 last">
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]"><span class="button-cancel">Cancel</span></a>
</div>
</li>
[% ELSE %]
[% IF weekday.ranges %]
[% j = 0 %]
[% FOREACH range = weekday.ranges %]
<li class="ui-state-default">
<div class="span-4">[% IF j == 0 %][% weekday.name %][% END %]</div>
<div class="span-8">[% range.start %] - [% range.end %]</div>
[% UNLESS Catalyst.session.admin.read_only %]
<div class="span-1 last">
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]&amp;edit_weekday=[% wd %]"><span class="button-edit">Edit</span></a>
</div>
[% END %]
</li>
[% j = j + 1 %]
[% END %]
[% ELSE %]
<li class="ui-state-default">
<div class="span-4">[% weekday.name %]</div>
<div class="span-8">No ranges defined.</div>
[% UNLESS Catalyst.session.admin.read_only %]
<div class="span-1 last">
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]&amp;edit_weekday=[% wd %]"><span class="button-edit">Edit</span></a>
</div>
[% END %]
</li>
[% END %]
[% END %]
[% wd = wd + 1 %]
[% END %]
</ul>
<div class="hspace-20"></div>
<h3 id="special">Dates</h3>
[% IF messages.epeakmsg %]<div class="success">[% messages.epeakmsg %]</div>[% END %]
[% IF messages.epeakerr %]<div class="error">[% messages.epeakerr %]</div>[% END %]
[% FOREACH year = years %]
[% IF year == show_year %]
[% year %]
[% ELSE %]
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]&amp;show_year=[% year %]#special">[% year %]</a>
[% END %]
[% UNLESS loop.count == years.size %]&nbsp;-&nbsp;[% END %]
[% END %]
<div class="hspace-20"></div>
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-4">Date</div>
<div class="span-8 last">Start - End</div>
</li>
[% dt = 0 %]
[% FOREACH date = dates %]
[% IF date.date == edit_date %]
[% IF date.ranges %]
[% id = 0 %]
[% FOREACH range = date.ranges %]
<li class="ui-state-default">
<div class="span-4">[% IF id == 0 %][% date.date %][% END %]</div>
<form action="/billing/do_edit_peaktime" method="post" class="peakedit">
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<input type="hidden" name="show_year" value="[% show_year %]" />
<input type="hidden" name="date" value="[% date.date %]" />
<input type="hidden" name="startold" value="[% range.start %]" />
<input type="hidden" name="endold" value="[% range.end %]" />
<div class="span-8">
<input type="text" size="14" name="start" title="hh:mm:ss"
value="[% range.restore_start || range.start %]" /> -
<input type="text" size="14" name="end" title="hh:mm:ss"
value="[% range.restore_end || range.end %]" />
</div>
<div class="span-1">
<button class="button-save" id="peaksave[% id %]">Save</button>
</div>
</form>
<form action="/billing/do_edit_peaktime" method="post">
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<input type="hidden" name="show_year" value="[% show_year %]" />
<input type="hidden" name="date" value="[% date.date %]" />
<input type="hidden" name="startold" value="[% range.start %]" />
<input type="hidden" name="endold" value="[% range.end %]" />
<div class="span-1 last">
<button class="button-delete" id="peakdel[% id %]">Delete</button>
</div>
</form>
</li>
[% id = id + 1 %]
[% END %]
[% END %]
<li class="ui-state-default">
<div class="span-4">[% IF !date.ranges %][% date.date %][% END %]</div>
<form action="/billing/do_edit_peaktime" method="post">
<input type="hidden" name="show_year" value="[% show_year %]" />
<input type="hidden" name="date" value="[% date.date %]" />
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<div class="span-8">
<input type="text" size="14" name="start" title="hh:mm:ss"
value="[% newrange.start %]" /> -
<input type="text" size="14" name="end" title="hh:mm:ss"
value="[% newrange.end %]" />
</div>
<div class="span-1">
<button class="button-add" id="peaksavenew">Add</button>
</div>
</form>
<div class="span-1 last">
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]&amp;show_year=[% show_year %]#special"><span class="button-cancel">Cancel</span></a>
</div>
</li>
[% ELSE %]
[% IF date.ranges %]
[% j = 0 %]
[% FOREACH range = date.ranges %]
<li class="ui-state-default">
<div class="span-4">[% IF j == 0 %][% date.date %][% END %]</div>
<div class="span-8">[% range.start %] - [% range.end %]</div>
<div class="span-1 last">
[% UNLESS Catalyst.session.admin.read_only %]
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]&amp;show_year=[% show_year %]&amp;edit_date=[% date.date %]#special"><span class="button-edit">Edit</span></a>
[% END %]
</div>
</li>
[% j = j + 1 %]
[% END %]
[% ELSE %]
<li class="ui-state-default">
<div class="span-4">[% date.date %]</div>
<div class="span-8">No ranges defined.</div>
<div class="span-1 last">
[% UNLESS Catalyst.session.admin.read_only %]
<a href="/billing/show_peaktimes?bilprof=[% bilprof.handle %]&amp;show_year=[% show_year %]&amp;edit_date=[% date.date %]#special"><span class="button-edit">Edit</span></a>
[% END %]
</div>
</li>
[% END %]
[% END %]
[% dt = dt + 1 %]
[% END %]
[% UNLESS Catalyst.session.admin.read_only %]
<form action="/billing/do_edit_peaktime" method="post">
<input type="hidden" name="show_year" value="[% show_year %]" />
<input type="hidden" name="bilprof" value="[% bilprof.handle %]" />
<input type="hidden" name="edit_date" value="new" />
<li class="ui-state-default">
<div class="span-4">
<input type="text" size="10" name="date" title="YYYY-MM-DD"
value="[% newrange.date %]" />
</div>
<div class="span-8">
<input type="text" size="14" name="start" title="hh:mm:ss"
value="[% newrange.start %]" /> -
<input type="text" size="14" name="end" title="hh:mm:ss"
value="[% newrange.end %]" />
</div>
<div class="span-1 last">
<button class="button-add" id="peaksavenew">Add</button>
</div>
</li>
</form>
[% END %]
</ul>

@ -202,32 +202,73 @@
<div class="hspace-20"></div>
<h3 id="callforward">Call Forwards</h3>
[% IF messages.cfmsg %]<div class="success">[% messages.cfmsg %]</div>[% END %]
[% IF messages.cferr %]<div class="error">[% messages.cferr %]</div>[% END %]
[% IF edit_callforward && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
[% UNLESS Catalyst.session.admin.read_only %]
<form action="update_callforward" method="post">
[% IF edit_callforward %]
<a href="preferences?subscriber_id=[% subscriber.subscriber_id %]#callforward"><span class="button-cancel">Cancel</span></a>
<button name="submit" class="button-save">Save</button>
[% ELSE %]
<a href="preferences?subscriber_id=[% subscriber.subscriber_id %]&edit_callforward=1#callforward"><span class="button-edit">Edit Call-Forwards</span></a>
<a href="edit_cf?subscriber_id=[% subscriber.subscriber_id %]"><span class="button-transfer">Edit Destination Sets</span></a>
<a href="edit_cf_times?subscriber_id=[% subscriber.subscriber_id %]"><span class="button-clock">Edit Time Sets</span></a>
[% END %]
[% END %]
[% IF messages.cfmsg %]<div class="success">[% messages.cfmsg %]</div>[% END %]
[% IF messages.cferr %]<div class="error">[% messages.cferr %]</div>[% END %]
[% IF edit_callforward && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
<form action="update_callforward" method="post">
<div class="hspace-20"></div>
<ul class="cleanlist">
[%
cf_types = [
{
name = 'cfu',
description = 'Call Forward Unconditional',
},
{
name = 'cfb',
description = 'Call Forward Busy',
},
{
name = 'cft',
description = 'Call Forward Timeout',
},
{
name = 'cfna',
description = 'Call Forward Unavailable',
},
]
%]
[% FOREACH cf_type IN cf_types %]
<li class="ui-state-default">
<div class="span-6">Call Forward Unconditional:</div>
</li>
<li class="ui-state-default">
<div class="span-6">Call Forward Busy:</div>
</li>
<li class="ui-state-default">
<div class="span-6">Call Forward Timeout:</div>
</li>
<li class="ui-state-default">
<div class="span-6">Call Forward Unavailable:</div>
<div class="span-5">[% cf_type.description %]:</div>
[% IF edit_callforward %]
<div class="span-4">
<label for="cfdest_[% cf_type.name %]">to</label>
<select id="cfdest_[% cf_type.name %]" name="dest_[% cf_type.name %]" size="1" style="width: 120px;">
[% FOREACH dset IN cf_dsets %]
[% IF dset.destinations.size > 0 %]
<option value="[% dset.id %]">[% dset.name %]</option>
[% END %]
[% END %]
</select>
</div>
<div class="span-6 last">
<label for="cftime_[% cf_type.name %]">during period</label>
<select id="cftime_[% cf_type.name %]" name="time_[% cf_type.name %]" size="1" style="width: 120px;">
<option value="0">&lt;always&gt;</option>
[% FOREACH tset IN cf_tsets %]
<option value="[% tset.id %]">[% tset.name %]</option>
[% END %]
</select>
</div>
[% END %]
</li>
[% END %]
</ul>
</form>

Loading…
Cancel
Save