diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm
index e551a0788..c6a905d8d 100644
--- a/lib/WebGUI/Asset.pm
+++ b/lib/WebGUI/Asset.pm
@@ -1176,12 +1176,16 @@ sub getLineage {
$where .= " and ".join(" or ",@whereModifiers) if (scalar(@whereModifiers));
# based upon all available criteria, let's get some assets
my $columns = "assetId, className, parentId";
- $columns = "*" if ($rules->{returnQuickReadObjects});
+ my $slavedb;
+ if ($rules->{returnQuickReadObjects}) {
+ $columns = "*";
+ $slavedb = WebGUI::SQL->getSlave;
+ }
my $sortOrder = ($rules->{invertTree}) ? "desc" : "asc";
my $sql = "select $columns from asset where $where order by lineage $sortOrder";
my @lineage;
my %relativeCache;
- my $sth = WebGUI::SQL->read($sql);
+ my $sth = WebGUI::SQL->read($sql, $slavedb);
while (my $properties = $sth->hashRef) {
# create whatever type of object was requested
my $asset;
@@ -1439,7 +1443,12 @@ Name value pairs to add to the URL in the form of:
sub getUrl {
my $self = shift;
my $params = shift;
- return WebGUI::URL::gateway($self->get("url"),$params);
+ my $url = WebGUI::URL::gateway($self->get("url"),$params);
+ if ($self->get("encryptPage")) {
+ $url = WebGUI::URL::getSiteURL().$url;
+ $url =~ s/http:/https:/;
+ }
+ return $url;
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Asset/FilePile.pm b/lib/WebGUI/Asset/FilePile.pm
index 7445ad0aa..df912f872 100644
--- a/lib/WebGUI/Asset/FilePile.pm
+++ b/lib/WebGUI/Asset/FilePile.pm
@@ -46,6 +46,7 @@ These methods are available from this class:
=cut
+#-------------------------------------------------------------------
sub edit {
my $self = shift;
my $tabform = WebGUI::TabForm->new();
@@ -129,33 +130,16 @@ sub edit {
-excludeGroups=>[1,7],
-uiLevel=>6
);
- WebGUI::Style::setScript($session{config}{extrasURL}.'/FileUploadControl.js',{type=>"text/javascript"});
- my $uploadControl = '
- ';
$tabform->getTab("properties")->readOnly(
-label=>"Upload Files",
- -value=>$uploadControl
+ -value=>$self->getUploadControl
);
return $self->getAdminConsole->render($tabform->print,"Add a Pile of Files");
}
+#-------------------------------------------------------------------
sub editSave {
- my $self = shift;
+ my $class = shift;
my $parent = WebGUI::Asset->newByUrl;
my $tempStorage = WebGUI::Storage->create;
$tempStorage->addFileFromFormPost("file");
@@ -165,7 +149,7 @@ sub editSave {
my %data;
my $class = 'WebGUI::Asset::File';
$class = "WebGUI::Asset::File::Image" if (isIn($storage->getFileExtension($filename),qw(jpg jpeg gif png)));
- foreach my $definition (@{$self->definition}) {
+ foreach my $definition (@{$class->definition}) {
foreach my $property (keys %{$definition->{properties}}) {
$data{$property} = WebGUI::FormProcessor::process(
$property,
@@ -210,6 +194,32 @@ sub getName {
return "File Pile";
}
+#-------------------------------------------------------------------
+sub getUploadControl {
+ my $self = shift;
+ WebGUI::Style::setScript($session{config}{extrasURL}.'/FileUploadControl.js',{type=>"text/javascript"});
+ my $uploadControl = '
+ ';
+ return $uploadControl;
+}
+
+
+#-------------------------------------------------------------------
sub www_edit {
my $self = shift;
unless ($session{form}{doit}) {
diff --git a/lib/WebGUI/Form.pm b/lib/WebGUI/Form.pm
index 87753328f..97b370f6e 100644
--- a/lib/WebGUI/Form.pm
+++ b/lib/WebGUI/Form.pm
@@ -722,6 +722,41 @@ sub file {
}
+#-------------------------------------------------------------------
+
+=head2 files ( hashRef )
+
+Returns a multiple file upload control.
+
+=head3 name
+
+The name field for this form element.
+
+=cut
+
+sub files {
+ WebGUI::Style::setScript($session{config}{extrasURL}.'/FileUploadControl.js',{type=>"text/javascript"});
+ my $uploadControl = '
+ ';
+ return $uploadControl;
+}
+
+
#-------------------------------------------------------------------
=head2 filterContent ( hashRef )
diff --git a/lib/WebGUI/Operation.pm b/lib/WebGUI/Operation.pm
index cd2b25a19..b6fe481ad 100644
--- a/lib/WebGUI/Operation.pm
+++ b/lib/WebGUI/Operation.pm
@@ -96,7 +96,8 @@ sub getOperations {
'editDatabaseLinkSave' => 'WebGUI::Operation::DatabaseLink',
'listDatabaseLinks' => 'WebGUI::Operation::DatabaseLink',
'richEditPageTree' => 'WebGUI::Operation::RichEdit',
- 'richEditImage' => 'WebGUI::Operation::RichEdit',
+ 'richEditImageTree' => 'WebGUI::Operation::RichEdit',
+ 'richEditViewThumbnail' => 'WebGUI::Operation::RichEdit',
'manageUsersInGroup' => 'WebGUI::Operation::Group',
'deleteGroup' => 'WebGUI::Operation::Group',
'deleteGroupConfirm' => 'WebGUI::Operation::Group',
diff --git a/lib/WebGUI/Operation/RichEdit.pm b/lib/WebGUI/Operation/RichEdit.pm
index 495f5dcfb..738a990ad 100644
--- a/lib/WebGUI/Operation/RichEdit.pm
+++ b/lib/WebGUI/Operation/RichEdit.pm
@@ -59,6 +59,7 @@ window.opener.tinyMCE.insertLink("^" + "/" + ";" + document.getElementById("url"
$output .= ''.join(" > ", @crumb)."
\n";
my $children = $base->getLineage(["children"],{returnQuickReadObjects=>1});
foreach my $child (@{$children}) {
+ next unless $child->canView;
$output .= '(•) '.$child->get("menuTitle").''."
\n";
}
$session{page}{useEmptyStyle} = 1;
@@ -66,178 +67,52 @@ window.opener.tinyMCE.insertLink("^" + "/" + ";" + document.getElementById("url"
}
+
#-------------------------------------------------------------------
-sub _htmlAreaCreateTree {
- my ($output);
- my ($name, $description, $url, $image, $indent, $target, $delete) = @_;
- if($delete) {
- $delete = qq//;
- $delete .= deleteIcon()."";
+sub www_richEditImageTree {
+ my $base = WebGUI::Asset->newByUrl || WebGUI::Asset->getRoot;
+ my @crumb;
+ my $ancestors = $base->getLineage(["self","ancestors"],{returnQuickReadObjects=>1});
+ foreach my $ancestor (@{$ancestors}) {
+ push(@crumb,''.$ancestor->get("menuTitle").'');
+ }
+ my $output = ''.join(" > ", @crumb)."
\n";
+ my $children = $base->getLineage(["children"],{returnQuickReadObjects=>1});
+ foreach my $child (@{$children}) {
+ next unless $child->canView;
+ if ($child->get("className") =~ /^WebGUI::Asset::File::Image/) {
+ $output .= '(•) ';
+ } else {
+ $output .= "(•) ";
+ }
+ $output .= ''.$child->get("menuTitle").''."
\n";
}
- $target = ' target="'.$target.'" ' if ($target);
- $output .= '';
- $output .= (' ') x$indent;
- $output .= ' ';
- $output .= ''.$name.' | ';
- $output .= ''.$delete.' |
';
+ $session{page}{useEmptyStyle} = 1;
return $output;
}
-#-------------------------------------------------------------------
-sub www_htmlArealistCollateral {
- my (@parents, $sth, $data, $indent);
- $session{page}{makePrintable}=1; $session{page}{printableStyleId}=10;
- return "Only Content Managers are allowed to use WebGUI Collateral" unless (WebGUI::Grouping::isInGroup(4));
-
- my $output = '';
- my $folderId = $session{form}{fid} || 0;
- my $parent = $folderId;
- # push parent folders in array so it can be reversed
- unshift(@parents, $parent);
- until($parent eq '0') {
- ($parent) = WebGUI::SQL->quickArray("select parentId from collateralFolder where collateralFolderId=".quote($parent));
- unshift(@parents, $parent);
- }
- # Build tree for opened parent folders
- foreach $parent (@parents) {
- my ($name, $description) = WebGUI::SQL->quickArray("select name, description from
- collateralFolder where collateralFolderId=".quote($parent));
- my ($itemsInFolder) = WebGUI::SQL->quickArray("select count(*) from collateral where collateralFolderId = ".quote($parent));
- my ($foldersInFolder)=WebGUI::SQL->quickArray("select count(*) from collateralFolder where parentId=".quote($parent));
- my $delete = "fid=$parent" unless ($itemsInFolder + $foldersInFolder);
- $output .= _htmlAreaCreateTree($name, $description,
- WebGUI::URL::page('op=htmlArealistCollateral&fid='.$parent), "opened.gif",
- $indent++,"" ,$delete);
- }
- # Extend tree with closed folders in current folder
- $sth = WebGUI::SQL->read("select collateralFolderId, name, description from collateralFolder
- where parentId=".quote($folderId)." and collateralFolderId <> '0' order by name");
- while ($data = $sth->hashRef) {
- my ($itemsInFolder) = WebGUI::SQL->quickArray("select count(*) from collateral where
- collateralFolderId = ".quote($data->{collateralFolderId}));
- my $delete = 'fid='.$data->{collateralFolderId} unless $itemsInFolder;
- $output .= _htmlAreaCreateTree($data->{name}, $data->{description},
- WebGUI::URL::page('op=htmlArealistCollateral&fid='.$data->{collateralFolderId}),
- "closed.gif", $indent, "", $delete);
- }
- # Extend tree with images in current folder
- $sth = WebGUI::SQL->read("select collateralId, name, filename from collateral where collateralType = 'image' ".
- "and collateralFolderId = ".quote($folderId));
- while ($data = $sth->hashRef) {
- $data->{filename} =~ /\.([^\.]+)$/; # Get extension
- my $fileType = $1.'.gif';
- $output .= _htmlAreaCreateTree($data->{filename}, $data->{name},
- WebGUI::URL::page('op=htmlAreaviewCollateral&cid='.$data->{collateralId}),
- $fileType, $indent, "viewer", 'cid='.$data->{collateralId}.'&fid='.$folderId);
- }
- $output .= '
';
- $output .= '\n";
- $sth->finish;
- return $output;
-}
#-------------------------------------------------------------------
-sub www_htmlAreaviewCollateral {
- my($output, $collateral, $file, $x, $y, $image, $error);
- $session{page}{makePrintable}=1; $session{page}{printableStyleId}=10;
- $output .= '';
- if($session{form}{cid} eq "" || ! WebGUI::Grouping::isInGroup(4)) {
- $output .= '| ';
- $output .= '
 ';
- $output .= 'WebGUI Image Manager for TinyMCE ';
- $output .= ' |
';
- } else {
- my $c = WebGUI::Collateral->new($session{form}{cid});
- $collateral = $c->get;
- $file = WebGUI::Attachment->new($collateral->{filename},"images",$collateral->{collateralId});
- $output .= '';
- $output .= ''.$file->getFilename.' ';
- # if ($hasImageMagick) {
- # $image = Image::Magick->new;
- # $error = $image->Read($file->getPath);
- # ($x, $y) = $image->Get('width','height');
- # $output .= $error ? "Error reading image: $error" : "($x × $y)";
- # }
- $output .= ' |
';
- $output .= ' ';
- $output .= ' |
';
- $output .= '\n";
+ }
+ \n";
+ return $output;
}
- return $output;
-}
-
-#-------------------------------------------------------------------
-sub www_htmlAreaUpload {
- $session{page}{makePrintable}=1; $session{page}{printableStyleId}=10;
- return "Only Content Managers are allowed to use WebGUI Collateral" unless (WebGUI::Grouping::isInGroup(4));
- return www_htmlArealistCollateral() if ($session{form}{image} eq "");
- my($test, $file);
- $session{form}{fid} = $session{form}{collateralFolderId} = $session{form}{path};
- my $collateral = WebGUI::Collateral->new("new");
- $session{form}{thumbnailSize} ||= $session{setting}{thumbnailSize};
- $session{form}{cid} = $collateral->get("collateralId");
- $collateral->save("image", $session{form}{thumbnailSize});
- $session{form}{name} = "untitled" if ($session{form}{name} eq "");
- while (($test) = WebGUI::SQL->quickArray("select name from collateral
- where name=".quote($session{form}{name})." and collateralId<>".quote($collateral->get("collateralId")))) {
- if ($session{form}{name} =~ /(.*)(\d+$)/) {
- $session{form}{name} = $1.($2+1);
- } elsif ($test ne "") {
- $session{form}{name} .= "2";
- }
- }
- $collateral->set($session{form});
- $session{form}{collateralType} = "";
- return www_htmlArealistCollateral();
-}
-
-#-------------------------------------------------------------------
-sub www_htmlAreaDelete {
- $session{page}{makePrintable}=1; $session{page}{printableStyleId}=10;
- return "Only Content Managers are allowed to use WebGUI Collateral" unless (WebGUI::Grouping::isInGroup(4));
- if($session{form}{cid}) { # Delete Image
- my $collateral = WebGUI::Collateral->new($session{form}{cid});
- $collateral->delete;
- } elsif($session{form}{fid} and not($session{form}{cid})) {
- return WebGUI::Privilege::vitalComponent() unless ($session{form}{fid} > 999);
- my ($parent) = WebGUI::SQL->quickArray("select parentId from collateralFolder where collateralFolderId=".quote($session{form}{fid}));
- WebGUI::SQL->write("delete from collateralFolder where collateralFolderId=".quote($session{form}{fid}));
- $session{form}{fid}=$parent;
- }
- return www_htmlArealistCollateral();
-}
-
-#-------------------------------------------------------------------
-sub www_htmlAreaCreateFolder {
- $session{page}{makePrintable}=1; $session{page}{printableStyleId}=10;
- return "Only Content Managers are allowed to use WebGUI Collateral" unless (WebGUI::Grouping::isInGroup(4));
- $session{form}{fid} = WebGUI::Id::generate();
- WebGUI::Session::setScratch("collateralFolderId",$session{form}{fid});
- WebGUI::SQL->write("insert into collateralFolder (collateralFolderId) values (".quote($session{form}{fid}).")");
- my $folderId = $session{scratch}{collateralFolderId} || 0;
- $session{form}{name} = $session{form}{folder};
- $session{form}{name} = "untitled" if ($session{form}{name} eq "");
- while (my ($test) = WebGUI::SQL->quickArray("select name from collateralFolder
- where name=".quote($session{form}{name})." and collateralFolderId<>".quote($folderId))) {
- if ($session{form}{name} =~ /(.*)(\d+$)/) {
- $session{form}{name} = $1.($2+1);
- } elsif ($test ne "") {
- $session{form}{name} .= "2";
- }
- }
- WebGUI::SQL->write("update collateralFolder set parentId=".quote($session{form}{path}).", name=".quote($session{form}{name})
- .", description=".quote($session{form}{description})." where collateralFolderId=".quote($folderId));
- $session{form}{fid} = $session{form}{path};
- return www_htmlArealistCollateral();
+ return '';
}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/insertImage/insertImage.html b/www/extras/tinymce/jscripts/tiny_mce/plugins/insertImage/insertImage.html
index a25b4c6a3..9886f40ec 100644
--- a/www/extras/tinymce/jscripts/tiny_mce/plugins/insertImage/insertImage.html
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/insertImage/insertImage.html
@@ -31,8 +31,8 @@ function Init() {
if(document.getElementById("dpicheck")) {
dpi = document.getElementById("dpicheck").width;
}
- document.getElementById("lister").src = pageURL + '?op=htmlArealistCollateral&DPI=' + dpi;
- document.getElementById("viewer").src = pageURL + '?op=htmlAreaviewCollateral&DPI=' + dpi;
+ document.getElementById("lister").src = pageURL + '?op=richEditImageTree&DPI=' + dpi;
+ document.getElementById("viewer").src = pageURL + '?op=richEditViewThumbnail&DPI=' + dpi;
var txtFileName = document.getElementById("txtFileName");
@@ -119,7 +119,7 @@ function resetForm() {
document.getElementById("thumbnailSize").value = '';
document.getElementById("description").value = '';
document.getElementById("folder").value = '';
- document.getElementById("viewer").src=window.opener.getWebguiProperty("pageURL") + "?op=htmlAreaviewCollateral";
+ document.getElementById("viewer").src=window.opener.getWebguiProperty("pageURL") + "?op=richEditImageTree";
}else {
initialLoad=false;
}
@@ -135,7 +135,7 @@ function resetForm() {