17 |
=cut |
=cut |
18 |
|
|
19 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
|
use Data::UUID; |
|
20 |
use Moose; |
use Moose; |
21 |
with 'Frey::Web::Coro'; |
with 'Frey::Web::Field'; |
22 |
|
|
23 |
# List of callbacks, buttons for now |
# List of callbacks, buttons for now |
24 |
has callback => ( is => 'rw', default => sub {{}} ); |
has callback => ( is => 'rw', default => sub {{}} ); |
25 |
has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] }); |
has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] }); |
26 |
|
|
|
has 'uuid' => ( |
|
|
is => 'ro', |
|
|
isa => 'Str', |
|
|
default => sub { Data::UUID->new->create_str } |
|
|
); |
|
|
|
|
|
# Given a name generate a unique field ID |
|
|
sub field_name { |
|
|
my ($self, $name) = @_; |
|
|
return $self->uuid . '-' . $name; |
|
|
} |
|
|
|
|
27 |
sub set_from_hash { |
sub set_from_hash { |
28 |
my ($self, $f) = @_; |
my ($self, $f) = @_; |
29 |
my %attrmap = %{ $self->meta->get_attribute_map }; |
my %attrmap = %{ $self->meta->get_attribute_map }; |