Fix prefill and update of preferences.

agranig/1_0_subfix
Gerhard Jungwirth 12 years ago
parent 6af4d59390
commit 6dce0d610c

@ -204,37 +204,28 @@ sub preferences_edit :Chained('preferences_detail') :PathPart('edit') :Args(0) {
}); });
$form->create_structure([$c->stash->{preference_meta}->attribute]); $form->create_structure([$c->stash->{preference_meta}->attribute]);
my $posted = ($c->request->method eq 'POST');
$form->process( $form->process(
posted => ($c->request->method eq 'POST'), posted => 1,
params => $c->request->params || { $c->stash->{preference_meta}->attribute => $c->stash->{preference_values}->[0] }, 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'), action => $c->uri_for($c->stash->{domain}->{id}, 'preferences', $c->stash->{preference_meta}->id, 'edit'),
); );
if($form->validated) { if($posted && $form->validated) {
# TODO: if meta->max_occur=0 insert, otherwise insert_or_update # 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 $preference_id = $c->stash->{preference}->first ? $c->stash->{preference}->first->id : undef;
my $rs = $c->model('provisioning') my $rs = $c->model('provisioning')
->resultset('voip_dom_preferences') ->resultset('voip_dom_preferences')
->new_result({ ->update_or_create({
id => $preference_id, id => $preference_id,
attribute_id => $c->stash->{preference_meta}->id, attribute_id => $c->stash->{preference_meta}->id,
domain_id => $c->stash->{provisioning_domain_id}, domain_id => $c->stash->{provisioning_domain_id},
value => $form->field($c->stash->{preference_meta}->attribute)->value, value => $form->field($c->stash->{preference_meta}->attribute)->value,
}); });
if($preference_id) {
$rs->update();
} else {
$rs->insert();
}
$c->flash(messages => [{type => 'success', text => 'Preference '.$c->stash->{preference_meta}->attribute.' successfully updated.'}]); $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')); $c->response->redirect($c->uri_for($c->stash->{domain}->{id}, 'preferences'));
return; return;
} }
print "~~~~~~~~~~~~~~~~~~~~~~~~~\n";
print "".(p $form->field($c->stash->{preference_meta}->attribute))."\n";
print ">>>>>> ".$form->field($c->stash->{preference_meta}->attribute)->value."\n";
$c->stash(form => $form); $c->stash(form => $form);
} }

Loading…
Cancel
Save