MT#6693 Fix PBX group editing.

agranig/subprof
Andreas Granig 12 years ago
parent 9aead3f255
commit 560bf47ab1

@ -10,7 +10,7 @@ use NGCP::Panel::Form::Customer::Subscriber;
use NGCP::Panel::Form::Customer::PbxAdminSubscriber;
use NGCP::Panel::Form::Customer::PbxExtensionSubscriber;
use NGCP::Panel::Form::Customer::PbxExtensionSubscriberSubadmin;
use NGCP::Panel::Form::Customer::PbxGroupBase;
use NGCP::Panel::Form::Customer::PbxGroupEdit;
use NGCP::Panel::Form::Customer::PbxGroup;
use NGCP::Panel::Form::Customer::PbxFieldDevice;
use NGCP::Panel::Form::Customer::PbxFieldDeviceEdit;
@ -1000,8 +1000,8 @@ sub pbx_group_edit :Chained('pbx_group_base') :PathPart('edit') :Args(0) {
my $posted = ($c->request->method eq 'POST');
my $form;
$form = NGCP::Panel::Form::Customer::PbxGroupBase->new;
my $params = { $c->stash->{pbx_group}->get_inflated_columns };
$form = NGCP::Panel::Form::Customer::PbxGroupEdit->new;
my $params = { $c->stash->{pbx_group}->provisioning_voip_subscriber->get_inflated_columns };
$params = $params->merge($c->session->{created_objects});
$form->process(
posted => $posted,
@ -1018,16 +1018,16 @@ sub pbx_group_edit :Chained('pbx_group_base') :PathPart('edit') :Args(0) {
try {
my $schema = $c->model('DB');
$schema->txn_do(sub {
$c->stash->{pbx_group}->update($form->params);
$c->stash->{pbx_group}->provisioning_voip_subscriber->update($form->params);
my $hunt_policy = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c,
prov_subscriber => $c->stash->{pbx_group}->provisioning_voip_subscriber,
attribute => 'cloud_pbx_hunt_policy'
);
if($hunt_policy->first) {
$hunt_policy->first->update({ value => $form->params->{hunt_policy} });
$hunt_policy->first->update({ value => $form->params->{pbx_hunt_policy} });
} else {
$hunt_policy->create({ value => $form->params->{hunt_policy} });
$hunt_policy->create({ value => $form->params->{pbx_hunt_policy} });
}
my $hunt_timeout = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c,
@ -1035,9 +1035,9 @@ sub pbx_group_edit :Chained('pbx_group_base') :PathPart('edit') :Args(0) {
attribute => 'cloud_pbx_hunt_timeout'
);
if($hunt_timeout->first) {
$hunt_timeout->first->update({ value => $form->params->{hunt_policy_timeout} });
$hunt_timeout->first->update({ value => $form->params->{pbx_hunt_timeout} });
} else {
$hunt_timeout->create({ value => $form->params->{hunt_policy_timeout} });
$hunt_timeout->create({ value => $form->params->{pbx_hunt_timeout} });
}
});

@ -0,0 +1,27 @@
package NGCP::Panel::Form::Customer::PbxGroupEdit;
use HTML::FormHandler::Moose;
extends 'NGCP::Panel::Form::Customer::PbxGroupBase';
has_field 'pbx_extension' => (
type => 'Text',
required => 1,
label => 'Extension',
);
has_block 'fields' => (
tag => 'div',
class => [qw/modal-body/],
render_list => [qw/pbx_extension pbx_hunt_policy pbx_hunt_timeout/],
);
sub validate_username {
my ($self, $field) = @_;
unless($field->value =~ /^[a-zA-Z0-9_\-]+$/) {
$field->add_error("Invalid group name, must only contain letters, digits, - and _");
}
}
1;
# vim: set tabstop=4 expandtab:

@ -41,7 +41,14 @@
<div class="accordion-inner">
[% UNLESS (c.user.roles == "admin" || c.user.roles == "reseller") && c.user.read_only -%]
<a class="btn btn-primary btn-large" href="[% c.uri_for_action('/subscriber/edit_master', [ subscriber.id ]) %]"><i class="icon-edit"></i> [% c.loc('Edit') %]</a>
[%
IF subscriber.provisioning_voip_subscriber.is_pbx_group;
href = c.uri_for_action('/customer/pbx_group_edit', [ contract.id, subscriber.id ]);
ELSE;
href = c.uri_for_action('/subscriber/edit_master', [ subscriber.id ]);
END;
-%]
<a class="btn btn-primary btn-large" href="[% href %]"><i class="icon-edit"></i> [% c.loc('Edit') %]</a>
[% END -%]
<div class="ngcp-separator"></div>
@ -115,6 +122,20 @@
[% subscriber.provisioning_voip_subscriber.voip_subscriber_profile.name %]
</td>
</tr>
[% IF subscriber.provisioning_voip_subscriber.is_pbx_group -%]
<tr>
<td>[% c.loc('Hunt Policy') %]</td>
<td>
[% subscriber.provisioning_voip_subscriber.pbx_hunt_policy %]
</td>
</tr>
<tr>
<td>[% c.loc('Serial Hunt Timeout') %]</td>
<td>
[% subscriber.provisioning_voip_subscriber.pbx_hunt_timeout %]
</td>
</tr>
[% END -%]
</tbody>
</table>
</div>

Loading…
Cancel
Save