MT#20655 fix subscribercreate form

values is the correct datastructure to be used to update the db
when using HTML::Formhandler. the reason is, it does de-/inflation
such as trim, which removes whitespaces at the beginning and end.

Change-Id: I5570e64b69fd9e8ed1bbbbc9cd880a381ac3cf68
changes/96/6896/3
Gerhard Jungwirth 9 years ago
parent 80647645cb
commit 24cacabd53

@ -777,34 +777,34 @@ sub subscriber_create :Chained('base') :PathPart('subscriber/create') :Args(0) {
my $pbx_group_ids = []; my $pbx_group_ids = [];
if($pbx && !$pbxadmin) { if($pbx && !$pbxadmin) {
my $pilot = $c->stash->{pilot}; my $pilot = $c->stash->{pilot};
$form->params->{domain}{id} ||= $pilot->domain_id; $form->values->{domain}{id} ||= $pilot->domain_id;
if ($form->params->{group_select}) { if ($form->values->{group_select}) {
$pbx_group_ids = decode_json($form->params->{group_select}); $pbx_group_ids = decode_json($form->values->{group_select});
} }
my $base_number = $pilot->primary_number; my $base_number = $pilot->primary_number;
if($base_number) { if($base_number) {
$preferences->{cloud_pbx_base_cli} = $base_number->cc . $base_number->ac . $base_number->sn; $preferences->{cloud_pbx_base_cli} = $base_number->cc . $base_number->ac . $base_number->sn;
if(defined $form->params->{pbx_extension}) { if(defined $form->values->{pbx_extension}) {
$form->params->{e164}{cc} = $base_number->cc; $form->values->{e164}{cc} = $base_number->cc;
$form->params->{e164}{ac} = $base_number->ac; $form->values->{e164}{ac} = $base_number->ac;
$form->params->{e164}{sn} = $base_number->sn . $form->params->{pbx_extension}; $form->values->{e164}{sn} = $base_number->sn . $form->values->{pbx_extension};
} }
} }
} }
if($pbx) { if($pbx) {
$form->params->{is_pbx_pilot} = 1 if $pbxadmin; $form->values->{is_pbx_pilot} = 1 if $pbxadmin;
$preferences->{cloud_pbx} = 1; $preferences->{cloud_pbx} = 1;
$preferences->{cloud_pbx_ext} = $form->params->{pbx_extension}; $preferences->{cloud_pbx_ext} = $form->values->{pbx_extension};
if($pbxadmin && $form->params->{e164}{cc} && $form->params->{e164}{sn}) { if($pbxadmin && $form->values->{e164}{cc} && $form->values->{e164}{sn}) {
$preferences->{cloud_pbx_base_cli} = $form->params->{e164}{cc} . $preferences->{cloud_pbx_base_cli} = $form->values->{e164}{cc} .
($form->params->{e164}{ac} // '') . ($form->values->{e164}{ac} // '') .
$form->params->{e164}{sn}; $form->values->{e164}{sn};
} }
if($c->stash->{pilot}) { if($c->stash->{pilot}) {
my $profile_set = $c->stash->{pilot}->provisioning_voip_subscriber->voip_subscriber_profile_set; my $profile_set = $c->stash->{pilot}->provisioning_voip_subscriber->voip_subscriber_profile_set;
if($profile_set) { if($profile_set) {
$form->params->{profile_set}{id} = $profile_set->id; $form->values->{profile_set}{id} = $profile_set->id;
} }
} }
@ -812,14 +812,14 @@ sub subscriber_create :Chained('base') :PathPart('subscriber/create') :Args(0) {
# TODO: only if it's not a fax/conf extension: # TODO: only if it's not a fax/conf extension:
$preferences->{shared_buddylist_visibility} = 1; $preferences->{shared_buddylist_visibility} = 1;
$preferences->{display_name} = $form->params->{display_name} $preferences->{display_name} = $form->values->{display_name}
if($form->params->{display_name}); if($form->values->{display_name});
} }
if($c->stash->{contract}->external_id) { if($c->stash->{contract}->external_id) {
$preferences->{ext_contract_id} = $c->stash->{contract}->external_id; $preferences->{ext_contract_id} = $c->stash->{contract}->external_id;
} }
if(defined $form->params->{external_id}) { if(defined $form->values->{external_id}) {
$preferences->{ext_subscriber_id} = $form->params->{external_id}; $preferences->{ext_subscriber_id} = $form->values->{external_id};
} }
if($c->stash->{billing_mapping}->billing_profile->prepaid) { if($c->stash->{billing_mapping}->billing_profile->prepaid) {
$preferences->{prepaid} = 1; $preferences->{prepaid} = 1;
@ -828,7 +828,7 @@ sub subscriber_create :Chained('base') :PathPart('subscriber/create') :Args(0) {
c => $c, c => $c,
schema => $schema, schema => $schema,
contract => $c->stash->{contract}, contract => $c->stash->{contract},
params => $form->params, params => $form->values,
admin_default => 0, admin_default => 0,
preferences => $preferences, preferences => $preferences,
); );

@ -96,7 +96,6 @@ has_field 'username' => (
type => 'Text', type => 'Text',
label => 'SIP Username', label => 'SIP Username',
required => 1, required => 1,
noupdate => 1,
element_attr => { element_attr => {
rel => ['tooltip'], rel => ['tooltip'],
title => ['The SIP username for the User-Agents'] title => ['The SIP username for the User-Agents']

@ -5,9 +5,6 @@ extends 'HTML::FormHandler';
use HTML::FormHandler::Widget::Block::Bootstrap; use HTML::FormHandler::Widget::Block::Bootstrap;
use NGCP::Panel::Field::Domain;
use NGCP::Panel::Field::PosInteger;
use NGCP::Panel::Field::Identifier;
use NGCP::Panel::Utils::Form; use NGCP::Panel::Utils::Form;
has '+widget_wrapper' => ( default => 'Bootstrap' ); has '+widget_wrapper' => ( default => 'Bootstrap' );
@ -58,7 +55,6 @@ has_field 'username' => (
type => '+NGCP::Panel::Field::Identifier', type => '+NGCP::Panel::Field::Identifier',
label => 'SIP Username', label => 'SIP Username',
required => 1, required => 1,
noupdate => 1,
element_attr => { element_attr => {
rel => ['tooltip'], rel => ['tooltip'],
title => ['The SIP username for the User-Agents'] title => ['The SIP username for the User-Agents']

@ -5,10 +5,6 @@ extends 'HTML::FormHandler';
use HTML::FormHandler::Widget::Block::Bootstrap; use HTML::FormHandler::Widget::Block::Bootstrap;
use NGCP::Panel::Field::Domain;
use NGCP::Panel::Field::CustomerContract;
use NGCP::Panel::Field::PosInteger;
use NGCP::Panel::Field::Identifier;
use NGCP::Panel::Utils::Form; use NGCP::Panel::Utils::Form;
has '+widget_wrapper' => ( default => 'Bootstrap' ); has '+widget_wrapper' => ( default => 'Bootstrap' );
@ -73,7 +69,6 @@ has_field 'username' => (
type => '+NGCP::Panel::Field::Identifier', type => '+NGCP::Panel::Field::Identifier',
label => 'SIP Username', label => 'SIP Username',
required => 1, required => 1,
noupdate => 1,
element_attr => { element_attr => {
rel => ['tooltip'], rel => ['tooltip'],
title => ['The username for SIP and XMPP services.'] title => ['The username for SIP and XMPP services.']

Loading…
Cancel
Save