From 32cb89bba19e893c5e81f274e16ee14dd00c3f93 Mon Sep 17 00:00:00 2001 From: Nicholas-Westby Date: Tue, 26 Apr 2016 21:40:19 -0700 Subject: [PATCH] Made cross-field dragging opt-in. --- app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs | 3 +++ app/controllers/config.controller.js | 2 +- app/controllers/controller.js | 6 +++++- app/langs/en-gb.js | 2 ++ app/langs/en-us.js | 2 ++ app/langs/en.js | 2 ++ app/views/archetype.config.fieldset.dialog.html | 3 +++ 7 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs index 663d852..dcf3785 100644 --- a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs +++ b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs @@ -34,6 +34,9 @@ namespace Archetype.Models [JsonProperty("enablePublishing")] public bool EnablePublishing { get; set; } + [JsonProperty("enableCrossDragging")] + public bool EnableCrossDragging { get; set; } + [JsonProperty("hideFieldsetControls")] public bool HideFieldsetControls { get; set; } diff --git a/app/controllers/config.controller.js b/app/controllers/config.controller.js index 6cd13d5..4960bd1 100644 --- a/app/controllers/config.controller.js +++ b/app/controllers/config.controller.js @@ -6,7 +6,7 @@ angular.module("umbraco").controller("Imulus.ArchetypeConfigController", functio //define empty items var newPropertyModel = '{"alias": "", "remove": false, "collapse": false, "label": "", "helpText": "", "dataTypeGuid": "0cc0eba1-9960-42c9-bf9b-60e150b429ae", "value": ""}'; var newFieldsetModel = '{"alias": "", "remove": false, "collapse": false, "labelTemplate": "", "icon": "", "label": "", "properties": [' + newPropertyModel + '], "group": null}'; - var defaultFieldsetConfigModel = JSON.parse('{"showAdvancedOptions": false, "startWithAddButton": false, "hideFieldsetToolbar": false, "enableMultipleFieldsets": false, "hideFieldsetControls": false, "hidePropertyLabel": false, "maxFieldsets": null, "enableCollapsing": true, "enableCloning": false, "enableDisabling": true, "enableDeepDatatypeRequests": false, "enablePublishing": false, "fieldsets": [' + newFieldsetModel + '], "fieldsetGroups": []}'); + var defaultFieldsetConfigModel = JSON.parse('{"showAdvancedOptions": false, "startWithAddButton": false, "hideFieldsetToolbar": false, "enableMultipleFieldsets": false, "hideFieldsetControls": false, "hidePropertyLabel": false, "maxFieldsets": null, "enableCollapsing": true, "enableCloning": false, "enableDisabling": true, "enableDeepDatatypeRequests": false, "enablePublishing": false, "enableCrossDragging": false, "fieldsets": [' + newFieldsetModel + '], "fieldsetGroups": []}'); //ini the model $scope.model.value = $scope.model.value || defaultFieldsetConfigModel; diff --git a/app/controllers/controller.js b/app/controllers/controller.js index 61c33a7..07981d5 100644 --- a/app/controllers/controller.js +++ b/app/controllers/controller.js @@ -51,7 +51,6 @@ angular.module("umbraco").controller("Imulus.ArchetypeController", function ($sc axis: 'y', cursor: "move", handle: ".handle", - connectWith: ".archetypeSortable", start: function(ev, ui) { draggedRteSettings = {}; $(rteClass, ui.item.parent()).each(function () { @@ -101,6 +100,11 @@ angular.module("umbraco").controller("Imulus.ArchetypeController", function ($sc } }; + // Enable cross-fieldset dragging? + if ($scope.model.config.enableCrossDragging) { + $scope.sortableOptions.connectWith = ".archetypeSortable"; + } + // Checks if the specified model's properties match all of the properties in any of // the specified fieldsets, while also checking if the fieldset aliases match. // This is an indicator of the compatibility of a fieldset model with a collection diff --git a/app/langs/en-gb.js b/app/langs/en-gb.js index 7ca10c9..a2f2b30 100644 --- a/app/langs/en-gb.js +++ b/app/langs/en-gb.js @@ -41,6 +41,8 @@ "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", "enableCloningDescription":"Enable Fieldset Cloning.", + "enableCrossDragging":"Enable Cross-Fieldset Dragging?", + "enableCrossDraggingDescription":"Allows fieldsets to be dragged into other Archetypes.", "fieldsetGroups":"Fieldset groups", "fieldsetGroupsDescription":"If you have a lot of fieldsets to choose from, you may want to consider grouping them in the fieldset picker. Once you have created your groups here, a group picker will be displayed in the fieldset editor and you can assign your fieldsets to their respective groups.", "fieldsetGroupName":"Name", diff --git a/app/langs/en-us.js b/app/langs/en-us.js index 8bd0ee0..dbdd310 100644 --- a/app/langs/en-us.js +++ b/app/langs/en-us.js @@ -41,6 +41,8 @@ "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", "enableCloningDescription":"Enable Fieldset Cloning.", + "enableCrossDragging":"Enable Cross-Fieldset Dragging?", + "enableCrossDraggingDescription":"Allows fieldsets to be dragged into other Archetypes.", "fieldsetGroups":"Fieldset groups", "fieldsetGroupsDescription":"If you have a lot of fieldsets to choose from, you may want to consider grouping them in the fieldset picker. Once you have created your groups here, a group picker will be displayed in the fieldset editor and you can assign your fieldsets to their respective groups.", "fieldsetGroupName":"Name", diff --git a/app/langs/en.js b/app/langs/en.js index 8bd0ee0..dbdd310 100644 --- a/app/langs/en.js +++ b/app/langs/en.js @@ -41,6 +41,8 @@ "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", "enableCloningDescription":"Enable Fieldset Cloning.", + "enableCrossDragging":"Enable Cross-Fieldset Dragging?", + "enableCrossDraggingDescription":"Allows fieldsets to be dragged into other Archetypes.", "fieldsetGroups":"Fieldset groups", "fieldsetGroupsDescription":"If you have a lot of fieldsets to choose from, you may want to consider grouping them in the fieldset picker. Once you have created your groups here, a group picker will be displayed in the fieldset editor and you can assign your fieldsets to their respective groups.", "fieldsetGroupName":"Name", diff --git a/app/views/archetype.config.fieldset.dialog.html b/app/views/archetype.config.fieldset.dialog.html index 8daca19..d3ec5aa 100644 --- a/app/views/archetype.config.fieldset.dialog.html +++ b/app/views/archetype.config.fieldset.dialog.html @@ -30,6 +30,9 @@
+
+ +

Multiple fieldsets