diff --git a/docs/upgrades/upgrade_6.2.9-6.3.0.sql b/docs/upgrades/upgrade_6.2.9-6.3.0.sql index 98ddb30f4..95858b4a1 100644 --- a/docs/upgrades/upgrade_6.2.9-6.3.0.sql +++ b/docs/upgrades/upgrade_6.2.9-6.3.0.sql @@ -198,3 +198,7 @@ INSERT INTO template VALUES ('7','Side By Side','\"> INSERT INTO template VALUES ('6','Right Column','\">\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n

\r\n
\r\n\r\n
 
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n\r\n\r\n \r\n \">\r\n \r\n \r\n \r\n\r\n\r\n \r\n
_div\" class=\"dragable\"> \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n \r\n\r\n\r\n\r\n \r\n \">\r\n \r\n \r\n \r\n\r\n\r\n \r\n
_div\" class=\"dragable\"> \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
 
\r\n\r\n\r\n \r\n
 
\r\n \r\n
\r\n ','page',1,1); INSERT INTO template VALUES ('1','Default Page','\">\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \">\r\n \r\n \r\n \r\n\r\n\r\n \r\n
_div\" class=\"dragable\"> \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n \r\n
 
\r\n \r\n
\r\n ','page',1,1); +INSERT INTO template VALUES ('1','File','\r\n

\r\n
\r\n\">\" alt=\"\" border=\"0\" />','FileAsset',1,1); + +INSERT INTO template VALUES ('2vyWxxtft_ut0sfoyJm4Hg','File Folder','\">\r\n\r\n

\r\n
\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n

\r\n
\r\n\r\n\r\n\r\n
 
\r\n
\r\n\r\n\r\n
\r\n \">/assets/folder.gif\" border=\"0\" alt=\"Folder\" />
\r\n
\r\n
\r\n\r\n\r\n
 
\r\n
\r\n\r\n\r\n
 
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
 
\r\n','page',1,1); + diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 9ce97773a..683fec25f 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -466,7 +466,8 @@ sub getNextChildRank { sub getParent { my $self = shift; - return WebGUI::Asset->newByDynamicClass($self->get("parentId")); + $self->{_parent} = WebGUI::Asset->newByDynamicClass($self->get("parentId")) unless (exists $self->{_parent}); + return $self->{_parent}; } sub getParentLineage { @@ -612,6 +613,24 @@ sub paste { return 0; } +sub processPropertiesFromFormPost { + my $self = shift; + my %data; + foreach my $definition (@{$self->definition}) { + foreach my $property (keys %{$definition->{properties}}) { + $data{$property} = WebGUI::FormProcessor::process( + $property, + $definition->{properties}{fieldType}, + $definition->{properties}{defaultValue} + ); + } + } + $data{title} = "Untitled" unless ($data{title}); + $data{menuTitle} = $data{title} unless ($data{menuTitle}); + $data{url} = $self->getParent->get("url").'/'.$data{menuTitle} unless ($data{url}); + $self->update(\%data); +} + sub promote { my $self = shift; my ($sisterLineage) = WebGUI::SQL->quickArray("select max(lineage) from asset @@ -747,7 +766,12 @@ sub update { sub www_add { my $self = shift; - my $newAsset = WebGUI::Asset->newByDynamicClass("new",$session{form}{class},$self->get); + my %properties = %{$self->get}; + delete $properties{title}; + delete $properties{menuTitle}; + delete $properties{url}; + delete $properties{description}; + my $newAsset = WebGUI::Asset->newByDynamicClass("new",$session{form}{class},\%properties); return $newAsset->www_edit(); } @@ -830,20 +854,11 @@ sub www_editSave { my $object; if ($session{form}{assetId} eq "new") { $object = $self->addChild({className=>$session{form}{class}}); + $object->{_parent} = $self; } else { $object = $self; } - my %data; - foreach my $definition (@{$object->definition}) { - foreach my $property (keys %{$definition->{properties}}) { - $data{$property} = WebGUI::FormProcessor::process( - $property, - $definition->{properties}{fieldType}, - $definition->{properties}{defaultValue} - ); - } - } - $object->update(\%data); + $object->processPropertiesFromFormPost; return $self->www_manageAssets if ($session{form}{afterEdit} eq "assetManager" && $session{form}{assetId} eq "new"); return $object->getParent->www_manageAssets if ($session{form}{afterEdit} eq "assetManager"); return $object->www_view; diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index 4aa8430af..f6b938e5a 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -17,8 +17,10 @@ package WebGUI::Asset::File; use strict; use WebGUI::Asset; use WebGUI::HTTP; +use WebGUI::Icon; use WebGUI::Session; use WebGUI::Storage; +use WebGUI::Template; our @ISA = qw(WebGUI::Asset); @@ -138,6 +140,33 @@ sub getName { } +sub processPropertiesFromFormPost { + my $self = shift; + $self->SUPER::processPropertiesFromFormPost; + my $storage = WebGUI::Storage->create; + my $filename = $storage->addFileFromFormPost("file"); + if (defined $filename) { + my $oldVersions; + if ($self->get("filename")) { # do file versioning + my @old = split("\n",$self->get("olderVersions")); + push(@old,$self->get("storageId")."|".$self->get("filename")); + $oldVersions = join("\n",@old); + } + my %data; + $data{filename} = $filename; + $data{storageId} = $storage->getId; + $data{olderVersions} = $oldVersions; + $data{title} = $filename unless ($session{form}{title}); + $data{menuTitle} = $filename unless ($session{form}{menuTitle}); + $data{url} = $self->getParent->getUrl.'/'.$filename unless ($session{form}{url}); + $self->update(\%data); + $self->setSize($storage->getFileSize($filename)); + } else { + $storage->delete; + } +} + + #------------------------------------------------------------------- =head2 purge @@ -161,18 +190,24 @@ sub purge { sub view { my $self = shift; my $storage = WebGUI::Storage->get($self->get("storageId")); -use WebGUI::Utility; - if (isIn($storage->getFileExtension($self->get("filename")),qw("jpg","png","gif"))) { - return 'test'; - } else { - return 'test'.$self->get("filename").''; - } + my $toolbar = deleteIcon('func=delete',$self->get("url"),WebGUI::International::get(43)) + .editIcon('func=edit',$self->get("url")) + .moveUpIcon('func=promote',$self->get("url")) + .moveDownIcon('func=demote',$self->get("url")) + .cutIcon('func=cut',$self->get("url")) + .copyIcon('func=copy',$self->get("url")); + my %var = %{$self->get}; + $var{controls} = $toolbar; + $var{fileUrl} = $storage->getUrl($self->get("filename")); + $var{fileIcon} = $storage->getFileIconUrl($self->get("filename")); + return WebGUI::Template::process("1","FileAsset",\%var); } -sub view2 { +sub www_view { my $self = shift; + return WebGUI::Privilege::noAccess() unless $self->canView; if ($session{var}{adminOn}) { return $self->www_edit; } @@ -181,44 +216,6 @@ sub view2 { return ""; } -#------------------------------------------------------------------- - -=head2 www_editSave - -Gathers data from www_edit and persists it. - -=cut - -sub www_editSave { - my $self = shift; - my $output = $self->SUPER::www_editSave(); - my $storage = WebGUI::Storage->create; - my $filename = $storage->addFileFromFormPost("file"); - if (defined $filename) { - my $oldVersions; - if ($self->get($filename)) { # do file versioning - my @old = split("\n",$self->get("olderVersions")); - push(@old,$self->get("storageId")."|".$self->get("filename")); - $oldVersions = join("\n",@old); - } - $self->update({ - filename=>$filename, - storageId=>$storage->getId, - olderVersions=>$oldVersions - }); - $self->setSize($storage->getFileSize($filename)); - } else { - $storage->delete; - } - return $output; -} - -#sub www_view { -# my $self = shift; -# return WebGUI::Privilege::noAccess() unless $self->canView; -# return $self->view; -#} - 1; diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 3098d1188..3d9854444 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -322,10 +322,10 @@ sub processTemplate { .editIcon('func=edit',$self->get("url")) .moveUpIcon('func=promote',$self->get("url")) .moveDownIcon('func=demote',$self->get("url")) - # .moveTopIcon('func=moveTop&wid='.${$wobject}{wobjectId}) - # .moveBottomIcon('func=moveBottom&wid='.${$wobject}{wobjectId}) .cutIcon('func=cut',$self->get("url")) .copyIcon('func=copy',$self->get("url")); + # .moveTopIcon('func=moveTop&wid='.${$wobject}{wobjectId}) + # .moveBottomIcon('func=moveBottom&wid='.${$wobject}{wobjectId}) # if (${$wobject}{namespace} ne "WobjectProxy" && isIn("WobjectProxy",@{$session{config}{wobjects}})) { # $wobjectToolbar .= shortcutIcon('func=createShortcut'); #}