From 21ba88a34d714936f4d04e8db34ec13d6980de18 Mon Sep 17 00:00:00 2001 From: Claus Date: Fri, 15 Jan 2016 09:43:01 +0100 Subject: [PATCH 1/2] Fixes: U4-6297 Add Settings to Grid Controls Reusing the existing code for calling the dialog instead of having a separate method for this. --- .../grid/dialogs/config.controller.js | 15 ++++++++----- .../propertyeditors/grid/grid.controller.js | 22 ------------------- .../src/views/propertyeditors/grid/grid.html | 2 +- 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js index d60535acd1..396d89474b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js @@ -30,11 +30,16 @@ angular.module("umbraco") } } } - - - $scope.styles = _.filter( angular.copy($scope.dialogOptions.config.items.styles), function(item){return (item.applyTo === undefined || item.applyTo === $scope.dialogOptions.itemType); }); - $scope.config = _.filter( angular.copy($scope.dialogOptions.config.items.config), function(item){return (item.applyTo === undefined || item.applyTo === $scope.dialogOptions.itemType); }); - + + // if opening a settings dialog from a control - use only settings from this control + // otherwise use editor configuration for row/cell settings + if ($scope.dialogOptions.itemType === 'control') { + $scope.config = $scope.dialogOptions.gridItem.editor.config.settings; + $scope.styles = null; + } else { + $scope.styles = _.filter(angular.copy($scope.dialogOptions.config.items.styles), function (item) { return (item.applyTo === undefined || item.applyTo === $scope.dialogOptions.itemType); }); + $scope.config = _.filter(angular.copy($scope.dialogOptions.config.items.config), function (item) { return (item.applyTo === undefined || item.applyTo === $scope.dialogOptions.itemType); }); + } var element = $scope.dialogOptions.gridItem; if(angular.isObject(element.config)){ diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js index 87652c6aa2..7c01df416b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js @@ -307,28 +307,6 @@ angular.module("umbraco") }; - - // ********************************************* - // Control management functions - // ********************************************* - - $scope.editControlSettings = function (control) { - - var obj = $scope.model.config; - obj.items.config = control.editor.config.settings; - - dialogService.open( - { - template: "views/propertyeditors/grid/dialogs/config.html", - gridItem: { "config": (control.value ? control.value.settings : null) }, - itemType: null, - config: obj, - callback: function (data) { - control.settings = data.config; - } - }); - }; - // ********************************************* // Area management functions // ********************************************* diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html index 546f897a43..15d921b10c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html @@ -173,7 +173,7 @@
From e1ee8a1437688d455b36a6baf57cadac3c10b3d3 Mon Sep 17 00:00:00 2001 From: Claus Date: Fri, 15 Jan 2016 10:00:05 +0100 Subject: [PATCH 2/2] Fix to ensure config array is copied and not referenced. --- .../src/views/propertyeditors/grid/dialogs/config.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js index 396d89474b..e92810df6e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js @@ -34,7 +34,7 @@ angular.module("umbraco") // if opening a settings dialog from a control - use only settings from this control // otherwise use editor configuration for row/cell settings if ($scope.dialogOptions.itemType === 'control') { - $scope.config = $scope.dialogOptions.gridItem.editor.config.settings; + $scope.config = angular.copy($scope.dialogOptions.gridItem.editor.config.settings); $scope.styles = null; } else { $scope.styles = _.filter(angular.copy($scope.dialogOptions.config.items.styles), function (item) { return (item.applyTo === undefined || item.applyTo === $scope.dialogOptions.itemType); });