diff --git a/lib/NGCP/Panel/Controller/Domain.pm b/lib/NGCP/Panel/Controller/Domain.pm index 041da9d67a..0597ed8ad0 100644 --- a/lib/NGCP/Panel/Controller/Domain.pm +++ b/lib/NGCP/Panel/Controller/Domain.pm @@ -154,12 +154,8 @@ sub ajax :Chained('list') :PathPart('ajax') :Args(0) { $c->detach( $c->view("JSON") ); } -sub preferences :Chained('base') :PathPart('preferences') :Args(0) { +sub preferences :Chained('base') :PathPart('preferences') :CaptureArgs(0) { my ($self, $c) = @_; - - unless ( defined($c->stash->{'domain_result'}) ) { - return; - } my $rs = $c->model('provisioning')->resultset('voip_preferences'); my @pref_rows = $rs->all(); @@ -168,6 +164,27 @@ sub preferences :Chained('base') :PathPart('preferences') :Args(0) { $c->stash(template => 'domain/preferences.tt'); } +sub preferences_edit :Chained('preferences') :PathPart('edit') :Args(1) { + my ($self, $c, $pref_name) = @_; + + $c->stash(edit_preference => 1); + $c->stash(selected_preference => $pref_name); + + my $rs = $c->model('provisioning')->resultset('voip_preferences'); + my $row = $rs->find({attribute => $pref_name}); + my $pref_form = NGCP::Panel::Form::Preferences->new({ + fields_data => [$row], + #pref_rs => $rs, + }); + + $pref_form->create_structure([$pref_name]); + $c->stash(pref_form => $pref_form); +} + +sub preferences_show :Chained('preferences') :PathPart('') :Args(0) { + my ($self, $c) = @_; +} + sub preference_form :Chained('base') :PathPart('preferences_form') :Args(0) { my ($self, $c) = @_; @@ -180,6 +197,9 @@ sub preference_form :Chained('base') :PathPart('preferences_form') :Args(0) { $pref_form->readonly(1); $pref_form->create_my_fields(); $pref_form->process(); + try { + + } $c->stash(pref_form => $pref_form); diff --git a/lib/NGCP/Panel/Form/Preferences.pm b/lib/NGCP/Panel/Form/Preferences.pm index d24318a1ee..a441cb30bc 100644 --- a/lib/NGCP/Panel/Form/Preferences.pm +++ b/lib/NGCP/Panel/Form/Preferences.pm @@ -9,19 +9,40 @@ use HTML::Entities qw/encode_entities/; use HTML::FormHandler::Widget::Block::Bootstrap; has '+widget_wrapper' => ( default => 'Bootstrap' ); -sub build_render_list {[qw/fields actions/]} +sub build_render_list {[qw/myfields actions/]} sub build_form_element_class { [qw/form-horizontal/] } -has 'pref_rs' => (is => 'rw'); has 'readonly' => (is => 'rw', isa => 'Int', default => 0,); +has 'fields_data' => (is => 'rw'); +has_block 'myfields' => ( + tag => 'div', + #class => [qw/accordion/], + #render_list => [], + #type => 'HTML::FormHandler::Widget::Block::Bootstrap', +); + +sub field_list { + my $self = shift; + + my @field_list; + my $fields_data = $self->fields_data; + + foreach my $row (@$fields_data) { + my $field_structure = $self->create_one_field($row); + push @field_list, @$field_structure; + } + + return \@field_list; +} sub create_my_fields { my $self = shift; my @field_list = (); + #TODO: will not work anymore foreach my $preference ($self->pref_rs->all) { $self->create_one_field($preference); push @field_list, $preference->attribute; @@ -34,14 +55,11 @@ sub create_structure { my $self = shift; my $field_list = shift; - has_block 'fields' => ( - tag => 'div', - #class => [qw/accordion/], - render_list => $field_list, - ); + $self->block('myfields')->render_list($field_list); } sub create_one_field { + my $self = shift; my $preference = shift; @@ -57,11 +75,12 @@ sub create_one_field { $field_type = "Select"; } - has_field $preference->attribute => ( + return [$preference->attribute => { type => $field_type, element_attr => { title => encode_entities($preference->description), $self->readonly ? (readonly => 1) : (), }, - ); + }]; + } has_field 'save' => ( diff --git a/share/templates/domain/preferences.tt b/share/templates/domain/preferences.tt index 9a358ebdc1..827d311aff 100644 --- a/share/templates/domain/preferences.tt +++ b/share/templates/domain/preferences.tt @@ -1,7 +1,11 @@ [% META title = 'Domain Preferences' -%] [% helper.name = 'Domain'; -%] -[% helper.rows = c.stash.pref_rows; -%] +[% helper.rows = pref_rows; -%] +[% helper.edit_preference = edit_preference; -%] +[% helper.preference = selected_preference; -%] +[% helper.pref_form = pref_form; -%] +[% helper.domain_id = domain.id %] [% PROCESS 'helpers/pref_table.tt' -%] diff --git a/share/templates/helpers/pref_table.tt b/share/templates/helpers/pref_table.tt index 28c8823c49..337ba33ecf 100644 --- a/share/templates/helpers/pref_table.tt +++ b/share/templates/helpers/pref_table.tt @@ -14,7 +14,7 @@ [% r.attribute %] nothing yet[% %] [% r.description %] - Edit Button here + Edit [% END %] @@ -24,15 +24,15 @@