editing preferences with multiple values (WIP)

agranig/1_0_subfix
Gerhard Jungwirth 12 years ago
parent 951037b6da
commit da8f3b267d

@ -205,25 +205,43 @@ sub preferences_edit :Chained('preferences_detail') :PathPart('edit') :Args(0) {
$form->create_structure([$c->stash->{preference_meta}->attribute]);
my $posted = ($c->request->method eq 'POST');
$form->process(
posted => 1,
params => $posted ? $c->request->params : { $c->stash->{preference_meta}->attribute => $c->stash->{preference_values}->[0] },
action => $c->uri_for($c->stash->{domain}->{id}, 'preferences', $c->stash->{preference_meta}->id, 'edit'),
);
if($c->stash->{preference_meta}->max_occur == 1){
$form->process(
posted => 1,
params => $posted ? $c->request->params : { $c->stash->{preference_meta}->attribute => $c->stash->{preference_values}->[0] },
action => $c->uri_for($c->stash->{domain}->{id}, 'preferences', $c->stash->{preference_meta}->id, 'edit'),
);
} else {
$form->process(
posted => 1,
params => $posted ? $c->request->params : {},
action => $c->uri_for($c->stash->{domain}->{id}, 'preferences', $c->stash->{preference_meta}->id, 'edit'),
);
}
if($posted && $form->validated) {
# TODO: if meta->max_occur=0 insert, otherwise insert_or_update
my $preference_id = $c->stash->{preference}->first ? $c->stash->{preference}->first->id : undef;
my $rs = $c->model('provisioning')
->resultset('voip_dom_preferences')
->update_or_create({
id => $preference_id,
attribute_id => $c->stash->{preference_meta}->id,
domain_id => $c->stash->{provisioning_domain_id},
value => $form->field($c->stash->{preference_meta}->attribute)->value,
});
$c->flash(messages => [{type => 'success', text => 'Preference '.$c->stash->{preference_meta}->attribute.' successfully updated.'}]);
$c->response->redirect($c->uri_for($c->stash->{domain}->{id}, 'preferences'));
return;
if ($c->stash->{preference_meta}->max_occur != 1) {
$c->model('provisioning')
->resultset('voip_dom_preferences')
->create({
attribute_id => $c->stash->{preference_meta}->id,
domain_id => $c->stash->{provisioning_domain_id},
value => $form->field($c->stash->{preference_meta}->attribute)->value,
});
} else {
my $rs = $c->model('provisioning')
->resultset('voip_dom_preferences')
->update_or_create({
id => $preference_id,
attribute_id => $c->stash->{preference_meta}->id,
domain_id => $c->stash->{provisioning_domain_id},
value => $form->field($c->stash->{preference_meta}->attribute)->value,
});
$c->flash(messages => [{type => 'success', text => 'Preference '.$c->stash->{preference_meta}->attribute.' successfully updated.'}]);
$c->response->redirect($c->uri_for($c->stash->{domain}->{id}, 'preferences'));
return;
}
}
$c->stash(form => $form);

@ -56,7 +56,7 @@
[% END %]
</td>
<td>
<div class="sw_actions pull-right">
<div class="sw_actions pull-right" style="display:none;">
<a style="display:inline;line-height:16px;" class="btn btn-small btn-primary" href="[% c.uri_for(helper.domain_id,'preferences', r.id, 'edit') %]"><i class="icon-edit" style="line-height:1em;margin-top:2px"></i> Edit</i></a>
</div>
</td>
@ -71,6 +71,13 @@
<button id="mod_close" type="button" class="close">×</button>
<h3>Edit Preference [% helper.preference_meta.attribute %]</h3>
</div>
[% IF helper.preference_meta.max_occur != 1 %]
[% FOREACH v IN helper.preference.all %]
<input type="text" value="[% v.value %]" disabled="disabled"></input>
<a href="?delete=[% v.id %]">Delete</a>
<br />
[% END %]
[% END %]
[% helper.form.render -%]
</div>
<script>

Loading…
Cancel
Save