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 .= ''.$name.''; - $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 '
Image Manager
'; } 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() { - + +
- +
- - + + -
@@ -143,93 +143,7 @@ function resetForm() { - - - -
- - - -
- - - - - - - - - - - -
-
- Upload New Image - - - - - - - - - - - - - -
-   - - -
- Name as: - - -
- Thumbnail: - - - -  (size in pixels)  - -
-
-
-
- Create New Folder - - - - - - - - - - - -
- Name: - - -
- Description: - - - -   -
-
-
- - - - - +
@@ -240,24 +154,26 @@ function resetForm() {
Selected Image - +
+ -
Image URL:   - + + +
Alt Text: - +
-
-
+ + -
Layout @@ -285,7 +201,7 @@ function resetForm() {
@@ -304,22 +220,21 @@ function resetForm() {
- - - +
+
+
+ + + + + - - - - - - -