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;
|
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 {
|
sub getEditForm {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $tabform = $self->SUPER::getEditForm();
|
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");
|
my $i18n = WebGUI::International->new($self->session,"Asset_Image");
|
||||||
$tabform->getTab("properties")->integer(
|
|
||||||
-name=>"thumbnailSize",
|
tie my %extraFields, "Tie::IxHash";
|
||||||
-label=>$i18n->get('thumbnail size'),
|
|
||||||
-hoverHelp=>$i18n->get('Thumbnail size description'),
|
my $extraFields = {
|
||||||
-value=>$self->getValue("thumbnailSize")
|
thumbnailSize => {
|
||||||
);
|
fieldType=>"integer",
|
||||||
$tabform->getTab("properties")->textarea(
|
-name=>"thumbnailSize",
|
||||||
-name=>"parameters",
|
-label=>$i18n->get('thumbnail size'),
|
||||||
-label=>$i18n->get('parameters'),
|
-hoverHelp=>$i18n->get('Thumbnail size description'),
|
||||||
-hoverHelp=>$i18n->get('Parameters description'),
|
-value=>$self->getValue("thumbnailSize"),
|
||||||
-value=>$self->getValue("parameters")
|
},
|
||||||
);
|
parameters => {
|
||||||
|
fieldType=>"textarea",
|
||||||
|
-name=>"parameters",
|
||||||
|
-label=>$i18n->get('parameters'),
|
||||||
|
-hoverHelp=>$i18n->get('Parameters description'),
|
||||||
|
-value=>$self->getValue("parameters")
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
if ($self->get("filename") ne "") {
|
if ($self->get("filename") ne "") {
|
||||||
$tabform->getTab("properties")->readOnly(
|
my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename"));
|
||||||
-label=>$i18n->get('thumbnail'),
|
|
||||||
-hoverHelp=>$i18n->get('Thumbnail description'),
|
$extraFields->{thumbnail} = {
|
||||||
-value=>'<a href="'.$self->getFileUrl.'"><img src="'.$self->getThumbnailUrl.'?noCache='.time().'" alt="thumbnail" /></a>'
|
fieldType=>"readOnly",
|
||||||
);
|
-label=>$i18n->get('thumbnail'),
|
||||||
my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename"));
|
-hoverHelp=>$i18n->get('Thumbnail description'),
|
||||||
$tabform->getTab("properties")->readOnly(
|
-value=>'<a href="'.$self->getFileUrl.'"><img src="'.$self->getThumbnailUrl.'?noCache='.$self->session->datetime->time().'" alt="thumbnail" /></a>'
|
||||||
-label=>$i18n->get('image size'),
|
};
|
||||||
-value=>$x.' x '.$y
|
$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;
|
return $tabform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -115,27 +115,36 @@ sub getEditForm {
|
||||||
} else {
|
} else {
|
||||||
$templateId = $self->getValue('templateId');
|
$templateId = $self->getValue('templateId');
|
||||||
}
|
}
|
||||||
$tabform->getTab("display")->template(
|
|
||||||
-value=>$templateId,
|
tie my %extraFields, "Tie::IxHash";
|
||||||
-label=>$i18n->get('layout template title'),
|
%extraFields = (
|
||||||
-hoverHelp=>$i18n->get('template description'),
|
templateId => {
|
||||||
-namespace=>"Layout"
|
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') ) {
|
if ( $self->session->setting->get('useMobileStyle') ) {
|
||||||
$tabform->getTab("display")->template(
|
$extraFields{mobileTemplateId} = {
|
||||||
name => 'mobileTemplateId',
|
fieldType => 'template',
|
||||||
value => $self->getValue('mobileTemplateId'),
|
tab => 'display',
|
||||||
label => $i18n->get('mobileTemplateId label'),
|
name => 'mobileTemplateId',
|
||||||
hoverHelp => $i18n->get('mobileTemplateId description'),
|
value => $self->getValue('mobileTemplateId'),
|
||||||
namespace => 'Layout',
|
label => $i18n->get('mobileTemplateId label'),
|
||||||
);
|
hoverHelp => $i18n->get('mobileTemplateId description'),
|
||||||
|
namespace => 'Layout',
|
||||||
|
};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$tabform->getTab("display")->hidden(
|
$extraFields{mobileTemplateId} = {
|
||||||
name => 'mobileTemplateId',
|
fieldType => 'hidden',
|
||||||
value => $self->getValue('mobileTemplateId'),
|
tab => 'display',
|
||||||
);
|
name => 'mobileTemplateId',
|
||||||
|
value => $self->getValue('mobileTemplateId'),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
tie my %assetOrder, "Tie::IxHash";
|
tie my %assetOrder, "Tie::IxHash";
|
||||||
|
|
@ -143,21 +152,25 @@ sub getEditForm {
|
||||||
"asc" =>$i18n->get("asset order asc"),
|
"asc" =>$i18n->get("asset order asc"),
|
||||||
"desc" =>$i18n->get("asset order desc"),
|
"desc" =>$i18n->get("asset order desc"),
|
||||||
);
|
);
|
||||||
$tabform->getTab("display")->selectBox(
|
$extraFields{assetOrder} = {
|
||||||
-name => 'assetOrder',
|
tab => 'display',
|
||||||
-label => $i18n->get('asset order label'),
|
fieldType => 'selectBox',
|
||||||
-hoverHelp => $i18n->get('asset order hoverHelp'),
|
-name => 'assetOrder',
|
||||||
-value => $self->getValue('assetOrder'),
|
-label => $i18n->get('asset order label'),
|
||||||
-options => \%assetOrder
|
-hoverHelp => $i18n->get('asset order hoverHelp'),
|
||||||
);
|
-value => $self->getValue('assetOrder'),
|
||||||
|
-options => \%assetOrder,
|
||||||
|
};
|
||||||
|
|
||||||
if ($self->get("assetId") eq "new") {
|
if ($self->get("assetId") eq "new") {
|
||||||
$tabform->getTab("properties")->whatNext(
|
$extraFields{whatNext} = {
|
||||||
-options=>{
|
fieldType => 'whatNext',
|
||||||
view=>$i18n->get(823),
|
-options=>{
|
||||||
viewParent=>$i18n->get(847)
|
view=>$i18n->get(823),
|
||||||
},
|
viewParent=>$i18n->get(847)
|
||||||
-value=>"view"
|
},
|
||||||
);
|
-value=>"view",
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
my @assetsToHide = split("\n",$self->getValue("assetsToHide"));
|
my @assetsToHide = split("\n",$self->getValue("assetsToHide"));
|
||||||
my $children = $self->getLineage(["children"],{"returnObjects"=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"]});
|
my $children = $self->getLineage(["children"],{"returnObjects"=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"]});
|
||||||
|
|
@ -165,16 +178,24 @@ sub getEditForm {
|
||||||
foreach my $child (@{$children}) {
|
foreach my $child (@{$children}) {
|
||||||
$childIds{$child->getId} = $child->getTitle;
|
$childIds{$child->getId} = $child->getTitle;
|
||||||
}
|
}
|
||||||
$tabform->getTab("display")->checkList(
|
$extraFields{assetsToHide} = {
|
||||||
-name=>"assetsToHide",
|
fieldType => 'checkList',
|
||||||
-value=>\@assetsToHide,
|
tab => 'display',
|
||||||
-options=>\%childIds,
|
-name=>"assetsToHide",
|
||||||
-label=>$i18n->get('assets to hide'),
|
-value=>\@assetsToHide,
|
||||||
-hoverHelp=>$i18n->get('assets to hide description'),
|
-options=>\%childIds,
|
||||||
-vertical=>1,
|
-label=>$i18n->get('assets to hide'),
|
||||||
-uiLevel=>9
|
-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;
|
return $tabform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue