- All assets now have an autoGenerateForms property just like wobjects per the
rough edges discussions in Community IRC.
This commit is contained in:
parent
4a4da7bb43
commit
2f3ae0faef
4 changed files with 91 additions and 144 deletions
|
|
@ -24,6 +24,8 @@
|
||||||
- fix: Suspicious code in SyndicatedContent.pm
|
- fix: Suspicious code in SyndicatedContent.pm
|
||||||
- fix: MySQL5.0.9 bug
|
- fix: MySQL5.0.9 bug
|
||||||
- fix: DataForm corrupts text area fields
|
- fix: DataForm corrupts text area fields
|
||||||
|
- All assets now have an autoGenerateForms property just like wobjects per the
|
||||||
|
rough edges discussions in Community IRC.
|
||||||
|
|
||||||
6.99.2
|
6.99.2
|
||||||
- fix - demo.plainblack.com getting started
|
- fix - demo.plainblack.com getting started
|
||||||
|
|
|
||||||
|
|
@ -211,62 +211,111 @@ sub definition {
|
||||||
my $session = shift;
|
my $session = shift;
|
||||||
my $definition = shift || [];
|
my $definition = shift || [];
|
||||||
my $i18n = WebGUI::International->new($session, "Asset");
|
my $i18n = WebGUI::International->new($session, "Asset");
|
||||||
push(@{$definition}, {
|
my %properties;
|
||||||
assetName=>$i18n->get("asset"),
|
tie %properties, 'Tie::IxHash';
|
||||||
tableName=>'assetData',
|
%properties = (
|
||||||
className=>'WebGUI::Asset',
|
|
||||||
icon=>'assets.gif',
|
|
||||||
properties=>{
|
|
||||||
title=>{
|
title=>{
|
||||||
|
tab=>"properties",
|
||||||
|
label=>$i18n->get(99),
|
||||||
|
hoverHelp=>$i18n->get('99 description'),
|
||||||
fieldType=>'text',
|
fieldType=>'text',
|
||||||
defaultValue=>undef
|
defaultValue=>undef
|
||||||
},
|
},
|
||||||
menuTitle=>{
|
menuTitle=>{
|
||||||
|
tab=>"properties",
|
||||||
|
label=>$i18n->get(411),
|
||||||
|
hoverHelp=>$i18n->get('411 description'),
|
||||||
|
uiLevel=>1,
|
||||||
fieldType=>'text',
|
fieldType=>'text',
|
||||||
defaultValue=>undef
|
defaultValue=>undef
|
||||||
},
|
},
|
||||||
url=>{
|
url=>{
|
||||||
|
tab=>"properties",
|
||||||
|
label=>$i18n->get(104),
|
||||||
|
hoverHelp=>$i18n->get('104 description'),
|
||||||
|
uiLevel=>3,
|
||||||
fieldType=>'text',
|
fieldType=>'text',
|
||||||
defaultValue=>undef,
|
defaultValue=>undef,
|
||||||
filter=>'fixUrl'
|
filter=>'fixUrl'
|
||||||
},
|
},
|
||||||
isHidden=>{
|
isHidden=>{
|
||||||
|
tab=>"display",
|
||||||
|
label=>$i18n->get(886),
|
||||||
|
hoverHelp=>$i18n->get('886 description'),
|
||||||
|
uiLevel=>6,
|
||||||
fieldType=>'yesNo',
|
fieldType=>'yesNo',
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
},
|
},
|
||||||
newWindow=>{
|
newWindow=>{
|
||||||
|
tab=>"display",
|
||||||
|
label=>$i18n->get(940),
|
||||||
|
hoverHelp=>$i18n->get('940 description'),
|
||||||
|
uiLevel=>9,
|
||||||
fieldType=>'yesNo',
|
fieldType=>'yesNo',
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
},
|
},
|
||||||
encryptPage=>{
|
encryptPage=>{
|
||||||
fieldType=>'yesNo',
|
fieldType=>'yesNo',
|
||||||
|
tab=>"security",
|
||||||
|
label=>$i18n->get('encrypt page'),
|
||||||
|
hoverHelp=>$i18n->get('encrypt page description'),
|
||||||
|
uiLevel=>6,
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
},
|
},
|
||||||
ownerUserId=>{
|
ownerUserId=>{
|
||||||
|
tab=>"security",
|
||||||
|
label=>$i18n->get(108),
|
||||||
|
hoverHelp=>$i18n->get('108 description'),
|
||||||
|
uiLevel=>6,
|
||||||
fieldType=>'user',
|
fieldType=>'user',
|
||||||
defaultValue=>'3'
|
defaultValue=>'3'
|
||||||
},
|
},
|
||||||
groupIdView=>{
|
groupIdView=>{
|
||||||
|
tab=>"security",
|
||||||
|
label=>$i18n->get(872),
|
||||||
|
hoverHelp=>$i18n->get('872 description'),
|
||||||
|
uiLevel=>6,
|
||||||
fieldType=>'group',
|
fieldType=>'group',
|
||||||
defaultValue=>'7'
|
defaultValue=>'7'
|
||||||
},
|
},
|
||||||
groupIdEdit=>{
|
groupIdEdit=>{
|
||||||
|
tab=>"security",
|
||||||
|
label=>$i18n->get(871),
|
||||||
|
excludeGroups=>[1,7],
|
||||||
|
hoverHelp=>$i18n->get('871 description'),
|
||||||
|
uiLevel=>6,
|
||||||
fieldType=>'group',
|
fieldType=>'group',
|
||||||
defaultValue=>'4'
|
defaultValue=>'4'
|
||||||
},
|
},
|
||||||
synopsis=>{
|
synopsis=>{
|
||||||
|
tab=>"meta",
|
||||||
|
label=>$i18n->get(412),
|
||||||
|
hoverHelp=>$i18n->get('412 description'),
|
||||||
|
uiLevel=>3,
|
||||||
fieldType=>'textarea',
|
fieldType=>'textarea',
|
||||||
defaultValue=>undef
|
defaultValue=>undef
|
||||||
},
|
},
|
||||||
extraHeadTags=>{
|
extraHeadTags=>{
|
||||||
|
tab=>"meta",
|
||||||
|
label=>$i18n->get("extra head tags"),
|
||||||
|
hoverHelp=>$i18n->get('extra head tags description'),
|
||||||
|
uiLevel=>5,
|
||||||
fieldType=>'textarea',
|
fieldType=>'textarea',
|
||||||
defaultValue=>undef
|
defaultValue=>undef
|
||||||
},
|
},
|
||||||
isPackage=>{
|
isPackage=>{
|
||||||
|
label=>$i18n->get("make package"),
|
||||||
|
tab=>"meta",
|
||||||
|
hoverHelp=>$i18n->get('make package description'),
|
||||||
|
uiLevel=>7,
|
||||||
fieldType=>'yesNo',
|
fieldType=>'yesNo',
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
},
|
},
|
||||||
isPrototype=>{
|
isPrototype=>{
|
||||||
|
tab=>"meta",
|
||||||
|
label=>$i18n->get("make prototype"),
|
||||||
|
hoverHelp=>$i18n->get('make prototype description'),
|
||||||
|
uiLevel=>9,
|
||||||
fieldType=>'yesNo',
|
fieldType=>'yesNo',
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
},
|
},
|
||||||
|
|
@ -280,7 +329,14 @@ sub definition {
|
||||||
fieldType=>'hidden',
|
fieldType=>'hidden',
|
||||||
defaultValue=>0
|
defaultValue=>0
|
||||||
},
|
},
|
||||||
}
|
);
|
||||||
|
push(@{$definition}, {
|
||||||
|
assetName=>$i18n->get("asset"),
|
||||||
|
tableName=>'assetData',
|
||||||
|
autoGenerateForms=>1,
|
||||||
|
className=>'WebGUI::Asset',
|
||||||
|
icon=>'assets.gif',
|
||||||
|
properties=>\%properties
|
||||||
});
|
});
|
||||||
return $definition;
|
return $definition;
|
||||||
}
|
}
|
||||||
|
|
@ -525,7 +581,7 @@ sub getDefault {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getEditForm ( )
|
=head2 getEditForm ()
|
||||||
|
|
||||||
Creates and returns a tabform to edit parameters of an Asset.
|
Creates and returns a tabform to edit parameters of an Asset.
|
||||||
|
|
||||||
|
|
@ -566,8 +622,11 @@ sub getEditForm {
|
||||||
value=>$self->session->form->process("proceed")
|
value=>$self->session->form->process("proceed")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
# create tabs
|
||||||
$tabform->addTab("properties",$i18n->get("properties"));
|
$tabform->addTab("properties",$i18n->get("properties"));
|
||||||
|
$tabform->addTab("display",$i18n->get(105),5);
|
||||||
|
$tabform->addTab("security",$i18n->get(107),6);
|
||||||
|
$tabform->addTab("meta",$i18n->get("Metadata"),3);
|
||||||
# process errors
|
# process errors
|
||||||
my $errors = $self->session->stow->get('editFormErrors');
|
my $errors = $self->session->stow->get('editFormErrors');
|
||||||
if ($errors) {
|
if ($errors) {
|
||||||
|
|
@ -575,113 +634,26 @@ sub getEditForm {
|
||||||
-value=>"<p>Some error(s) occurred:<ul><li>".join('</li><li>', @$errors).'</li></ul></p>',
|
-value=>"<p>Some error(s) occurred:<ul><li>".join('</li><li>', @$errors).'</li></ul></p>',
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
$tabform->getTab("properties")->readOnly(
|
$tabform->getTab("properties")->readOnly(
|
||||||
-label=>$i18n->get("asset id"),
|
-label=>$i18n->get("asset id"),
|
||||||
-value=>$self->get("assetId"),
|
-value=>$self->get("assetId"),
|
||||||
-hoverHelp=>$i18n->get('asset id description'),
|
-hoverHelp=>$i18n->get('asset id description'),
|
||||||
);
|
);
|
||||||
$tabform->getTab("properties")->text(
|
foreach my $definition (reverse @{$self->definition($self->session)}) {
|
||||||
-label=>$i18n->get(99),
|
my $properties = $definition->{properties};
|
||||||
-name=>"title",
|
next unless ($definition->{autoGenerateForms});
|
||||||
-hoverHelp=>$i18n->get('99 description'),
|
foreach my $fieldname (keys %{$properties}) {
|
||||||
-value=>$self->get("title")
|
my %params;
|
||||||
);
|
foreach my $key (keys %{$properties->{$fieldname}}) {
|
||||||
$tabform->getTab("properties")->text(
|
next if ($key eq "tab");
|
||||||
-label=>$i18n->get(411),
|
$params{$key} = $properties->{$fieldname}{$key};
|
||||||
-name=>"menuTitle",
|
}
|
||||||
-value=>$self->get("menuTitle"),
|
$params{value} = $self->getValue($fieldname);
|
||||||
-hoverHelp=>$i18n->get('411 description'),
|
$params{name} = $fieldname;
|
||||||
-uiLevel=>1
|
my $tab = $properties->{$fieldname}{tab} || "properties";
|
||||||
);
|
$tabform->getTab($tab)->dynamicField(%params);
|
||||||
$tabform->getTab("properties")->text(
|
}
|
||||||
-name=>"url",
|
}
|
||||||
-label=>$i18n->get(104),
|
|
||||||
-value=>$self->get("url"),
|
|
||||||
-hoverHelp=>$i18n->get('104 description'),
|
|
||||||
-uiLevel=>3
|
|
||||||
);
|
|
||||||
$tabform->addTab("display",$i18n->get(105),5);
|
|
||||||
$tabform->getTab("display")->yesNo(
|
|
||||||
-name=>"isHidden",
|
|
||||||
-value=>$self->get("isHidden"),
|
|
||||||
-label=>$i18n->get(886),
|
|
||||||
-hoverHelp=>$i18n->get('886 description'),
|
|
||||||
-uiLevel=>6
|
|
||||||
);
|
|
||||||
$tabform->getTab("display")->yesNo(
|
|
||||||
-name=>"newWindow",
|
|
||||||
-value=>$self->get("newWindow"),
|
|
||||||
-label=>$i18n->get(940),
|
|
||||||
-hoverHelp=>$i18n->get('940 description'),
|
|
||||||
-uiLevel=>9
|
|
||||||
);
|
|
||||||
$tabform->addTab("security",$i18n->get(107),6);
|
|
||||||
$tabform->getTab("security")->yesNo(
|
|
||||||
-name=>"encryptPage",
|
|
||||||
-value=>$self->get("encryptPage"),
|
|
||||||
-label=>$i18n->get('encrypt page'),
|
|
||||||
-hoverHelp=>$i18n->get('encrypt page description'),
|
|
||||||
-uiLevel=>6
|
|
||||||
);
|
|
||||||
my $subtext;
|
|
||||||
if ($self->session->user->isInGroup(3)) {
|
|
||||||
$subtext = $self->session->icon->manage('op=listUsers');
|
|
||||||
} else {
|
|
||||||
$subtext = "";
|
|
||||||
}
|
|
||||||
$tabform->getTab("security")->user(
|
|
||||||
-name=>"ownerUserId",
|
|
||||||
-label=>$i18n->get(108),
|
|
||||||
-hoverHelp=>$i18n->get('108 description'),
|
|
||||||
-value=>$self->get("ownerUserId"),
|
|
||||||
-subtext=>$subtext,
|
|
||||||
-uiLevel=>6
|
|
||||||
);
|
|
||||||
$tabform->getTab("security")->group(
|
|
||||||
-name=>"groupIdView",
|
|
||||||
-label=>$i18n->get(872),
|
|
||||||
-hoverHelp=>$i18n->get('872 description'),
|
|
||||||
-value=>[$self->get("groupIdView")],
|
|
||||||
-uiLevel=>6
|
|
||||||
);
|
|
||||||
$tabform->getTab("security")->group(
|
|
||||||
-name=>"groupIdEdit",
|
|
||||||
-label=>$i18n->get(871),
|
|
||||||
-hoverHelp=>$i18n->get('871 description'),
|
|
||||||
-value=>[$self->get("groupIdEdit")],
|
|
||||||
-excludeGroups=>[1,7],
|
|
||||||
-uiLevel=>6
|
|
||||||
);
|
|
||||||
$tabform->addTab("meta",$i18n->get("Metadata"),3);
|
|
||||||
$tabform->getTab("meta")->textarea(
|
|
||||||
-name=>"synopsis",
|
|
||||||
-label=>$i18n->get(412),
|
|
||||||
-hoverHelp=>$i18n->get('412 description'),
|
|
||||||
-value=>$self->get("synopsis"),
|
|
||||||
-uiLevel=>3
|
|
||||||
);
|
|
||||||
$tabform->getTab("meta")->textarea(
|
|
||||||
-name=>"extraHeadTags",
|
|
||||||
-label=>$i18n->get("extra head tags"),
|
|
||||||
-hoverHelp=>$i18n->get('extra head tags description'),
|
|
||||||
-value=>$self->get("extraHeadTags"),
|
|
||||||
-uiLevel=>5
|
|
||||||
);
|
|
||||||
$tabform->getTab("meta")->yesNo(
|
|
||||||
-name=>"isPackage",
|
|
||||||
-label=>$i18n->get("make package"),
|
|
||||||
-hoverHelp=>$i18n->get('make package description'),
|
|
||||||
-value=>$self->getValue("isPackage"),
|
|
||||||
-uiLevel=>7
|
|
||||||
);
|
|
||||||
$tabform->getTab("meta")->yesNo(
|
|
||||||
-name=>"isPrototype",
|
|
||||||
-label=>$i18n->get("make prototype"),
|
|
||||||
-hoverHelp=>$i18n->get('make prototype description'),
|
|
||||||
-value=>$self->getValue("isPrototype"),
|
|
||||||
-uiLevel=>9
|
|
||||||
);
|
|
||||||
if ($self->session->setting->get("metaDataEnabled")) {
|
if ($self->session->setting->get("metaDataEnabled")) {
|
||||||
my $meta = $self->getMetaDataFields();
|
my $meta = $self->getMetaDataFields();
|
||||||
foreach my $field (keys %$meta) {
|
foreach my $field (keys %$meta) {
|
||||||
|
|
@ -717,6 +689,7 @@ sub getEditForm {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getExtraHeadTags ( )
|
=head2 getExtraHeadTags ( )
|
||||||
|
|
|
||||||
|
|
@ -210,38 +210,6 @@ sub getCollateral {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
|
||||||
|
|
||||||
=head2 getEditForm ()
|
|
||||||
|
|
||||||
Returns the TabForm object that will be used in generating the edit page for this wobject.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub getEditForm {
|
|
||||||
my $self = shift;
|
|
||||||
my $tabform = $self->SUPER::getEditForm();
|
|
||||||
foreach my $definition (reverse @{$self->definition($self->session)}) {
|
|
||||||
my $properties = $definition->{properties};
|
|
||||||
next unless ($definition->{autoGenerateForms});
|
|
||||||
foreach my $fieldname (keys %{$properties}) {
|
|
||||||
my %params;
|
|
||||||
foreach my $key (keys %{$properties->{$fieldname}}) {
|
|
||||||
next if ($key eq "tab");
|
|
||||||
$params{$key} = $properties->{$fieldname}{$key};
|
|
||||||
}
|
|
||||||
$params{value} = $self->getValue($fieldname);
|
|
||||||
$params{name} = $fieldname;
|
|
||||||
my $tab = $properties->{$fieldname}{tab} || "properties";
|
|
||||||
$tabform->getTab($tab)->dynamicField(%params);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $tabform;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 moveCollateralDown ( tableName, keyName, keyValue [ , setName, setValue ] )
|
=head2 moveCollateralDown ( tableName, keyName, keyValue [ , setName, setValue ] )
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,10 @@ Renders a user selector.
|
||||||
sub toHtml {
|
sub toHtml {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $user = WebGUI::User->new($self->session, $self->get("value"));
|
my $user = WebGUI::User->new($self->session, $self->get("value"));
|
||||||
|
my $manage = undef;
|
||||||
|
if ($self->session->user->isInGroup(3)) {
|
||||||
|
$manage = " ".$self->session->icon->manage('op=listUsers');
|
||||||
|
}
|
||||||
return WebGUI::Form::Hidden->new($self->session,
|
return WebGUI::Form::Hidden->new($self->session,
|
||||||
name=>$self->get("name"),
|
name=>$self->get("name"),
|
||||||
extras=>$self->get("extras"),
|
extras=>$self->get("extras"),
|
||||||
|
|
@ -111,7 +115,7 @@ sub toHtml {
|
||||||
.($self->get('readOnly')?'':WebGUI::Form::Button->new($self->session,
|
.($self->get('readOnly')?'':WebGUI::Form::Button->new($self->session,
|
||||||
value=>"...",
|
value=>"...",
|
||||||
extras=>'onclick="window.open(\''.$self->session->url->page("op=formUsers;formId=".$self->get('id')).'\',\'userPicker\',\'toolbar=no, location=no, status=no, directories=no, width=400, height=400\');"'
|
extras=>'onclick="window.open(\''.$self->session->url->page("op=formUsers;formId=".$self->get('id')).'\',\'userPicker\',\'toolbar=no, location=no, status=no, directories=no, width=400, height=400\');"'
|
||||||
)->toHtml);
|
)->toHtml).$manage;
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue