1 |
dpavlin |
63 |
package Strix::View::User; |
2 |
|
|
|
3 |
dpavlin |
71 |
use Data::Dump qw/dump/; |
4 |
|
|
|
5 |
dpavlin |
63 |
use metaclass 'Moose::Meta::Class' => ( |
6 |
|
|
attribute_metaclass => 'Continuity::Meta::Attribute::FormField' |
7 |
|
|
); |
8 |
|
|
|
9 |
|
|
use Moose; |
10 |
|
|
|
11 |
|
|
extends 'Continuity::Widget'; |
12 |
|
|
#with 'BonusTypes'; |
13 |
|
|
|
14 |
dpavlin |
71 |
before main => sub { |
15 |
|
|
my ($self) = @_; |
16 |
|
|
# $self->add_button('Show ID' => sub { |
17 |
|
|
# print STDERR "ID = @{[$self->id]}!\n"; |
18 |
|
|
# $self->next("<tt>id @{[$self->id]}!</tt>"); |
19 |
|
|
# }); |
20 |
|
|
$self->add_button('Edit' => sub { |
21 |
|
|
my $out = $self->renderer->{edit}->($self); |
22 |
|
|
my $f = $self->next($out); |
23 |
|
|
$self->set_from_hash($f, sub { |
24 |
|
|
warn "## inside set_from_hash ",dump( @_ ); |
25 |
|
|
my $hash = shift || die "no hash?"; |
26 |
|
|
warn "## hash = ",dump( $hash ); |
27 |
|
|
$self->_fey->update( %$hash ); |
28 |
|
|
}); |
29 |
|
|
}); |
30 |
|
|
}; |
31 |
|
|
|
32 |
dpavlin |
63 |
use Data::Dump qw/dump/; |
33 |
|
|
|
34 |
|
|
use Strix::User; |
35 |
|
|
my $m = Strix::User->meta; |
36 |
|
|
|
37 |
|
|
foreach ( $m->get_attribute_list ) { |
38 |
|
|
warn ">> $_\n"; |
39 |
|
|
my $attr = $m->get_attribute( $_ ); |
40 |
|
|
|
41 |
|
|
has $_ => ( |
42 |
|
|
is => $attr->_is_metadata, |
43 |
|
|
label => ucfirst($_), |
44 |
|
|
required => $attr->is_required, |
45 |
|
|
); |
46 |
|
|
|
47 |
|
|
} |
48 |
|
|
|
49 |
dpavlin |
71 |
has _foo => ( |
50 |
dpavlin |
63 |
is => 'rw', |
51 |
|
|
label => 'Foo', |
52 |
|
|
); |
53 |
|
|
|
54 |
dpavlin |
71 |
has _fey => ( |
55 |
|
|
is => 'rw', |
56 |
|
|
label => 'Fey object', |
57 |
|
|
isa => 'Strix::User', |
58 |
|
|
); |
59 |
|
|
|
60 |
dpavlin |
63 |
1; |