implemented alias number handling for subscribers


			
			
				3.2
			
			
		
Daniel Tiefnig 15 years ago
parent 4090f9b858
commit e09641fe6d

@ -144,6 +144,7 @@ sub detail : Local {
);
$c->session->{subscriber}{registered_contacts} = $regcon if eval { @$regcon };
eval { $c->session->{subscriber}{aliases} = [ sort @{$c->session->{subscriber}{aliases}} ] };
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber}{subscriber_id} = $subscriber_id;
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c->view($c->config->{view})->
@ -318,6 +319,128 @@ sub update_subscriber : Local {
return;
}
sub edit_aliases : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/subscriber_edit_aliases.tt';
my %messages;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
);
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_subscriber',
{ id => $c->session->{subscriber}{account_id},
username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
},
\$c->session->{subscriber}
);
eval {
$c->session->{subscriber}{alias_numbers} =
[ sort { $$a{cc}.$$a{ac}.$$a{sn} cmp $$b{cc}.$$b{ac}.$$b{sn} }
@{$c->session->{subscriber}{alias_numbers}} ];
};
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber_id} = $subscriber_id;
if(defined $c->session->{aliasadd}) {
$c->stash->{aliasadd} = $c->session->{aliasadd};
delete $c->session->{aliasadd};
}
return 1;
}
sub do_edit_aliases : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
);
my $acid = $c->session->{subscriber}{account_id};
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_subscriber',
{ id => $acid,
username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
},
\$c->session->{subscriber}
);
# delete button next to entries in alias list
if( defined $c->request->params->{alias_del_cc}
and defined $c->request->params->{alias_del_ac}
and defined $c->request->params->{alias_del_sn} )
{
my $cc = $c->request->params->{alias_del_cc};
my $ac = $c->request->params->{alias_del_ac};
my $sn = $c->request->params->{alias_del_sn};
my $aliaslist = $c->session->{subscriber}{alias_numbers};
if(defined $aliaslist) {
$c->session->{subscriber}{alias_numbers} = [ grep { $$_{cc} ne $cc or $$_{ac} ne $ac or $$_{sn} ne $sn } @$aliaslist ];
}
}
# input text fields to add new entry to list
if( defined $c->request->params->{alias_add_cc}
and defined $c->request->params->{alias_add_ac}
and defined $c->request->params->{alias_add_sn} )
{
my $cc = $c->request->params->{alias_add_cc};
my $ac = $c->request->params->{alias_add_ac};
my $sn = $c->request->params->{alias_add_sn};
my $checkresult;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_cc',
$cc, \$checkresult
);
$messages{number_cc} = 'Client.Voip.MalformedCc'
unless $checkresult;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_ac',
$ac, \$checkresult
);
$messages{number_ac} = 'Client.Voip.MalformedAc'
unless $checkresult;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_sn',
$sn, \$checkresult
);
$messages{number_sn} = 'Client.Voip.MalformedSn'
unless $checkresult;
unless(keys %messages) {
my $aliaslist = $c->session->{subscriber}{alias_numbers};
$aliaslist = [] unless defined $aliaslist;
$c->session->{subscriber}{alias_numbers} = [ @$aliaslist, { cc => $cc, ac => $ac, sn => $sn } ];
} else {
$c->session->{aliasadd} = { cc => $cc, ac => $ac, sn => $sn };
}
}
unless(keys %messages) {
$c->model('Provisioning')->call_prov( $c, 'billing', 'update_voip_account_subscriber',
{ id => $acid,
subscriber => { username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
alias_numbers => $c->session->{subscriber}{alias_numbers},
},
},
undef
);
} else {
$messages{aliaserr} = 'Client.Voip.InputErrorFound';
}
$c->session->{messages} = \%messages;
$c->response->redirect("/subscriber/edit_aliases?subscriber_id=$subscriber_id");
}
=head2 lock
Locks a subscriber.

@ -134,6 +134,26 @@
[% IF messages.number_ac %]<div class="error">[% messages.number_ac %]</div>[% END %]
[% IF messages.number_sn %]<div class="error">[% messages.number_sn %]</div>[% END %]
<li class="ui-state-default">
<div class="span-6">Alias Numbers:</div>
<div class="span-9">
[% IF subscriber.aliases %]
<select size="1">
[% FOREACH alias_number = subscriber.aliases %]
<option>+[% alias_number %]</option>
[% END %]
</select>
[% ELSE %]
<select size="1"></select>
[% END %]
</div>
<div class="span-1 last">
[% IF ! edit_subscriber && ! Catalyst.session.admin.read_only %]
<a href="edit_aliases?subscriber_id=[% subscriber.subscriber_id %]"><span class="button-edit">Edit List</span></a>
[% END %]
</div>
</li>
[% IF subscriber.subscriber_id %]
<li class="ui-state-default"><div class="span-6">SIP URI:</div><div class="span-10 last">[% subscriber.username %]@[% subscriber.domain %]</div></li>
[% ELSE %]

@ -0,0 +1,60 @@
<h3>Edit alias numbers for
<a class="noarrow" href="detail?subscriber_id=[% subscriber_id %]">
[% subscriber.username %]@[% subscriber.domain %]</a>
</h3>
<a href="detail?subscriber_id=[% subscriber_id %]"><span class="button-back">Back</span></a>
<div class="hspace-20"></div><br clear="all" />
[% IF messages.aliaserr %]<div class="error">[% messages.aliaserr %]</div>[% END %]
<div class="list_explanation">
The numbers in this list will be treated as alternative numbers of the subscriber for incoming calls.
</div>
<div class="hspace-20"></div>
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-3"> Country Code </div>
<div class="span-3"> Area Code </div>
<div class="span-10"> Subscriber Number </div>
</li>
[% id = 0 %]
[% FOREACH aliasentry = subscriber.alias_numbers %]
<li class="ui-state-default">
<div class="span-3"> [% aliasentry.cc %] </div>
<div class="span-3"> [% aliasentry.ac %] </div>
<div class="span-9"> [% aliasentry.sn %] </div>
<form action="do_edit_aliases" method="post">
<div class="span-1 last">
<input type="hidden" name="subscriber_id" value="[% subscriber_id %]" />
<input type="hidden" name="alias_del_cc" value="[% aliasentry.cc %]" />
<input type="hidden" name="alias_del_ac" value="[% aliasentry.ac %]" />
<input type="hidden" name="alias_del_sn" value="[% aliasentry.sn %]" />
<button class="button-delete" id="aliasdel[% id %]">Delete</button>
</div>
</form>
</li>
[% id = id + 1 %]
[% END %]
</ul><br clear="all" />
<ul class="cleanlist">
<li class="ui-state-default">
<form action="do_edit_aliases" method="post">
<div class="span-3"> <input type="text" size="5" name="alias_add_cc" id="aliasaddcc" value="[% aliasadd.cc %]" /> </div>
<div class="span-3"> <input type="text" size="5" name="alias_add_ac" id="aliasaddac" value="[% aliasadd.ac %]" /> </div>
<div class="span-9"> <input type="text" size="20" name="alias_add_sn" id="aliasaddsn" value="[% aliasadd.sn %]" /> </div>
<div class="span-1 last">
<input type="hidden" name="subscriber_id" value="[% subscriber_id %]" />
<button class="button-add" id="aliasadd">Add</button>
</div>
</form>
</li>
[% IF messages.number_cc OR messages.number_ac OR messages.number_sn %]
<div class="error">
[% messages.number_cc IF messages.number_cc %]
[% messages.number_ac IF messages.number_ac %]
[% messages.number_sn IF messages.number_sn %]
</div>
[% END %]
</ul>
Loading…
Cancel
Save