diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index c0d381a7c..4eecebfb4 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -4,6 +4,7 @@ - fixed a bug in the project management app that was causing a no privilege error when trying to display the view. - fixed various bugs in the project management app. - added right click ment to project management app. + - Added duplicate button in asset manager as discussed in Community IRC. 6.99.1 - Bugfixes on dashboard to fix template errors. diff --git a/etc/WebGUI.conf.original b/etc/WebGUI.conf.original index 55697e195..fbecaf859 100644 --- a/etc/WebGUI.conf.original +++ b/etc/WebGUI.conf.original @@ -267,7 +267,6 @@ "GroupText" : "GroupText", "H" : "H_homeLink", "International" : "International", - "JavaScript" : "JavaScript", "L" : "L_loginBox", "LastModified" : "LastModified", "LoginToggle" : "LoginToggle", @@ -276,10 +275,8 @@ "PageUrl" : "PageUrl", "RandomAssetProxy" : "RandomAssetProxy", "RandomThread" : "RandomThread", - "RawHeadTags" : "RawHeadTags", "RootTitle" : "RootTitle", "Spacer" : "Spacer", - "StyleSheet" : "StyleSheet", "SubscriptionItem" : "SubscriptionItem", "SubscriptionItemPurchaseUrl" : "SubscriptionItemPurchaseUrl", "Thumbnail" : "Thumbnail", diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 0cb9eab73..82cfc2a44 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1137,6 +1137,7 @@ sub manageAssets { assetManager.AddButton("'.$i18n->get("delete").'","deleteList","manageAssets"); assetManager.AddButton("'.$i18n->get("cut").'","cutList","manageAssets"); assetManager.AddButton("'.$i18n->get("copy").'","copyList","manageAssets"); + assetManager.AddButton("'.$i18n->get("duplicate").'","duplicateList","manageAssets"); assetManager.initializeDragEventHandlers(); assetManager.Write(); var assetListSelectAllToggle = false; diff --git a/lib/WebGUI/AssetClipboard.pm b/lib/WebGUI/AssetClipboard.pm index 2be9078ff..b2d091cb2 100644 --- a/lib/WebGUI/AssetClipboard.pm +++ b/lib/WebGUI/AssetClipboard.pm @@ -278,6 +278,32 @@ sub www_cutList { #------------------------------------------------------------------- +=head2 www_duplicateList ( ) + +Creates a bunch of duplicate assets under the same parent. + +=cut + +sub www_duplicateList { + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + foreach my $assetId ($self->session->form->param("assetId")) { + my $asset = WebGUI::Asset->newByDynamicClass($self->session,$assetId); + if ($asset->canEdit) { + my $newAsset = $asset->duplicate; + $newAsset->update({ title=>$newAsset->getTitle.' (copy)'}); + $newAsset->setParent($asset->getParent); + } + } + if ($self->session->form->process("proceed") ne "") { + my $method = "www_".$self->session->form->process("proceed"); + return $self->$method(); + } + return $self->www_manageAssets(); +} + +#------------------------------------------------------------------- + =head2 www_emptyClipboard ( ) Moves assets in clipboard to trash. Returns www_manageClipboard() when finished. If isInGroup(4) returns False, insufficient privilege is rendered. diff --git a/lib/WebGUI/i18n/English/Asset.pm b/lib/WebGUI/i18n/English/Asset.pm index 3f4017d54..12bc99b24 100644 --- a/lib/WebGUI/i18n/English/Asset.pm +++ b/lib/WebGUI/i18n/English/Asset.pm @@ -175,6 +175,12 @@ our $I18N = { context => q|Used in asset context menus.| }, + 'duplicate' => { + message => q|Duplicate|, + lastUpdated => 0, + context => q|Used in asset context menus.| + }, + 'copy' => { message => q|Copy|, lastUpdated => 0,