refactor getEditForm to make a sub to get field properties
This commit is contained in:
parent
5a12add79a
commit
d86381d440
1 changed files with 35 additions and 17 deletions
|
|
@ -1063,7 +1063,6 @@ sub getEditForm {
|
||||||
my $session = $self->session;
|
my $session = $self->session;
|
||||||
my $i18n = WebGUI::International->new( $session, "Asset" );
|
my $i18n = WebGUI::International->new( $session, "Asset" );
|
||||||
my $f = WebGUI::FormBuilder->new( $session );
|
my $f = WebGUI::FormBuilder->new( $session );
|
||||||
my $overrides = $session->config->get( "assets/" . $self->get("className") . '/fields' ) || {};
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# Create the main tabset
|
# Create the main tabset
|
||||||
|
|
@ -1112,28 +1111,15 @@ sub getEditForm {
|
||||||
###
|
###
|
||||||
# Properties
|
# Properties
|
||||||
foreach my $property ( $self->getProperties ) {
|
foreach my $property ( $self->getProperties ) {
|
||||||
next if $self->meta->find_attribute_by_name( $property )->noFormPost;
|
my $fieldHash = $self->getFieldData( $property );
|
||||||
my $fieldType = $self->meta->find_attribute_by_name( $property )->fieldType;
|
next if $fieldHash->{noFormPost};
|
||||||
my $fieldOverrides = $overrides->{ $property } || {};
|
|
||||||
my $fieldHash = {
|
|
||||||
tab => "properties",
|
|
||||||
%{ $self->getFormProperties( $property ) },
|
|
||||||
%{ $overrides },
|
|
||||||
name => $property,
|
|
||||||
value => $self->$property,
|
|
||||||
};
|
|
||||||
|
|
||||||
# Kludge...
|
|
||||||
if ( $fieldHash->{fieldType} ~~ ['selectBox', 'workflow'] and ref $fieldHash->{value} ne 'ARRAY' ) {
|
|
||||||
$fieldHash->{value} = [ $fieldHash->{value} ];
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create tabs to have labels added later
|
# Create tabs to have labels added later
|
||||||
if ( !$f->getTab( $fieldHash->{tab} ) ) {
|
if ( !$f->getTab( $fieldHash->{tab} ) ) {
|
||||||
$f->addTab( name => $fieldHash->{tab}, label => $fieldHash->{tab} );
|
$f->addTab( name => $fieldHash->{tab}, label => $fieldHash->{tab} );
|
||||||
}
|
}
|
||||||
|
|
||||||
$f->getTab( $fieldHash->{tab} )->addField( $fieldType, %{$fieldHash} );
|
$f->getTab( $fieldHash->{tab} )->addField( delete $fieldHash->{fieldType}, %{$fieldHash} );
|
||||||
}
|
}
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
@ -1201,6 +1187,38 @@ sub getExtraHeadTags {
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 getFieldData( property )
|
||||||
|
|
||||||
|
Returns the form field data for the given property name. Adds the
|
||||||
|
overrides from the config file.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub getFieldData {
|
||||||
|
my ( $self, $property ) = @_;
|
||||||
|
my $session = $self->session;
|
||||||
|
my $overrides = $session->config->get( "assets/" . $self->get("className") . '/fields' ) || {};
|
||||||
|
my $fieldType = $self->meta->find_attribute_by_name( $property )->fieldType;
|
||||||
|
my $fieldOverrides = $overrides->{ $property } || {};
|
||||||
|
my $fieldHash = {
|
||||||
|
fieldType => $fieldType,
|
||||||
|
tab => "properties",
|
||||||
|
%{ $self->getFormProperties( $property ) },
|
||||||
|
%{ $overrides },
|
||||||
|
name => $property,
|
||||||
|
value => $self->$property,
|
||||||
|
};
|
||||||
|
|
||||||
|
# Kludge...
|
||||||
|
if ( $fieldHash->{fieldType} ~~ ['selectBox', 'workflow'] and ref $fieldHash->{value} ne 'ARRAY' ) {
|
||||||
|
$fieldHash->{value} = [ $fieldHash->{value} ];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $fieldHash;
|
||||||
|
};
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getHelpers ( )
|
=head2 getHelpers ( )
|
||||||
|
|
||||||
Get the AssetHelpers for this asset.
|
Get the AssetHelpers for this asset.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue