diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt
index 6b7c44ae0..70fb41c35 100644
--- a/docs/changelog/6.x.x.txt
+++ b/docs/changelog/6.x.x.txt
@@ -2,6 +2,25 @@
- Fixed a bug in the collaboration system that caused replies to fail.
- Fixed an inefficency in the asset system that caused a lot of extra work on
the server when pasting.
+ - Fixed a bug in the groups system where group expiration intervals weren't
+ saving properly.
+ - fix [ 1170879 ] "default extension" is added to asset's URL upon every Save
+ - fix [ 1170200 ] folder view template file_loop -> always current time
+ - fix [ 1170650 ] Group problem
+ - fix [ 1170245 ] paste returns deleted content
+ - Fixed a problem with the FormProcessor url sub that wouldn't allow URLs to
+ start with / or a macro.
+ - fix [ 1171447 ] Poll shows no result
+ - fix [ 1171060 ] delete file from cs
+ - fix [ 1170290 ] 6.2.x->6.5.4 doesn't add Page macro to config file
+ - fix [ 1171469 ] [edited] post insert wrong timezone
+ - Updated the macro picker in the rich editor.
+ - fix [ 1171505 ] Previewing a post appends signature every time.
+ - fix [ 1170095 ] Sort-by fields don't.
+ - fix [ 1165645 ] Search not working
+ - fix [ 1170264 ] can't copy file
+ - fix [ 1170242 ] cs email url
+ - fix [ 1171110 ] nav ancestor
6.5.4
diff --git a/docs/upgrades/upgrade_6.2.11-6.3.0.pl b/docs/upgrades/upgrade_6.2.11-6.3.0.pl
index cc265a752..574228d5c 100644
--- a/docs/upgrades/upgrade_6.2.11-6.3.0.pl
+++ b/docs/upgrades/upgrade_6.2.11-6.3.0.pl
@@ -1616,6 +1616,7 @@ $macros->{"AssetProxy"} = "AssetProxy";
$macros->{"RandomAssetProxy"} = "RandomAssetProxy";
$macros->{"FileUrl"} = "FileUrl";
$macros->{"PageUrl"} = "PageUrl";
+$macros->{"Page"} = "Page";
$conf->set("paymentPlugins"=>"ITransact");
$conf->set("macros"=>$macros);
$conf->set("assets"=>[
diff --git a/docs/upgrades/upgrade_6.5.4-6.5.5.pl b/docs/upgrades/upgrade_6.5.4-6.5.5.pl
new file mode 100644
index 000000000..c267e3b7c
--- /dev/null
+++ b/docs/upgrades/upgrade_6.5.4-6.5.5.pl
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+use lib "../../lib";
+use File::Path;
+use Getopt::Long;
+use strict;
+use WebGUI::Session;
+use WebGUI::SQL;
+
+my $configFile;
+my $quiet;
+
+GetOptions(
+ 'configFile=s'=>\$configFile,
+ 'quiet'=>\$quiet
+);
+
+WebGUI::Session::open("../..",$configFile);
+
+#--------------------------------------------
+print "\tPartitioning limbo\n" unless ($quiet);
+my $sth = WebGUI::SQL->read("select lineage from asset where state='trash'");
+while (my ($lineage) = $sth->array) {
+ WebGUI::SQL->write("update asset set state='trash-limbo' where lineage like ".quote($lineage.'%')." and state='limbo'");
+}
+$sth->finish;
+WebGUI::SQL->write("update asset set state='clipboard-limbo' where state='limbo'");
+
+
+#--------------------------------------------
+print "\tRemoving old files\n" unless ($quiet);
+# should have been removed in the 6.2-6.3 upgrade
+unlink("../../sbin/Hourly/EmptyTrash.pm");
+unlink("../../lib/WebGUI/Wobject/IndexedSearch.pm");
+rmtree("../../lib/WebGUI/Wobject/IndexedSearch");
+unlink("../../lib/WebGUI/Wobject/Product.pm");
+unlink("../../lib/WebGUI/Wobject/SyndicatedContent.pm");
+unlink("../../lib/WebGUI/Wobject/Survey.pm");
+
+WebGUI::Session::close();
+
+
diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm
index d1ba38388..2307220df 100644
--- a/lib/WebGUI/Asset.pm
+++ b/lib/WebGUI/Asset.pm
@@ -97,7 +97,6 @@ A lineage is a concatenated series of sequence numbers, each six digits long, th
newByLineage
newByPropertyHashRef
newByUrl
- republish
paste
processPropertiesFromFormPost
promote
@@ -302,14 +301,14 @@ sub checkExportPath {
=head2 cut ( )
-Removes asset from lineage, places it in clipboard state. The "gap" in the lineage is changed in state to limbo.
+Removes asset from lineage, places it in clipboard state. The "gap" in the lineage is changed in state to clipboard-limbo.
=cut
sub cut {
my $self = shift;
WebGUI::SQL->beginTransaction;
- WebGUI::SQL->write("update asset set state='limbo', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%'));
+ WebGUI::SQL->write("update asset set state='clipboard-limbo', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%')." and state='published'");
WebGUI::SQL->write("update asset set state='clipboard', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where assetId=".quote($self->getId));
WebGUI::SQL->commit;
$self->updateHistory("cut");
@@ -591,7 +590,9 @@ sub fixUrl {
if (length($url) > 250) {
$url = substr($url,220);
}
- $url .= ".".$session{setting}{urlExtension} if ($url =~ /\./ && $session{setting}{urlExtension} ne "");
+ if ($session{setting}{urlExtension} ne "" && !($url =~ /\./)) {
+ $url .= ".".$session{setting}{urlExtension};
+ }
my ($test) = WebGUI::SQL->quickArray("select url from asset where assetId<>".quote($self->getId)." and url=".quote($url));
if ($test) {
my @parts = split(/\./,$url);
@@ -812,6 +813,10 @@ sub getAssetManagerControl {
$output .= "var manager = new AssetManager(assets,columnHeadings,labels,crumbtrail);\n";
$output .= "manager.assetType='".$controlType."';\n" if (defined $controlType);
$output .= "manager.disableDisplay(0);\n" if (defined $removeRank);
+ if ($controlType eq "ManageTrash" || $controlType eq "ManageClipboard") {
+ # $output .= "manager.displayCrumbTrail = false;\n";
+ # $output .= "manager.sortEnabled = false;\n";
+ }
$output .= "manager.renderAssets();\n";
$output .= "\n";
return $output;
@@ -1177,7 +1182,7 @@ A hash reference comprising modifiers to relative listing. Rules include:
=head4 statesToInclude
-An array reference containing a list of states that should be returned. Defaults to 'published'. Options include 'published', 'trash', 'cliboard', and 'limbo'.
+An array reference containing a list of states that should be returned. Defaults to 'published'. Options include 'published', 'trash', 'cliboard', 'clipboard-limbo' and 'trash-limbo'.
=head4 endingLineageLength
@@ -1846,20 +1851,6 @@ sub newByUrl {
#-------------------------------------------------------------------
-=head2 republish ( )
-
-Sets Asset properties state to published.
-
-=cut
-
-sub republish {
- my $self = shift;
- WebGUI::SQL->write("update asset set state='published', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%'));
- $self->{_properties}{state} = "published";
-}
-
-#-------------------------------------------------------------------
-
=head2 paste ( assetId )
Returns 1 if can paste an asset to a Parent. Sets the Asset to published. Otherwise returns 0.
@@ -1873,9 +1864,10 @@ Alphanumeric ID tag of Asset.
sub paste {
my $self = shift;
my $assetId = shift;
- my $pastedAsset = WebGUI::Asset->new($assetId);
+ my $pastedAsset = WebGUI::Asset->newByDynamicClass($assetId);
if ($self->getId eq $pastedAsset->get("parentId") || $pastedAsset->setParent($self)) {
- $pastedAsset->republish;
+ WebGUI::SQL->write("update asset set state='published', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%')." and (state='clipboard' or state='clipboard-limbo')");
+ $self->{_properties}{state} = "published";
$pastedAsset->updateHistory("pasted to parent ".$self->getId);
return 1;
}
@@ -1905,7 +1897,11 @@ sub processPropertiesFromFormPost {
}
$data{title} = "Untitled" unless ($data{title});
$data{menuTitle} = $data{title} unless ($data{menuTitle});
- $data{url} = $self->getParent->get("url").'/'.$data{menuTitle} unless ($data{url});
+ unless ($data{url}) {
+ $data{url} = $self->getParent->get("url");
+ $data{url} =~ s/(.*)\..*/$1/;
+ $data{url} .= '/'.$data{menuTitle};
+ }
$self->update(\%data);
foreach my $form (keys %{$session{form}}) {
if ($form =~ /^metadata_(\d+)$/) {
@@ -1992,6 +1988,20 @@ sub promote {
#-------------------------------------------------------------------
+=head2 publish ( )
+
+Sets an asset and it's descendants to a state of 'published' regardless of it's current state.
+
+=cut
+
+sub publish {
+ my $self = shift;
+ WebGUI::SQL->write("update asset set state='published', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%'));
+ $self->{_properties}{state} = "published";
+}
+
+#-------------------------------------------------------------------
+
=head2 purge ( )
Returns 1. Deletes an asset from tables and removes anything bound to that asset.
@@ -2022,7 +2032,7 @@ Returns 1. Purges self and all descendants.
sub purgeTree {
my $self = shift;
- my $descendants = $self->getLineage(["self","descendants"],{returnObjects=>1, invertTree=>1, statesToInclude=>['trash','limbo']});
+ my $descendants = $self->getLineage(["self","descendants"],{returnObjects=>1, invertTree=>1, statesToInclude=>['trash','trash-limbo']});
foreach my $descendant (@{$descendants}) {
$descendant->purge;
}
@@ -2153,14 +2163,14 @@ sub swapRank {
=head2 trash ( )
-Removes asset from lineage, places it in trash state. The "gap" in the lineage is changed in state to limbo.
+Removes asset from lineage, places it in trash state. The "gap" in the lineage is changed in state to trash-limbo.
=cut
sub trash {
my $self = shift;
WebGUI::SQL->beginTransaction;
- WebGUI::SQL->write("update asset set state='limbo', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%'));
+ WebGUI::SQL->write("update asset set state='trash-limbo', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where lineage like ".quote($self->get("lineage").'%'));
WebGUI::SQL->write("update asset set state='trash', lastUpdatedBy=".quote($session{user}{userId}).", lastUpdated=".time()." where assetId=".quote($self->getId));
WebGUI::SQL->commit;
$self->{_properties}{state} = "trash";
@@ -2263,7 +2273,11 @@ Returns "".
=cut
sub view {
- return "";
+ my $self = shift;
+ if ($session{var}{adminOn}) {
+ return $self->getToolbar;
+ }
+ return undef;
}
#-------------------------------------------------------------------
@@ -2329,7 +2343,7 @@ sub www_copy {
Copies to clipboard assets in a list, then returns self calling method www_manageAssets(), if canEdit. Otherwise returns AdminConsole rendered insufficient privilege.
-=cut
+cut
sub www_copyList {
my $self = shift;
@@ -3220,6 +3234,43 @@ sub www_promote {
}
+#-------------------------------------------------------------------
+
+=head2 www_restoreList ( )
+
+Restores a piece of content from the trash back to it's original location.
+
+=cut
+
+sub www_purgeList {
+ my $self = shift;
+ return WebGUI::Privilege::insufficient() unless $self->canEdit;
+ foreach my $id ($session{cgi}->param("assetId")) {
+ my $asset = WebGUI::Asset->newByDynamicClass($id);
+ $asset->purge;
+ }
+ return $self->www_manageTrash();
+}
+
+#-------------------------------------------------------------------
+
+=head2 www_restoreList ( )
+
+Restores a piece of content from the trash back to it's original location.
+
+=cut
+
+sub www_restoreList {
+ my $self = shift;
+ return WebGUI::Privilege::insufficient() unless $self->canEdit;
+ foreach my $id ($session{cgi}->param("assetId")) {
+ my $asset = WebGUI::Asset->newByDynamicClass($id);
+ $asset->publish;
+ }
+ return $self->www_manageTrash();
+}
+
+
#-------------------------------------------------------------------
=head2 www_setParent ( )
diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm
index 9b70ba259..ea6e4e0d8 100644
--- a/lib/WebGUI/Asset/File.pm
+++ b/lib/WebGUI/Asset/File.pm
@@ -95,6 +95,7 @@ sub duplicate {
my $newAsset = $self->SUPER::duplicate(shift);
my $newStorage = $self->getStorageLocation->copy;
$newAsset->update({storageId=>$newStorage->getId,olderVersions=>''});
+ return $newAsset;
}
diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm
index 997a00380..03d02461e 100644
--- a/lib/WebGUI/Asset/Post.pm
+++ b/lib/WebGUI/Asset/Post.pm
@@ -394,7 +394,7 @@ sub getTemplateVars {
$var{"reply.url"} = $self->getReplyUrl;
$var{'reply.withquote.url'} = $self->getReplyUrl(1);
- $var{'url'} = $self->getUrl.'#'.$self->getId;
+ $var{'url'} = WebGUI::URL::getSiteURL().$self->getUrl.'#'.$self->getId;
$var{'rating.value'} = $self->get("rating")+0;
$var{'rate.url.1'} = $self->getRateUrl(1);
@@ -467,7 +467,9 @@ sub getUploadControl {
if ($self->get("storageId")) {
my $i;
foreach my $filename (@{$self->getStorageLocation->getFiles}) {
- $uploadControl .= ''.$filename.'
';
+ $uploadControl .= deleteIcon("func=deleteFile&filename=".$filename,$self->get("url"),WebGUI::International::get("delete file warning","Collaboration"))
+ .' '.$filename.''
+ .'
';
$i++;
}
return $uploadControl unless ($i < $maxAttachments);
@@ -650,7 +652,7 @@ sub processPropertiesFromFormPost {
$data{endDate} = $self->getThread->getParent->get("endDate") unless ($session{form}{endDate});
($data{synopsis}, $data{content}) = $self->getSynopsisAndContentFromFormPost;
if ($self->getThread->getParent->get("addEditStampToPosts")) {
- $data{content} .= "\n\n --- (Edited on ".WebGUI::DateTime::epochToHuman()." by ".$session{user}{alias}.") --- \n";
+ $data{content} .= "\n\n --- (Edited on ".WebGUI::DateTime::epochToHuman(undef,"%z %Z [GMT%O]")." by ".$session{user}{alias}.") --- \n";
if ($self->getValue("contentType") eq "mixed" || $self->getValue("contentType") eq "html") {
$data{content} = '
'.$data{content}.'
'; } @@ -809,6 +811,14 @@ sub www_approve { return $self->www_view; } +#------------------------------------------------------------------- +sub www_deleteFile { + my $self = shift; + $self->getStorageLocation->deleteFile($session{form}{filename}) if $self->canEdit; + return $self->www_edit; +} + + #------------------------------------------------------------------- =head2 www_deny ( ) @@ -883,7 +893,7 @@ sub www_edit { value=>$session{form}{subscribe} || 1 }); } - $content .= "\n\n".$session{user}{signature} if ($session{user}{signature}); + $content .= "\n\n".$session{user}{signature} if ($session{user}{signature} && !$session{form}{content}); } else { # edit return WebGUI::Privilege::insufficient() unless ($self->canEdit); $var{'form.header'} = WebGUI::Form::formHeader({action=>$self->getUrl}) diff --git a/lib/WebGUI/Asset/Redirect.pm b/lib/WebGUI/Asset/Redirect.pm index 44ff2e038..40aef6ad0 100644 --- a/lib/WebGUI/Asset/Redirect.pm +++ b/lib/WebGUI/Asset/Redirect.pm @@ -127,6 +127,7 @@ sub getName { } + #------------------------------------------------------------------- sub www_edit { my $self = shift; @@ -145,10 +146,10 @@ A web executable method that redirects the user to the specified page, or displa sub www_view { my $self = shift; if ($session{var}{adminOn}) { - return $self->www_edit; + return $self->getContainer->www_view; } WebGUI::HTTP::setRedirect($self->get("redirectUrl")); - return ""; + return undef; } diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 48ce040f6..c05c24b03 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -100,6 +100,18 @@ sub definition { } +#------------------------------------------------------------------- + +=head2 deletePageCache ( ) + +Deletes the rendered page cache for this wobject. + +=cut + +sub deletePageCache { + my $self = shift; + WebGUI::Cache->new("wobject_".$self->getId."_".$session{user}{userId})->delete; +} #------------------------------------------------------------------- @@ -395,6 +407,12 @@ sub processMacros { } +#------------------------------------------------------------------- +sub processPropertiesFromFormPost { + my $self = shift; + $self->SUPER::processPropertiesFromFormPost; + $self->deletePageCache; +} #------------------------------------------------------------------- @@ -553,13 +571,14 @@ sub setCollateral { #------------------------------------------------------------------- -=head2 www_view ( ) +=head2 www_view ( [ disableCache ] ) Renders self->view based upon current style, subject to timeouts. Returns Privilege::noAccess() if canView is False. =cut sub www_view { my $self = shift; + my $disableCache = shift; return WebGUI::Privilege::noAccess() unless $self->canView; if ($self->get("encryptPage") && $session{env}{HTTPS} ne "on") { WebGUI::HTTP::setRedirect($self->getUrl); @@ -569,12 +588,12 @@ sub www_view { my $cache; my $output; my $useCache = ( - $session{form}{op} eq "" && $session{form}{pn} eq "" && - ( - ( $self->get("cacheTimeout") > 10 && $session{user}{userId} ne '1') || - ( $self->get("cacheTimeoutVisitor") > 10 && $session{user}{userId} eq '1') - ) && - not $session{var}{adminOn} + $session{form}{op} eq "" && $session{form}{pn} eq "" + && ( + ( $self->get("cacheTimeout") > 10 && $session{user}{userId} ne '1') + || ( $self->get("cacheTimeoutVisitor") > 10 && $session{user}{userId} eq '1') + ) + && !( $session{var}{adminOn} || $disableCache) ); if ($useCache) { $cache = WebGUI::Cache->new("wobject_".$self->getId."_".$session{user}{userId}); diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index c971cadd7..259c884dd 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -1025,6 +1025,14 @@ sub _xml_encode { return $text; } +#------------------------------------------------------------------- +sub www_view { + my $self = shift; + my $disableCache = ($session{form}{sortBy} ne ""); + return $self->SUPER::www_view($disableCache); +} + + #------------------------------------------------------------------- # print out RSS 2.0 feed describing the items visible on the first page sub www_viewRSS { @@ -1078,6 +1086,7 @@ sub www_viewRSS { + 1; diff --git a/lib/WebGUI/Asset/Wobject/Folder.pm b/lib/WebGUI/Asset/Wobject/Folder.pm index dc92c443f..17ca9bb26 100644 --- a/lib/WebGUI/Asset/Wobject/Folder.pm +++ b/lib/WebGUI/Asset/Wobject/Folder.pm @@ -159,7 +159,7 @@ sub view { title=>$child->get("title"), synopsis=>$child->get("synopsis"), size=>WebGUI::Utility::formatBytes($child->get("assetSize")), - "date.epoch"=>$child->get("dateStamp"), + "date.epoch"=>$child->get("lastUpdated"), "icon.small"=>$child->getIcon(1), "icon.big"=>$child->getIcon, type=>$child->getName, diff --git a/lib/WebGUI/Asset/Wobject/IndexedSearch.pm b/lib/WebGUI/Asset/Wobject/IndexedSearch.pm index ccb2a320d..3ad9590fd 100644 --- a/lib/WebGUI/Asset/Wobject/IndexedSearch.pm +++ b/lib/WebGUI/Asset/Wobject/IndexedSearch.pm @@ -387,6 +387,13 @@ sub www_edit { return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("26","IndexedSearch")); } +#------------------------------------------------------------------- +sub www_view { + my $self = shift; + return $self->SUPER::www_view(1); +} + + #------------------------------------------------------------------- sub _buildPageList { my ($self, @userSpecifiedRoots, @roots, @allowedRoots, $pageId, @pages); diff --git a/lib/WebGUI/Asset/Wobject/Navigation.pm b/lib/WebGUI/Asset/Wobject/Navigation.pm index a9bcaa97e..07b9bbb0f 100644 --- a/lib/WebGUI/Asset/Wobject/Navigation.pm +++ b/lib/WebGUI/Asset/Wobject/Navigation.pm @@ -340,8 +340,8 @@ sub view { $pageData->{"page.isChild"} = ($asset->get("parentId") eq $current->getId); $pageData->{"page.isParent"} = ($asset->getId eq $current->get("parentId")); $pageData->{"page.isCurrent"} = ($asset->getId eq $current->getId); - $pageData->{"page.isDescendant"} = ( $currentLineage =~ m/^$pageLineage/ && !$pageData->{"page.isCurrent"}); - $pageData->{"page.isAnscestor"} = ( $pageLineage =~ m/^$currentLineage/ && !$pageData->{"page.isCurrent"}); + $pageData->{"page.isDescendant"} = ( $pageLineage =~ m/^$currentLineage/ && !$pageData->{"page.isCurrent"}); + $pageData->{"page.isAncestor"} = ( $currentLineage =~ m/^$pageLineage/ && !$pageData->{"page.isCurrent"}); my $currentBranchLineage = substr($currentLineage,0,12); $pageData->{"page.inBranchRoot"} = ($currentBranchLineage =~ m/^$pageLineage/); $pageData->{"page.isSibling"} = ( diff --git a/lib/WebGUI/Asset/Wobject/Poll.pm b/lib/WebGUI/Asset/Wobject/Poll.pm index be520f607..a827de1e2 100644 --- a/lib/WebGUI/Asset/Wobject/Poll.pm +++ b/lib/WebGUI/Asset/Wobject/Poll.pm @@ -368,6 +368,7 @@ sub www_vote { $u = WebGUI::User->new($session{user}{userId}); $u->karma($self->get("karmaPerVote"),"Poll (".$self->getId.")","Voted on this poll."); } + $self->deletePageCache; } return $self->getContainer->www_view; } diff --git a/lib/WebGUI/FormProcessor.pm b/lib/WebGUI/FormProcessor.pm index 0e2d5b945..2b38f4eec 100644 --- a/lib/WebGUI/FormProcessor.pm +++ b/lib/WebGUI/FormProcessor.pm @@ -621,7 +621,7 @@ sub url { return $session{form}{$_[0]}; } elsif (_checkEmailAddy($session{form}{$_[0]})) { return "mailto:".$session{form}{$_[0]}; - } elsif ($session{form}{$_[0]} =~ /:\/\//) { + } elsif ($session{form}{$_[0]} =~ /^\// || $session{form}{$_[0]} =~ /:\/\// || $session{form}{$_[0]} =~ /^\^/) { return $session{form}{$_[0]}; } return "http://".$session{form}{$_[0]}; diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm index b55c8b9cc..65ab30a19 100644 --- a/lib/WebGUI/Operation/Group.pm +++ b/lib/WebGUI/Operation/Group.pm @@ -265,7 +265,11 @@ sub www_editGroup { $f->readOnly($g->groupId,WebGUI::International::get(379)); $f->text("groupName",WebGUI::International::get(84),$g->name); $f->textarea("description",WebGUI::International::get(85),$g->description); - $f->interval("expireOffset",WebGUI::International::get(367), WebGUI::DateTime::secondsToInterval($g->expireOffset)); + $f->interval( + -name=>"expireOffset", + -label=>WebGUI::International::get(367), + -value=>$g->expireOffset + ); $f->yesNo( -name=>"expireNotify", -value=>$g->expireNotify, @@ -332,7 +336,11 @@ sub www_editGroup { -value=>$g->dbQuery, -label=>WebGUI::International::get(1005) ); - $f->interval("dbCacheTimeout",WebGUI::International::get(1004), WebGUI::DateTime::secondsToInterval($g->dbCacheTimeout)); + $f->interval( + -name=>"dbCacheTimeout", + -label=>WebGUI::International::get(1004), + -value=>$g->dbCacheTimeout + ); $f->submit; $output .= $f->print; return _submenu($output,'87',"group add/edit"); diff --git a/lib/WebGUI/i18n/English/Collaboration.pm b/lib/WebGUI/i18n/English/Collaboration.pm index 83678e0a1..b240730cc 100644 --- a/lib/WebGUI/i18n/English/Collaboration.pm +++ b/lib/WebGUI/i18n/English/Collaboration.pm @@ -1,6 +1,11 @@ package WebGUI::i18n::English::Collaboration; our $I18N = { + 'delete file warning' => { + message => q|Are you sure you wish to delete this file?|, + lastUpdated => 1109618544, + }, + 'display last reply' => { message => q|Display last reply?|, lastUpdated => 1109618544, diff --git a/www/extras/assetManager/ManageTrash.js b/www/extras/assetManager/ManageTrash.js index bd6c425c9..741b974ae 100644 --- a/www/extras/assetManager/ManageTrash.js +++ b/www/extras/assetManager/ManageTrash.js @@ -3,12 +3,12 @@ //Creates a new asset object. function ManageTrash() { var asset = new Asset(); - asset.dragEnabled = false; + asset.allowMultiSelect = true; //displays the right click context menu asset.getContextMenu = function () { var arr = new Array(); - arr[arr.length] = new ContextMenuItem(this.labels["cut"],"javascript:" + this.evalReference() + ".cut()"); + arr[arr.length] = new ContextMenuItem(this.labels["restore"],"javascript:" + this.evalReference() + ".restore()"); arr[arr.length] = new ContextMenuItem("
","");
arr[arr.length] = new ContextMenuItem(this.labels["purge"],"javascript:" + this.evalReference() + ".purge()");
return arr;
@@ -19,6 +19,10 @@ asset.purge = function() {
location.href = this.parent.getWrappedURL() + "func=purgeList" + AssetManager_getManager().getSelectedAssetIds();
}
+asset.restore = function() {
+ location.href = this.parent.getWrappedURL() + "func=restoreList" + AssetManager_getManager().getSelectedAssetIds();
+}
+
return asset;
}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/collateral/collateral.html b/www/extras/tinymce/jscripts/tiny_mce/plugins/collateral/collateral.html
index 00da4038d..ab31607eb 100644
--- a/www/extras/tinymce/jscripts/tiny_mce/plugins/collateral/collateral.html
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/collateral/collateral.html
@@ -21,16 +21,11 @@ function returnSelected(in_values) {
@@ -56,7 +51,7 @@ function returnSelected(in_values) {
-
+
@@ -87,10 +82,10 @@ function returnSelected(in_values) {
-
+
-