more asset fixes

This commit is contained in:
JT Smith 2004-12-23 18:13:07 +00:00
parent 1f88c760a3
commit 2e9602e248
4 changed files with 76 additions and 60 deletions

View file

@ -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;

View file

@ -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 '<a href="'.$storage->getUrl($self->get("filename")).'"><img src="'.$storage->getUrl($self->get("filename")).'" alt="test" border="0" /></a>';
} else {
return '<a href="'.$storage->getUrl($self->get("filename")).'"><img src="'.$storage->getFileIconUrl($self->get("filename")).'" alt="test" border="0" />'.$self->get("filename").'</a>';
}
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;

View file

@ -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');
#}