allow field overrides in the config file
This commit is contained in:
parent
ca86f3d84b
commit
017a9a7fc2
3 changed files with 120 additions and 62 deletions
|
|
@ -1100,6 +1100,23 @@ sub getEditForm {
|
|||
return $tabform;
|
||||
}
|
||||
|
||||
sub setupFormField {
|
||||
my ($self, $tabform, $fieldName, $extraFields, $overrides) = @_;
|
||||
my %params = %{$extraFields->{$fieldName}};
|
||||
my $tab = delete $params{tab};
|
||||
|
||||
if (exists $overrides->{fields}{$fieldName}) {
|
||||
my %overrideParams = %{$overrides->{fields}{$fieldName}};
|
||||
my $overrideTab = delete $overrideParams{tab};
|
||||
$tab = $overrideTab if defined $overrideTab;
|
||||
foreach my $key (keys %overrideParams) {
|
||||
$params{"-$key"} = $overrideParams{$key};
|
||||
}
|
||||
}
|
||||
|
||||
$tab ||= 'properties';
|
||||
return $tabform->getTab($tab)->dynamicField(%params);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -154,31 +154,51 @@ Returns the TabForm object that will be used in generating the edit page for thi
|
|||
sub getEditForm {
|
||||
my $self = shift;
|
||||
my $tabform = $self->SUPER::getEditForm();
|
||||
|
||||
# Add the fields defined locally and apply any overrides from the config file
|
||||
my $i18n = WebGUI::International->new($self->session,"Asset_Image");
|
||||
$tabform->getTab("properties")->integer(
|
||||
-name=>"thumbnailSize",
|
||||
-label=>$i18n->get('thumbnail size'),
|
||||
-hoverHelp=>$i18n->get('Thumbnail size description'),
|
||||
-value=>$self->getValue("thumbnailSize")
|
||||
);
|
||||
$tabform->getTab("properties")->textarea(
|
||||
-name=>"parameters",
|
||||
-label=>$i18n->get('parameters'),
|
||||
-hoverHelp=>$i18n->get('Parameters description'),
|
||||
-value=>$self->getValue("parameters")
|
||||
);
|
||||
|
||||
tie my %extraFields, "Tie::IxHash";
|
||||
|
||||
my $extraFields = {
|
||||
thumbnailSize => {
|
||||
fieldType=>"integer",
|
||||
-name=>"thumbnailSize",
|
||||
-label=>$i18n->get('thumbnail size'),
|
||||
-hoverHelp=>$i18n->get('Thumbnail size description'),
|
||||
-value=>$self->getValue("thumbnailSize"),
|
||||
},
|
||||
parameters => {
|
||||
fieldType=>"textarea",
|
||||
-name=>"parameters",
|
||||
-label=>$i18n->get('parameters'),
|
||||
-hoverHelp=>$i18n->get('Parameters description'),
|
||||
-value=>$self->getValue("parameters")
|
||||
},
|
||||
};
|
||||
|
||||
if ($self->get("filename") ne "") {
|
||||
$tabform->getTab("properties")->readOnly(
|
||||
-label=>$i18n->get('thumbnail'),
|
||||
-hoverHelp=>$i18n->get('Thumbnail description'),
|
||||
-value=>'<a href="'.$self->getFileUrl.'"><img src="'.$self->getThumbnailUrl.'?noCache='.time().'" alt="thumbnail" /></a>'
|
||||
);
|
||||
my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename"));
|
||||
$tabform->getTab("properties")->readOnly(
|
||||
-label=>$i18n->get('image size'),
|
||||
-value=>$x.' x '.$y
|
||||
);
|
||||
my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename"));
|
||||
|
||||
$extraFields->{thumbnail} = {
|
||||
fieldType=>"readOnly",
|
||||
-label=>$i18n->get('thumbnail'),
|
||||
-hoverHelp=>$i18n->get('Thumbnail description'),
|
||||
-value=>'<a href="'.$self->getFileUrl.'"><img src="'.$self->getThumbnailUrl.'?noCache='.$self->session->datetime->time().'" alt="thumbnail" /></a>'
|
||||
};
|
||||
$extraFields->{imageSize} = {
|
||||
fieldType=>"readOnly",
|
||||
-label=>$i18n->get('image size'),
|
||||
-value=>$x.' x '.$y,
|
||||
};
|
||||
}
|
||||
|
||||
my $overrides = $self->session->config->get("assets/".$self->get("className"));
|
||||
|
||||
foreach my $fieldName (keys %{$extraFields}) {
|
||||
$self->setupFormField($tabform, $fieldName, $extraFields, $overrides);
|
||||
}
|
||||
|
||||
return $tabform;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,27 +115,36 @@ sub getEditForm {
|
|||
} else {
|
||||
$templateId = $self->getValue('templateId');
|
||||
}
|
||||
$tabform->getTab("display")->template(
|
||||
-value=>$templateId,
|
||||
-label=>$i18n->get('layout template title'),
|
||||
-hoverHelp=>$i18n->get('template description'),
|
||||
-namespace=>"Layout"
|
||||
);
|
||||
|
||||
tie my %extraFields, "Tie::IxHash";
|
||||
%extraFields = (
|
||||
templateId => {
|
||||
fieldType => 'template',
|
||||
tab => 'display',
|
||||
-value=>$templateId,
|
||||
-label=>$i18n->get('layout template title'),
|
||||
-hoverHelp=>$i18n->get('template description'),
|
||||
-namespace=>"Layout",
|
||||
});
|
||||
|
||||
if ( $self->session->setting->get('useMobileStyle') ) {
|
||||
$tabform->getTab("display")->template(
|
||||
name => 'mobileTemplateId',
|
||||
value => $self->getValue('mobileTemplateId'),
|
||||
label => $i18n->get('mobileTemplateId label'),
|
||||
hoverHelp => $i18n->get('mobileTemplateId description'),
|
||||
namespace => 'Layout',
|
||||
);
|
||||
$extraFields{mobileTemplateId} = {
|
||||
fieldType => 'template',
|
||||
tab => 'display',
|
||||
name => 'mobileTemplateId',
|
||||
value => $self->getValue('mobileTemplateId'),
|
||||
label => $i18n->get('mobileTemplateId label'),
|
||||
hoverHelp => $i18n->get('mobileTemplateId description'),
|
||||
namespace => 'Layout',
|
||||
};
|
||||
}
|
||||
else {
|
||||
$tabform->getTab("display")->hidden(
|
||||
name => 'mobileTemplateId',
|
||||
value => $self->getValue('mobileTemplateId'),
|
||||
);
|
||||
$extraFields{mobileTemplateId} = {
|
||||
fieldType => 'hidden',
|
||||
tab => 'display',
|
||||
name => 'mobileTemplateId',
|
||||
value => $self->getValue('mobileTemplateId'),
|
||||
};
|
||||
}
|
||||
|
||||
tie my %assetOrder, "Tie::IxHash";
|
||||
|
|
@ -143,21 +152,25 @@ sub getEditForm {
|
|||
"asc" =>$i18n->get("asset order asc"),
|
||||
"desc" =>$i18n->get("asset order desc"),
|
||||
);
|
||||
$tabform->getTab("display")->selectBox(
|
||||
-name => 'assetOrder',
|
||||
-label => $i18n->get('asset order label'),
|
||||
-hoverHelp => $i18n->get('asset order hoverHelp'),
|
||||
-value => $self->getValue('assetOrder'),
|
||||
-options => \%assetOrder
|
||||
);
|
||||
$extraFields{assetOrder} = {
|
||||
tab => 'display',
|
||||
fieldType => 'selectBox',
|
||||
-name => 'assetOrder',
|
||||
-label => $i18n->get('asset order label'),
|
||||
-hoverHelp => $i18n->get('asset order hoverHelp'),
|
||||
-value => $self->getValue('assetOrder'),
|
||||
-options => \%assetOrder,
|
||||
};
|
||||
|
||||
if ($self->get("assetId") eq "new") {
|
||||
$tabform->getTab("properties")->whatNext(
|
||||
-options=>{
|
||||
view=>$i18n->get(823),
|
||||
viewParent=>$i18n->get(847)
|
||||
},
|
||||
-value=>"view"
|
||||
);
|
||||
$extraFields{whatNext} = {
|
||||
fieldType => 'whatNext',
|
||||
-options=>{
|
||||
view=>$i18n->get(823),
|
||||
viewParent=>$i18n->get(847)
|
||||
},
|
||||
-value=>"view",
|
||||
};
|
||||
} else {
|
||||
my @assetsToHide = split("\n",$self->getValue("assetsToHide"));
|
||||
my $children = $self->getLineage(["children"],{"returnObjects"=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"]});
|
||||
|
|
@ -165,16 +178,24 @@ sub getEditForm {
|
|||
foreach my $child (@{$children}) {
|
||||
$childIds{$child->getId} = $child->getTitle;
|
||||
}
|
||||
$tabform->getTab("display")->checkList(
|
||||
-name=>"assetsToHide",
|
||||
-value=>\@assetsToHide,
|
||||
-options=>\%childIds,
|
||||
-label=>$i18n->get('assets to hide'),
|
||||
-hoverHelp=>$i18n->get('assets to hide description'),
|
||||
-vertical=>1,
|
||||
-uiLevel=>9
|
||||
);
|
||||
$extraFields{assetsToHide} = {
|
||||
fieldType => 'checkList',
|
||||
tab => 'display',
|
||||
-name=>"assetsToHide",
|
||||
-value=>\@assetsToHide,
|
||||
-options=>\%childIds,
|
||||
-label=>$i18n->get('assets to hide'),
|
||||
-hoverHelp=>$i18n->get('assets to hide description'),
|
||||
-vertical=>1,
|
||||
-uiLevel=>9,
|
||||
};
|
||||
}
|
||||
|
||||
my $overrides = $self->session->config->get("assets/".$self->get("className"));
|
||||
foreach my $fieldName (keys %extraFields) {
|
||||
$self->setupFormField($tabform, $fieldName, \%extraFields, $overrides);
|
||||
}
|
||||
|
||||
return $tabform;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue