package AddressBook::Controller::Address;
use strict;
use warnings;
use base qw(Catalyst::Controller::FormBuilder Catalyst::Controller::Bi
+ndLex);
use Data::Dumper;
sub edit : Local Form {
my ($self, $c, $address_id, $person_id) = @_;
my $address : Stashed;
print $c->request->arguments->[0];
print "\n";
print Dumper(" address_id is: ".Dumper($address_id));
print Dumper("person_id is: ".Dumper($person_id));
my $persid = $c->model('AddressDB::Addresses')->find({person => $id});
my $person = $c->model('AddressDB::People')->find({id => $persid});
if ($self->formbuilder->submitted && $self->formbuilder->validate){
# transfer data from form to database
$address->location($self->formbuilder->field('location'));
$address->postal ($self->formbuilder->field('postal' ));
$address->phone ($self->formbuilder->field('phone'));
$address->email ($self->formbuilder->field('email'));
$address->insert_or_update;
$c->stash->{message} =
($address_id > 0 ? 'Updated ' : 'Added new ').'address for '. $
+address->person->name;
$c->detach('list');
}
else {
# transfer data from database to form
if(!$address_id){
$c->stash->{message} = 'Adding a new address ';
}
else {
$c->stash->{message} = 'Updating an address ';
}
$c->stash->{message} .= ' for '. $address->person->name;
$self->formbuilder->field(name => 'location', value => $address
+->location);
$self->formbuilder->field(name => 'postal', value => $address->
+postal);
$self->formbuilder->field(name => 'phone', value => $address->p
+hone);
$self->formbuilder->field(name => 'email', value => $address->e
+mail);
}
}
thanks |