From b7a582c87a46b47bf7ca17a473271ef12a9446d0 Mon Sep 17 00:00:00 2001 From: Gerhard Jungwirth Date: Fri, 5 Apr 2013 14:39:32 +0200 Subject: [PATCH] make preferences table but keep preference form for now --- lib/NGCP/Panel/Controller/Domain.pm | 17 ++++++- lib/NGCP/Panel/Form/Preferences.pm | 55 +++++++++++++++-------- share/templates/domain/preference_form.tt | 5 +++ share/templates/domain/preferences.tt | 5 ++- share/templates/helpers/pref_table.tt | 42 +++++++++++++++++ 5 files changed, 103 insertions(+), 21 deletions(-) create mode 100644 share/templates/domain/preference_form.tt create mode 100644 share/templates/helpers/pref_table.tt diff --git a/lib/NGCP/Panel/Controller/Domain.pm b/lib/NGCP/Panel/Controller/Domain.pm index eea8044644..041da9d67a 100644 --- a/lib/NGCP/Panel/Controller/Domain.pm +++ b/lib/NGCP/Panel/Controller/Domain.pm @@ -161,14 +161,29 @@ sub preferences :Chained('base') :PathPart('preferences') :Args(0) { return; } + my $rs = $c->model('provisioning')->resultset('voip_preferences'); + my @pref_rows = $rs->all(); + $c->stash(pref_rows => \@pref_rows); + + $c->stash(template => 'domain/preferences.tt'); +} + +sub preference_form :Chained('base') :PathPart('preferences_form') :Args(0) { + my ($self, $c) = @_; + + unless ( defined($c->stash->{'domain_result'}) ) { + return; + } + my $rs = $c->model('provisioning')->resultset('voip_preferences'); my $pref_form = NGCP::Panel::Form::Preferences->new({pref_rs => $rs}); + $pref_form->readonly(1); $pref_form->create_my_fields(); $pref_form->process(); $c->stash(pref_form => $pref_form); - $c->stash(template => 'domain/preferences.tt'); + $c->stash(template => 'domain/preference_form.tt'); } =head1 AUTHOR diff --git a/lib/NGCP/Panel/Form/Preferences.pm b/lib/NGCP/Panel/Form/Preferences.pm index b9367c8551..d24318a1ee 100644 --- a/lib/NGCP/Panel/Form/Preferences.pm +++ b/lib/NGCP/Panel/Form/Preferences.pm @@ -13,6 +13,9 @@ sub build_render_list {[qw/fields actions/]} sub build_form_element_class { [qw/form-horizontal/] } has 'pref_rs' => (is => 'rw'); +has 'readonly' => (is => 'rw', + isa => 'Int', + default => 0,); sub create_my_fields { my $self = shift; @@ -20,30 +23,44 @@ sub create_my_fields { my @field_list = (); foreach my $preference ($self->pref_rs->all) { - - my $field_type; - if($preference->data_type eq "string") { - $field_type = "Text"; - } elsif ($preference->data_type eq "boolean") { - $field_type = "Boolean"; - } else { - $field_type = "Boolean"; - } - if($preference->max_occur == 0) { - $field_type = "Select"; - } - - has_field $preference->attribute => ( - type => $field_type, - element_attr => { title => encode_entities($preference->description) } - ); + $self->create_one_field($preference); push @field_list, $preference->attribute; } + $self->create_structure(\@field_list); +} + +sub create_structure { + my $self = shift; + my $field_list = shift; + has_block 'fields' => ( tag => 'div', - #class => [qw/modal-body/], - render_list => \@field_list, + #class => [qw/accordion/], + render_list => $field_list, + ); +} + +sub create_one_field { + my $self = shift; + my $preference = shift; + + my $field_type; + if($preference->data_type eq "string") { + $field_type = "Text"; + } elsif ($preference->data_type eq "boolean") { + $field_type = "Boolean"; + } else { + $field_type = "Boolean"; + } + if($preference->max_occur == 0) { + $field_type = "Select"; + } + + has_field $preference->attribute => ( + type => $field_type, + element_attr => { title => encode_entities($preference->description), + $self->readonly ? (readonly => 1) : (), }, ); } diff --git a/share/templates/domain/preference_form.tt b/share/templates/domain/preference_form.tt new file mode 100644 index 0000000000..3a25484320 --- /dev/null +++ b/share/templates/domain/preference_form.tt @@ -0,0 +1,5 @@ +[% META title = 'Domain Preferences (Backup)' -%] + +[% pref_form.render() %] + +[% # vim: set tabstop=4 syntax=html expandtab: -%] diff --git a/share/templates/domain/preferences.tt b/share/templates/domain/preferences.tt index 89cbdecbb7..9a358ebdc1 100644 --- a/share/templates/domain/preferences.tt +++ b/share/templates/domain/preferences.tt @@ -1,5 +1,8 @@ [% META title = 'Domain Preferences' -%] -[% pref_form.render() %] +[% helper.name = 'Domain'; -%] +[% helper.rows = c.stash.pref_rows; -%] + +[% PROCESS 'helpers/pref_table.tt' -%] [% # vim: set tabstop=4 syntax=html expandtab: -%] diff --git a/share/templates/helpers/pref_table.tt b/share/templates/helpers/pref_table.tt new file mode 100644 index 0000000000..28c8823c49 --- /dev/null +++ b/share/templates/helpers/pref_table.tt @@ -0,0 +1,42 @@ + + + + + + + [% # one for actions -%] + + + + + [% FOREACH r IN helper.rows %] + + + + + + + [% END %] + +
NameValueDescription
[% r.attribute %]nothing yet[% %][% r.description %]Edit Button here
+ +[% IF helper.edit_preference -%] + + +[% END -%] +[% # vim: set tabstop=4 syntax=html expandtab: -%] +