diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.controller.js index d5525f8dd9..4957e13fad 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.controller.js @@ -4,6 +4,35 @@ angular.module("umbraco") function ($scope) { var vm = this; + vm.navigation = [ + { + "alias": "empty", + "name": "Create empty", + "icon": "icon-add", + "active": true, + "view": "" + }, + { + "alias": "clipboard", + "name": "Clipboard", + "icon": "icon-paste-in", + "view": "" + } + ]; + + vm.activeTab = vm.navigation[0]; + vm.onNavigationChanged = function(tab) { + vm.activeTab.active = false; + vm.activeTab = tab; + vm.activeTab.active = true; + } + + vm.clickClearClipboard = function() { + vm.onNavigationChanged(vm.navigation[0]); + vm.model.clipboardItems = [];// This dialog is not connected via the clipboardService events, so we need to update manually. + vm.model.clickClearClipboard(); + } + vm.model = $scope.model; vm.selectItem = function(item) { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.html index 35f7f38d97..5206c7e66d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/blockpicker/blockpicker.html @@ -4,6 +4,8 @@
-
+ +
+ + + +
+ + + +
+
+ +
+
+ + +
+
+ ng-repeat="block in vm.model.clipboardItems" + ng-click="vm.model.clickPasteItem(block)">
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/blocklist.component.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/blocklist.component.js index 21af10b792..69bfb1a71a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/blocklist.component.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/blocklist.component.js @@ -241,20 +241,19 @@ clickPasteItem: function(item) { if (item.type === "elementTypeArray") { var indexIncrementor = 0; - item.data.forEach(function (entry) { + item.pasteData.forEach(function (entry) { if (requestPasteFromClipboard(createIndex + indexIncrementor, entry)) { indexIncrementor++; } }); } else { - requestPasteFromClipboard(createIndex, item.data); + requestPasteFromClipboard(createIndex, item.pasteData); } blockPickerModel.close(); }, submit: function(blockPickerModel) { var added = false; if (blockPickerModel && blockPickerModel.selectedItem) { - console.log(blockPickerModel.selectedItem) added = addNewBlock(createIndex, blockPickerModel.selectedItem.blockConfigModel.contentTypeAlias); } blockPickerModel.close(); @@ -267,36 +266,44 @@ } }; - blockPickerModel.pasteItems = []; + blockPickerModel.clickClearClipboard = function ($event) { + clipboardService.clearEntriesOfType("elementType", vm.availableContentTypes); + clipboardService.clearEntriesOfType("elementTypeArray", vm.availableContentTypes); + }; + + blockPickerModel.clipboardItems = []; var singleEntriesForPaste = clipboardService.retriveEntriesOfType("elementType", vm.availableContentTypes); singleEntriesForPaste.forEach(function (entry) { - blockPickerModel.pasteItems.push({ - type: "elementType", - name: entry.label, - data: entry.data, - icon: entry.icon - }); + console.log("paste Entry: ", entry) + blockPickerModel.clipboardItems.push( + { + type: "elementType", + pasteData: entry.data, + blockConfigModel: modelObject.getScaffoldFor(entry.alias), + elementTypeModel: { + name: entry.label, + icon: entry.icon + } + } + ); }); var arrayEntriesForPaste = clipboardService.retriveEntriesOfType("elementTypeArray", vm.availableContentTypes); arrayEntriesForPaste.forEach(function (entry) { - blockPickerModel.pasteItems.push({ - type: "elementTypeArray", - name: entry.label, - data: entry.data, - icon: entry.icon - }); + blockPickerModel.clipboardItems.push( + { + type: "elementTypeArray", + pasteData: entry.data, + blockConfigModel: {}, // no block configuration for paste items of elementTypeArray. + elementTypeModel: { + name: entry.label, + icon: entry.icon + } + } + ); }); - blockPickerModel.clickClearPaste = function ($event) { - $event.stopPropagation(); - $event.preventDefault(); - clipboardService.clearEntriesOfType("elementType", vm.availableContentTypes); - clipboardService.clearEntriesOfType("elementTypeArray", vm.availableContentTypes); - vm.blockTypePicker.pasteItems = [];// This dialog is not connected via the clipboardService events, so we need to update manually. - }; - // open block picker overlay editorService.open(blockPickerModel); diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml index 4c74c45d88..f0625ad767 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml @@ -1791,6 +1791,7 @@ Mange hilsner fra Umbraco robotten Kopier %0% %0% fra %1% Fjern alle elementer + Ryd udklipsholder Ă…ben egenskabshandlinger diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml index a1de35c266..acd63dea4f 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml @@ -2279,6 +2279,7 @@ To manage your website, simply open the Umbraco back office and start adding con Copy %0% %0% from %1% Remove all items + Clear clipboard Open Property Actions diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml index cb00bae3d1..d370de60bf 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml @@ -2290,6 +2290,7 @@ To manage your website, simply open the Umbraco back office and start adding con Copy %0% %0% from %1% Remove all items + Clear clipboard Open Property Actions