diff --git a/docs/gotcha.txt b/docs/gotcha.txt index 0ab858620..5f7ce4961 100644 --- a/docs/gotcha.txt +++ b/docs/gotcha.txt @@ -14,6 +14,20 @@ save you many hours of grief. sure they will comply. +6.6.4 +-------------------------------------------------------------------- + * Please ensure you're running HTML::Template version 2.7, which + supports javascript escaping and is needed to ensure js + menus work everywhere. To see what version you're running, + type: + perl -MHTML::Template -e 'print $HTML::Template::VERSION."\n"' + at a command prompt, or alternatively use the + sbin/testEnvironment.pl script included with WebGUI. If + you've had your WebGUI site running on versions prior to 6.4 + then you should delete your lib/HTML folder as it contains + an outdated version of HTML::Template. + + 6.6.3 -------------------------------------------------------------------- * If you created your site using the create.sql script from 6.6.2 diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 8783727fa..20dd1164f 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1182,8 +1182,8 @@ sub getIcon { my $small = shift; my $definition = $self->definition; my $icon = $definition->[0]{icon} || "assets.gif"; - return $session{config}{extrasURL}.'/adminConsole/small/'.$icon if ($small); - return $session{config}{extrasURL}.'/adminConsole/'.$icon; + return $session{config}{extrasURL}.'/assets/small/'.$icon if ($small); + return $session{config}{extrasURL}.'/assets/'.$icon; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 6df3aec30..418a41c97 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -93,7 +93,7 @@ sub definition { my $class = shift; my $definition = shift; push(@{$definition}, { - assetName=>WebGUI::International::get('post',"Asset_Post") + assetName=>WebGUI::International::get('post',"Asset_Post"), icon=>'post.gif', tableName=>'Post', className=>'WebGUI::Asset::Post', diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 04eae2d1d..7c4d29f90 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -69,6 +69,7 @@ sub definition { push(@{$definition}, { tableName=>'wobject', className=>'WebGUI::Asset::Wobject', + autoGenerateForms=>1, properties=>{ description=>{ fieldType=>'HTMLArea', @@ -248,17 +249,20 @@ 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(); - my $definition = $self->definition; - my $properties = $definition->[0]{properties}; - foreach my $fieldname (keys %{$properties}) { - my %params; - foreach my $key (keys %{$properties->{$fieldname}}) { - next if ($key eq "tab" || $key eq "fieldType"); - $params{"-".$key} = $properties->{$fieldname}{$key} + foreach my $definition (@{$self->definition}) { + 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" || $key eq "fieldType"); + $params{"-".$key} = $properties->{$fieldname}{$key} + } + $params{"-value"} = $self->getValue($fieldname); + $params{"-name"} = $fieldname; + my $tab = $properties->{$fieldname}{tab} || "properties"; + $tabform->getTab($tab)->dynamicField($properties->{$fieldname}{fieldType},%params); } - $params{"-value"} = $self->getValue($fieldname); - $params{"-name"} = $fieldname; - $tabform->getTab($properties->{$fieldname}{tab})->dynamicField($properties->{$fieldname}{fieldType},%params); } return $tabform; } diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index 2766136bd..dc55325a6 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -28,17 +28,20 @@ sub definition { push(@{$definition}, { assetName=>WebGUI::International::get(1,"Asset_Article"), icon=>'article.gif', + autoGenerateForms=>1, tableName=>'Article', className=>'WebGUI::Asset::Wobject::Article', properties=>{ templateId =>{ fieldType=>"template", defaultValue=>'PBtmpl0000000000000002', + tab=>"display", namespace=>"Article", hoverHelp=>WebGUI::International::get('article template description','Asset_Article'), label=>WebGUI::International::get(72,"Asset_Article") }, linkURL=>{ + tab=>"properties", fieldType=>'url', defaultValue=>undef, label=>WebGUI::International::get(8,"Asset_Article"), @@ -46,6 +49,7 @@ sub definition { uiLevel=>3 }, linkTitle=>{ + tab=>"properties", fieldType=>'text', defaultValue=>undef, label=>WebGUI::International::get(7,"Asset_Article"), @@ -53,6 +57,7 @@ sub definition { uiLevel=>3 }, convertCarriageReturns=>{ + tab=>"display", fieldType=>'yesNo', defaultValue=>0, label=>WebGUI::International::get(10,"Asset_Article"), diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index abee28b6d..c9614f4f8 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -259,7 +259,7 @@ sub definition { my $class = shift; my $definition = shift; push(@{$definition}, { - assetName=>WebGUI::International::get('collaboration system',"Asset_collaboration"), + assetName=>WebGUI::International::get('collaboration system',"Asset_Collaboration"), icon=>'collaboration.gif', tableName=>'Collaboration', className=>'WebGUI::Asset::Wobject::Collaboration', diff --git a/lib/WebGUI/Asset/Wobject/MessageBoard.pm b/lib/WebGUI/Asset/Wobject/MessageBoard.pm index 6e55cbae4..c81c9f134 100644 --- a/lib/WebGUI/Asset/Wobject/MessageBoard.pm +++ b/lib/WebGUI/Asset/Wobject/MessageBoard.pm @@ -30,8 +30,10 @@ sub definition { icon=>'messageBoard.gif', tableName=>'MessageBoard', className=>'WebGUI::Asset::Wobject::MessageBoard', + autoGenerateForms=>1, properties=>{ templateId =>{ + tab=>"display", fieldType=>"template", defaultValue=>'PBtmpl0000000000000047', namespace=>"MessageBoard", diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index 64ae35386..efed0d02e 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -74,11 +74,13 @@ sub definition { my $definition = shift; push(@{$definition}, { assetName=>WebGUI::International::get(2,'Asset_SyndicatedContent'), + autoGenerateForms=>1, icon=>'syndicatedContent.gif', tableName=>'SyndicatedContent', className=>'WebGUI::Asset::Wobject::SyndicatedContent', properties=>{ templateId =>{ + tab=>"display", fieldType=>'template', defaultValue=>'PBtmpl0000000000000065', namespace=>'SyndicatedContent', @@ -86,18 +88,21 @@ sub definition { hoverHelp=>WebGUI::International::get('72 description','Asset_SyndicatedContent') }, rssUrl=>{ + tab=>"properties", defaultValue=>undef, fieldType=>'textarea', label=>WebGUI::International::get(1,'Asset_SyndicatedContent'), hoverHelp=>WebGUI::International::get('1 description','Asset_SyndicatedContent') }, maxHeadlines=>{ + tab=>"properties", fieldType=>'integer', defaultValue=>10, label=>WebGUI::International::get(3,'Asset_SyndicatedContent'), hoverHelp=>WebGUI::International::get('3 description','Asset_SyndicatedContent') }, displayMode=>{ + tab=>"display", fieldType=>'selectList', defaultValue=>'interleaved', options=>{ @@ -110,6 +115,7 @@ sub definition { subtext=>WebGUI::International::get('displayModeSubtext','Asset_SyndicatedContent') }, hasTerms=>{ + tab=>"properties", fieldType=>'text', defaultValue=>'', label=>WebGUI::International::get('hasTermsLabel','Asset_SyndicatedContent'),