domain preferences: fix form, create overlay

agranig/1_0_subfix
Gerhard Jungwirth 12 years ago
parent b7a582c87a
commit 8ddff24cdc

@ -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);

@ -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' => (

@ -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' -%]

@ -14,7 +14,7 @@
<td>[% r.attribute %]</td>
<td>nothing yet[% %]</td>
<td>[% r.description %]</td>
<td>Edit Button here</td>
<td><a href="[% c.uri_for(helper.domain_id,'preferences') %]/edit/[% r.attribute %]">Edit</a></td>
</tr>
[% END %]
</tbody>
@ -24,15 +24,15 @@
<div id="mod_edit" class="modal hide" style="display:block">
<div class="modal-header">
<button id="mod_close" type="button" class="close">×</button>
<h3>Edit Preference</h3>
<h3>Edit Preference [% helper.preference %]</h3>
</div>
[% helper.form_object.render -%]
[% helper.pref_form.render -%]
</div>
<script>
$(function () {
$('#mod_edit').modal({keyboard: false, backdrop: 'static'});
$('#mod_close').click(function(event) {
window.location.href="[% c.uri_for(c.stash.domain.id, 'preferences') %]";
window.location.href="[% c.uri_for(helper.domain_id, 'preferences') %]";
});
});

Loading…
Cancel
Save