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
deleted file mode 100644
index d60535acd1..0000000000
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js
+++ /dev/null
@@ -1,77 +0,0 @@
-angular.module("umbraco")
- .controller("Umbraco.PropertyEditors.GridController.Dialogs.Config",
- function ($scope, $http) {
-
- var placeHolder = "{0}";
- var addModifier = function(val, modifier){
- if (!modifier || modifier.indexOf(placeHolder) < 0) {
- return val;
- } else {
- return modifier.replace(placeHolder, val);
- }
- }
-
- var stripModifier = function (val, modifier) {
- if (!val || !modifier || modifier.indexOf(placeHolder) < 0) {
- return val;
- } else {
- var paddArray = modifier.split(placeHolder);
- if(paddArray.length == 1){
- if (modifier.indexOf(placeHolder) === 0) {
- return val.slice(0, -paddArray[0].length);
- } else {
- return val.slice(paddArray[0].length, 0);
- }
- } else {
- if (paddArray[1].length === 0) {
- return val.slice(paddArray[0].length);
- }
- return val.slice(paddArray[0].length, -paddArray[1].length);
- }
- }
- }
-
-
- $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)){
- _.each($scope.config, function(cfg){
- var val = element.config[cfg.key];
- if(val){
- cfg.value = stripModifier(val, cfg.modifier);
- }
- });
- }
-
- if(angular.isObject(element.styles)){
- _.each($scope.styles, function(style){
- var val = element.styles[style.key];
- if(val){
- style.value = stripModifier(val, style.modifier);
- }
- });
- }
-
-
- $scope.saveAndClose = function(){
- var styleObject = {};
- var configObject = {};
-
- _.each($scope.styles, function(style){
- if(style.value){
- styleObject[style.key] = addModifier(style.value, style.modifier);
- }
- });
- _.each($scope.config, function (cfg) {
- if (cfg.value) {
- configObject[cfg.key] = addModifier(cfg.value, cfg.modifier);
- }
- });
-
- $scope.submit({config: configObject, styles: styleObject});
- };
-
- });
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.html
index 429bd68abd..aa96348130 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.html
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.html
@@ -1,44 +1,16 @@
-
-
-
-
-
-
-
-
-
Settings
-
-
-
-
-
-
-
-
Style
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Style
+
+
+
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 464daa6b3e..d850a1c782 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
@@ -3,6 +3,7 @@ angular.module("umbraco")
function ($scope, $http, assetsService, localizationService, $rootScope, dialogService, gridService, mediaResource, imageHelper, $timeout, umbRequestHelper) {
// Grid status variables
+ var placeHolder = "";
$scope.currentRow = null;
$scope.currentCell = null;
$scope.currentToolsControl = null;
@@ -326,19 +327,93 @@ angular.module("umbraco")
$scope.editGridItemSettings = function (gridItem, itemType) {
- dialogService.open(
- {
- template: "views/propertyeditors/grid/dialogs/config.html",
- gridItem: gridItem,
- config: $scope.model.config,
- itemType: itemType,
- callback: function (data) {
- gridItem.styles = data.styles;
- gridItem.config = data.config;
- gridItem.hasConfig = gridItemHasConfig(data.styles, data.config);
+ placeHolder = "{0}";
+ var styles = _.filter( angular.copy($scope.model.config.items.styles), function(item){return (item.applyTo === undefined || item.applyTo === itemType); });
+ var config = _.filter( angular.copy($scope.model.config.items.config), function(item){return (item.applyTo === undefined || item.applyTo === itemType); });
+
+ if(angular.isObject(gridItem.config)){
+ _.each(config, function(cfg){
+ var val = gridItem.config[cfg.key];
+ if(val){
+ cfg.value = stripModifier(val, cfg.modifier);
+ }
+ });
+ }
+
+ if(angular.isObject(gridItem.styles)){
+ _.each(styles, function(style){
+ var val = gridItem.styles[style.key];
+ if(val){
+ style.value = stripModifier(val, style.modifier);
+ }
+ });
+ }
+
+ $scope.gridItemSettingsDialog = {};
+ $scope.gridItemSettingsDialog.view = "views/propertyeditors/grid/dialogs/config.html";
+ $scope.gridItemSettingsDialog.title = "Settings";
+ $scope.gridItemSettingsDialog.styles = styles;
+ $scope.gridItemSettingsDialog.config = config;
+
+ $scope.gridItemSettingsDialog.show = true;
+
+ $scope.gridItemSettingsDialog.submit = function(model) {
+
+ var styleObject = {};
+ var configObject = {};
+
+ _.each(model.styles, function(style){
+ if(style.value){
+ styleObject[style.key] = addModifier(style.value, style.modifier);
+ }
+ });
+ _.each(model.config, function (cfg) {
+ if (cfg.value) {
+ configObject[cfg.key] = addModifier(cfg.value, cfg.modifier);
}
});
+ gridItem.styles = styleObject;
+ gridItem.config = configObject;
+ gridItem.hasConfig = gridItemHasConfig(styleObject, configObject);
+
+ $scope.gridItemSettingsDialog.show = false;
+ $scope.gridItemSettingsDialog = null;
+ };
+
+ $scope.gridItemSettingsDialog.close = function(oldModel) {
+ $scope.gridItemSettingsDialog.show = false;
+ $scope.gridItemSettingsDialog = null;
+ };
+
+ };
+
+ function stripModifier(val, modifier) {
+ if (!val || !modifier || modifier.indexOf(placeHolder) < 0) {
+ return val;
+ } else {
+ var paddArray = modifier.split(placeHolder);
+ if(paddArray.length == 1){
+ if (modifier.indexOf(placeHolder) === 0) {
+ return val.slice(0, -paddArray[0].length);
+ } else {
+ return val.slice(paddArray[0].length, 0);
+ }
+ } else {
+ if (paddArray[1].length === 0) {
+ return val.slice(paddArray[0].length);
+ }
+ return val.slice(paddArray[0].length, -paddArray[1].length);
+ }
+ }
+ }
+
+ var addModifier = function(val, modifier){
+ if (!modifier || modifier.indexOf(placeHolder) < 0) {
+ return val;
+ } else {
+ return modifier.replace(placeHolder, val);
+ }
};
function gridItemHasConfig(styles, config) {
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 25e5450245..8340d298ef 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
@@ -272,4 +272,11 @@
position="target">
+
+
+