|
|
|
@ -13,6 +13,9 @@ sub build_render_list {[qw/fields actions/]}
|
|
|
|
|
sub build_form_element_class { [qw/form-horizontal/] }
|
|
|
|
|
|
|
|
|
|
has 'pref_rs' => (is => 'rw');
|
|
|
|
|
has 'readonly' => (is => 'rw',
|
|
|
|
|
isa => 'Int',
|
|
|
|
|
default => 0,);
|
|
|
|
|
|
|
|
|
|
sub create_my_fields {
|
|
|
|
|
my $self = shift;
|
|
|
|
@ -20,30 +23,44 @@ sub create_my_fields {
|
|
|
|
|
my @field_list = ();
|
|
|
|
|
|
|
|
|
|
foreach my $preference ($self->pref_rs->all) {
|
|
|
|
|
|
|
|
|
|
my $field_type;
|
|
|
|
|
if($preference->data_type eq "string") {
|
|
|
|
|
$field_type = "Text";
|
|
|
|
|
} elsif ($preference->data_type eq "boolean") {
|
|
|
|
|
$field_type = "Boolean";
|
|
|
|
|
} else {
|
|
|
|
|
$field_type = "Boolean";
|
|
|
|
|
}
|
|
|
|
|
if($preference->max_occur == 0) {
|
|
|
|
|
$field_type = "Select";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
has_field $preference->attribute => (
|
|
|
|
|
type => $field_type,
|
|
|
|
|
element_attr => { title => encode_entities($preference->description) }
|
|
|
|
|
);
|
|
|
|
|
$self->create_one_field($preference);
|
|
|
|
|
push @field_list, $preference->attribute;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$self->create_structure(\@field_list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub create_structure {
|
|
|
|
|
my $self = shift;
|
|
|
|
|
my $field_list = shift;
|
|
|
|
|
|
|
|
|
|
has_block 'fields' => (
|
|
|
|
|
tag => 'div',
|
|
|
|
|
#class => [qw/modal-body/],
|
|
|
|
|
render_list => \@field_list,
|
|
|
|
|
#class => [qw/accordion/],
|
|
|
|
|
render_list => $field_list,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub create_one_field {
|
|
|
|
|
my $self = shift;
|
|
|
|
|
my $preference = shift;
|
|
|
|
|
|
|
|
|
|
my $field_type;
|
|
|
|
|
if($preference->data_type eq "string") {
|
|
|
|
|
$field_type = "Text";
|
|
|
|
|
} elsif ($preference->data_type eq "boolean") {
|
|
|
|
|
$field_type = "Boolean";
|
|
|
|
|
} else {
|
|
|
|
|
$field_type = "Boolean";
|
|
|
|
|
}
|
|
|
|
|
if($preference->max_occur == 0) {
|
|
|
|
|
$field_type = "Select";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
has_field $preference->attribute => (
|
|
|
|
|
type => $field_type,
|
|
|
|
|
element_attr => { title => encode_entities($preference->description),
|
|
|
|
|
$self->readonly ? (readonly => 1) : (), },
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|