diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt
index 3a4fe25a9..996457603 100644
--- a/docs/changelog/6.x.x.txt
+++ b/docs/changelog/6.x.x.txt
@@ -24,6 +24,8 @@
- fix: Suspicious code in SyndicatedContent.pm
- fix: MySQL5.0.9 bug
- 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
- fix - demo.plainblack.com getting started
diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm
index b80e78e42..902fcee4d 100644
--- a/lib/WebGUI/Asset.pm
+++ b/lib/WebGUI/Asset.pm
@@ -211,62 +211,111 @@ sub definition {
my $session = shift;
my $definition = shift || [];
my $i18n = WebGUI::International->new($session, "Asset");
- push(@{$definition}, {
- assetName=>$i18n->get("asset"),
- tableName=>'assetData',
- className=>'WebGUI::Asset',
- icon=>'assets.gif',
- properties=>{
+ my %properties;
+ tie %properties, 'Tie::IxHash';
+ %properties = (
title=>{
+ tab=>"properties",
+ label=>$i18n->get(99),
+ hoverHelp=>$i18n->get('99 description'),
fieldType=>'text',
defaultValue=>undef
},
menuTitle=>{
+ tab=>"properties",
+ label=>$i18n->get(411),
+ hoverHelp=>$i18n->get('411 description'),
+ uiLevel=>1,
fieldType=>'text',
defaultValue=>undef
},
url=>{
+ tab=>"properties",
+ label=>$i18n->get(104),
+ hoverHelp=>$i18n->get('104 description'),
+ uiLevel=>3,
fieldType=>'text',
defaultValue=>undef,
filter=>'fixUrl'
},
isHidden=>{
+ tab=>"display",
+ label=>$i18n->get(886),
+ hoverHelp=>$i18n->get('886 description'),
+ uiLevel=>6,
fieldType=>'yesNo',
defaultValue=>0
},
newWindow=>{
+ tab=>"display",
+ label=>$i18n->get(940),
+ hoverHelp=>$i18n->get('940 description'),
+ uiLevel=>9,
fieldType=>'yesNo',
defaultValue=>0
},
encryptPage=>{
fieldType=>'yesNo',
+ tab=>"security",
+ label=>$i18n->get('encrypt page'),
+ hoverHelp=>$i18n->get('encrypt page description'),
+ uiLevel=>6,
defaultValue=>0
},
ownerUserId=>{
+ tab=>"security",
+ label=>$i18n->get(108),
+ hoverHelp=>$i18n->get('108 description'),
+ uiLevel=>6,
fieldType=>'user',
defaultValue=>'3'
},
groupIdView=>{
+ tab=>"security",
+ label=>$i18n->get(872),
+ hoverHelp=>$i18n->get('872 description'),
+ uiLevel=>6,
fieldType=>'group',
defaultValue=>'7'
},
groupIdEdit=>{
+ tab=>"security",
+ label=>$i18n->get(871),
+ excludeGroups=>[1,7],
+ hoverHelp=>$i18n->get('871 description'),
+ uiLevel=>6,
fieldType=>'group',
defaultValue=>'4'
},
synopsis=>{
+ tab=>"meta",
+ label=>$i18n->get(412),
+ hoverHelp=>$i18n->get('412 description'),
+ uiLevel=>3,
fieldType=>'textarea',
defaultValue=>undef
},
extraHeadTags=>{
+ tab=>"meta",
+ label=>$i18n->get("extra head tags"),
+ hoverHelp=>$i18n->get('extra head tags description'),
+ uiLevel=>5,
fieldType=>'textarea',
defaultValue=>undef
},
isPackage=>{
+ label=>$i18n->get("make package"),
+ tab=>"meta",
+ hoverHelp=>$i18n->get('make package description'),
+ uiLevel=>7,
fieldType=>'yesNo',
defaultValue=>0
},
isPrototype=>{
+ tab=>"meta",
+ label=>$i18n->get("make prototype"),
+ hoverHelp=>$i18n->get('make prototype description'),
+ uiLevel=>9,
fieldType=>'yesNo',
defaultValue=>0
},
@@ -280,7 +329,14 @@ sub definition {
fieldType=>'hidden',
defaultValue=>0
},
- }
+ );
+ push(@{$definition}, {
+ assetName=>$i18n->get("asset"),
+ tableName=>'assetData',
+ autoGenerateForms=>1,
+ className=>'WebGUI::Asset',
+ icon=>'assets.gif',
+ properties=>\%properties
});
return $definition;
}
@@ -525,7 +581,7 @@ sub getDefault {
#-------------------------------------------------------------------
-=head2 getEditForm ( )
+=head2 getEditForm ()
Creates and returns a tabform to edit parameters of an Asset.
@@ -566,8 +622,11 @@ sub getEditForm {
value=>$self->session->form->process("proceed")
});
}
+ # create tabs
$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
my $errors = $self->session->stow->get('editFormErrors');
if ($errors) {
@@ -575,113 +634,26 @@ sub getEditForm {
-value=>"
Some error(s) occurred:
',
)
}
-
$tabform->getTab("properties")->readOnly(
-label=>$i18n->get("asset id"),
-value=>$self->get("assetId"),
-hoverHelp=>$i18n->get('asset id description'),
);
- $tabform->getTab("properties")->text(
- -label=>$i18n->get(99),
- -name=>"title",
- -hoverHelp=>$i18n->get('99 description'),
- -value=>$self->get("title")
- );
- $tabform->getTab("properties")->text(
- -label=>$i18n->get(411),
- -name=>"menuTitle",
- -value=>$self->get("menuTitle"),
- -hoverHelp=>$i18n->get('411 description'),
- -uiLevel=>1
- );
- $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
- );
+ 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);
+ }
+ }
if ($self->session->setting->get("metaDataEnabled")) {
my $meta = $self->getMetaDataFields();
foreach my $field (keys %$meta) {
@@ -717,6 +689,7 @@ sub getEditForm {
}
+
#-------------------------------------------------------------------
=head2 getExtraHeadTags ( )
diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm
index f4d127b56..732e05d8a 100644
--- a/lib/WebGUI/Asset/Wobject.pm
+++ b/lib/WebGUI/Asset/Wobject.pm
@@ -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 ] )
diff --git a/lib/WebGUI/Form/User.pm b/lib/WebGUI/Form/User.pm
index c1c8d0ecb..a6beace51 100644
--- a/lib/WebGUI/Form/User.pm
+++ b/lib/WebGUI/Form/User.pm
@@ -96,6 +96,10 @@ Renders a user selector.
sub toHtml {
my $self = shift;
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,
name=>$self->get("name"),
extras=>$self->get("extras"),
@@ -111,7 +115,7 @@ sub toHtml {
.($self->get('readOnly')?'':WebGUI::Form::Button->new($self->session,
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\');"'
- )->toHtml);
+ )->toHtml).$manage;
}
1;