15 |
|
|
16 |
has fey => ( |
has fey => ( |
17 |
is => 'rw', |
is => 'rw', |
|
label => 'Fey object', |
|
18 |
isa => 'Object', # FIXME Strix::User? |
isa => 'Object', # FIXME Strix::User? |
19 |
# required => 1, # XXX if we require it we can't have Add form |
# required => 1, # XXX if we require it we can't have Add form |
20 |
); |
); |
21 |
|
|
22 |
|
has fey_class => ( |
23 |
|
is => 'rw', |
24 |
|
isa => 'Str', |
25 |
|
required => 1, |
26 |
|
); |
27 |
|
|
28 |
enum 'Layouts' => qw( div table columns ); |
enum 'Layouts' => qw( div table columns ); |
29 |
has layout => ( |
has layout => ( |
30 |
is => 'rw', |
is => 'rw', |
121 |
my $hash = $self->set_from_hash($f); |
my $hash = $self->set_from_hash($f); |
122 |
warn "## Add hash ", $self->uuid, " => ",dump( $hash, $f ); |
warn "## Add hash ", $self->uuid, " => ",dump( $hash, $f ); |
123 |
delete( $hash->{id} ); # FIXME clear primary key |
delete( $hash->{id} ); # FIXME clear primary key |
124 |
my $u = Strix::User->insert( %$hash ); |
my $u = $self->fey_class->insert( %$hash ); |
125 |
warn "Inserted ",$u->id; |
warn "Inserted ",$u->id; |
126 |
# XXX store object for later |
# XXX store object for later |
127 |
$self->fey( $u ); |
$self->fey( $u ); |
162 |
#warn "# edit render_iterator ",dump( @_ ); |
#warn "# edit render_iterator ",dump( @_ ); |
163 |
my ( $name, $field_name, $label, $val ) = @_; |
my ( $name, $field_name, $label, $val ) = @_; |
164 |
return if $name =~ /^_/; |
return if $name =~ /^_/; |
165 |
|
$val ||= ''; |
166 |
return qq| |
return qq| |
167 |
<tr class="editform"> |
<tr class="editform"> |
168 |
<td class="label">$label</td> |
<td class="label">$label</td> |
198 |
#warn "# view render_iterator ",dump( @_ ); |
#warn "# view render_iterator ",dump( @_ ); |
199 |
my ( $name, $field_name, $label, $val ) = @_; |
my ( $name, $field_name, $label, $val ) = @_; |
200 |
return if $name =~ /^_/; |
return if $name =~ /^_/; |
201 |
|
$val ||= ''; |
202 |
return qq|<tr><td>$label</td><td>$val</td></tr>| if $self->layout eq 'table'; |
return qq|<tr><td>$label</td><td>$val</td></tr>| if $self->layout eq 'table'; |
203 |
return qq|<td>$val</td>| if $self->layout eq 'columns'; |
return qq|<td>$val</td>| if $self->layout eq 'columns'; |
204 |
return qq| |
return qq| |
224 |
return qq|<div class="$class">| . $out . $self->render_buttons . qq|</div>|; |
return qq|<div class="$class">| . $out . $self->render_buttons . qq|</div>|; |
225 |
} |
} |
226 |
|
|
|
use Strix::User; |
|
|
|
|
227 |
sub _build_display_columns { |
sub _build_display_columns { |
228 |
my $self = shift; |
my $self = shift; |
229 |
|
|
230 |
my $m = Strix::User->meta; |
my $m = $self->fey_class->meta; |
231 |
|
|
232 |
my @cols; |
my @cols; |
233 |
|
|
234 |
foreach ( $m->get_attribute_list ) { |
foreach ( $m->get_attribute_list ) { |
235 |
my $attr = $m->get_attribute( $_ ); |
my $attr = $m->get_attribute( $_ ); |
236 |
warn ">> $_\n"; |
warn "_build_display_columns $_\n" if $self->debug; |
237 |
# FIXME primary key would have to be read-only! |
# FIXME primary key would have to be read-only! |
238 |
push @cols, $_; |
push @cols, $_; |
239 |
} |
} |
240 |
|
|
241 |
warn "## display_columns ",dump( @cols ); |
warn "## display_columns ",dump( @cols ) if $self->debug; |
242 |
|
|
243 |
return \@cols; |
return \@cols; |
244 |
} |
} |