From 275b5d22076a457a28102d582c882fed27dd92da Mon Sep 17 00:00:00 2001 From: kjac Date: Sun, 4 Oct 2015 21:39:50 +0200 Subject: [PATCH 1/4] Introduce fieldset groups --- .../Archetype.Umbraco.csproj | 1 + .../Models/ArchetypePreValue.cs | 3 ++ .../Models/ArchetypePreValueFieldset.cs | 3 ++ .../Models/ArchetypePreValueFieldsetGroup.cs | 10 +++++ app/controllers/config.controller.js | 26 +++++++++-- app/controllers/controller.js | 29 +++++++++---- app/langs/da-dk.js | 6 ++- app/langs/da.js | 6 ++- app/langs/de-de.js | 6 ++- app/langs/de.js | 6 ++- app/langs/en-gb.js | 6 ++- app/langs/en-us.js | 6 ++- app/langs/en.js | 6 ++- app/langs/es-es.js | 6 ++- app/langs/es.js | 6 ++- app/langs/fr-fr.js | 6 ++- app/langs/he-il.js | 6 ++- app/langs/it-it.js | 6 ++- app/langs/ja-jp.js | 6 ++- app/langs/ko-kr.js | 6 ++- app/langs/nb-no.js | 6 ++- app/langs/nl-nl.js | 6 ++- app/langs/pl-pl.js | 6 ++- app/langs/pt-br.js | 6 ++- app/langs/ru-ru.js | 6 ++- app/langs/sv-se.js | 6 ++- app/langs/zh-cn.js | 6 ++- app/less/archetype.less | 43 ++++++++++++++++++- app/views/archetype.config.html | 20 +++++++++ app/views/archetype.default.html | 11 ++++- 30 files changed, 236 insertions(+), 36 deletions(-) create mode 100644 app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldsetGroup.cs diff --git a/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj b/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj index d96c351..0a7417f 100644 --- a/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj +++ b/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj @@ -239,6 +239,7 @@ + diff --git a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs index fa8bd12..cbf4937 100644 --- a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs +++ b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValue.cs @@ -38,6 +38,9 @@ namespace Archetype.Models [JsonProperty("fieldsets")] public IEnumerable Fieldsets { get; set; } + [JsonProperty("fieldsetGroups")] + public IEnumerable FieldsetGroups { get; set; } + [JsonProperty("hidePropertyLabels")] public bool HidePropertyLabels { get; set; } diff --git a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldset.cs b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldset.cs index b65683b..0bfd3c8 100644 --- a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldset.cs +++ b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldset.cs @@ -25,5 +25,8 @@ namespace Archetype.Models [JsonProperty("properties")] public IEnumerable Properties { get; set; } + + [JsonProperty("group")] + public ArchetypePreValueFieldsetGroup Group { get; set; } } } diff --git a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldsetGroup.cs b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldsetGroup.cs new file mode 100644 index 0000000..e62e69c --- /dev/null +++ b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePreValueFieldsetGroup.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace Archetype.Models +{ + public class ArchetypePreValueFieldsetGroup + { + [JsonProperty("name")] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/app/controllers/config.controller.js b/app/controllers/config.controller.js index 2eae9bd..00d5826 100644 --- a/app/controllers/config.controller.js +++ b/app/controllers/config.controller.js @@ -5,8 +5,8 @@ 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 + ']}'; - 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, "fieldsets": [' + newFieldsetModel + ']}'); + 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, "fieldsets": [' + newFieldsetModel + '], "fieldsetGroups": []}'); //ini the model $scope.model.value = $scope.model.value || defaultFieldsetConfigModel; @@ -234,12 +234,32 @@ angular.module("umbraco").controller("Imulus.ArchetypeConfigController", functio } } + //handles a fieldset group add + $scope.addFieldsetGroup = function () { + $scope.archetypeConfigRenderModel.fieldsetGroups.push({ name: "" }); + } + + //handles a fieldset group removal + $scope.removeFieldsetGroup = function ($index) { + $scope.archetypeConfigRenderModel.fieldsetGroups.splice($index, 1); + } + //helper to ini the render model function initConfigRenderModel() { $scope.archetypeConfigRenderModel = $scope.model.value; + if (!$scope.archetypeConfigRenderModel.fieldsetGroups) { + $scope.archetypeConfigRenderModel.fieldsetGroups = []; + } - _.each($scope.archetypeConfigRenderModel.fieldsets, function(fieldset){ + _.each($scope.archetypeConfigRenderModel.fieldsets, function(fieldset) { + + if (fieldset.group) { + // tie the fieldset group back up to the actual group object, not the clone that's been persisted + fieldset.group = _.find($scope.archetypeConfigRenderModel.fieldsetGroups, function(fieldsetGroup) { + return fieldsetGroup.name == fieldset.group.name; + }) + } fieldset.remove = false; if (fieldset.alias.length > 0) diff --git a/app/controllers/controller.js b/app/controllers/controller.js index 5458bb8..79ef6e3 100644 --- a/app/controllers/controller.js +++ b/app/controllers/controller.js @@ -1,4 +1,4 @@ -angular.module("umbraco").controller("Imulus.ArchetypeController", function ($scope, $http, assetsService, angularHelper, notificationsService, $timeout, fileManager, entityResource, archetypeService, archetypeLabelService, archetypeCacheService, archetypePropertyEditorResource) { +angular.module("umbraco").controller("Imulus.ArchetypeController", function ($scope, $http, $filter, assetsService, angularHelper, notificationsService, $timeout, fileManager, entityResource, archetypeService, archetypeLabelService, archetypeCacheService, archetypePropertyEditorResource) { //$scope.model.value = ""; $scope.model.hideLabel = $scope.model.config.hideLabel == 1; @@ -88,27 +88,38 @@ angular.module("umbraco").controller("Imulus.ArchetypeController", function ($sc return; } - $scope.overlayMenu.fieldsets = []; + var allFieldsets = []; _.each($scope.model.config.fieldsets, function (fieldset) { var icon = fieldset.icon; - $scope.overlayMenu.fieldsets.push({ + allFieldsets.push({ alias: fieldset.alias, label: fieldset.label, - icon: (fieldset.icon || "icon-document-dashed-line") // default icon if none is chosen + icon: (fieldset.icon || "icon-document-dashed-line"), // default icon if none is chosen + group: fieldset.group ? fieldset.group.name : null }); - $scope.overlayMenu.index = $index; }); - // sanity check - if ($scope.overlayMenu.fieldsets.length == 0) { + if (allFieldsets == 0) { return; } - if ($scope.overlayMenu.fieldsets.length == 1) { + if (allFieldsets.length == 1) { // only one fieldset type - no need to display the picker - $scope.addRow($scope.overlayMenu.fieldsets[0].alias, $index); + $scope.addRow(allFieldsets[0].alias, $index); return; } + $scope.overlayMenu.fieldsetGroups = []; + if ($scope.model.config.fieldsetGroups && $scope.model.config.fieldsetGroups.length > 0) { + _.each($scope.model.config.fieldsetGroups, function (fieldsetGroup) { + $scope.overlayMenu.fieldsetGroups.push({ name: fieldsetGroup.name, fieldsets: $filter("filter")(allFieldsets, { group: fieldsetGroup.name }) }); + }) + } + else { + $scope.overlayMenu.fieldsetGroups.push({ name: "", fieldsets: allFieldsets }); + } + $scope.overlayMenu.index = $index; + $scope.overlayMenu.activeFieldsetGroup = $scope.overlayMenu.fieldsetGroups[0]; + // calculate overlay position // - yeah... it's jQuery (ungh!) but that's how the Grid does it. var offset = $(event.target).offset(); diff --git a/app/langs/da-dk.js b/app/langs/da-dk.js index 9c686e4..f439e02 100644 --- a/app/langs/da-dk.js +++ b/app/langs/da-dk.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "fieldsetGroups":"Fieldset-grupper", + "fieldsetGroupsDescription":"Hvis du har mange fieldsets, skal du måske overveje at gruppere dem i fieldset-vælgeren. Når du først har defineret dine grupper her, vil en gruppe-vælger dukke op i fieldset-editoren, og du kan derefter vælge grupper for alle dine fieldsets.", + "fieldsetGroupName":"Navn", + "addFieldsetGroup":"Tilføj gruppe" } diff --git a/app/langs/da.js b/app/langs/da.js index 9c686e4..41e15e6 100644 --- a/app/langs/da.js +++ b/app/langs/da.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "fieldsetGroups":"Fieldset-grupper", + "fieldsetGroupsDescription":"Hvis du har mange fieldsets, skal du måske overveje at gruppere dem i fieldset-vælgeren. Når du først har defineret dine grupper her, vil en gruppe-vælger dukke op i fieldset-editoren, og du kan derefter vælge grupper for alle dine fieldsets.", + "fieldsetGroupName":"Navn", + "addFieldsetGroup":"Tilføj gruppe" } diff --git a/app/langs/de-de.js b/app/langs/de-de.js index fc06d93..8bd0ee0 100644 --- a/app/langs/de-de.js +++ b/app/langs/de-de.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/de.js b/app/langs/de.js index fc06d93..8bd0ee0 100644 --- a/app/langs/de.js +++ b/app/langs/de.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/en-gb.js b/app/langs/en-gb.js index 61f2847..7ca10c9 100644 --- a/app/langs/en-gb.js +++ b/app/langs/en-gb.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/en-us.js b/app/langs/en-us.js index fc06d93..8bd0ee0 100644 --- a/app/langs/en-us.js +++ b/app/langs/en-us.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/en.js b/app/langs/en.js index fc06d93..8bd0ee0 100644 --- a/app/langs/en.js +++ b/app/langs/en.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/es-es.js b/app/langs/es-es.js index 3197b47..8bd0ee0 100644 --- a/app/langs/es-es.js +++ b/app/langs/es-es.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/es.js b/app/langs/es.js index 3197b47..8bd0ee0 100644 --- a/app/langs/es.js +++ b/app/langs/es.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/fr-fr.js b/app/langs/fr-fr.js index 3197b47..8bd0ee0 100644 --- a/app/langs/fr-fr.js +++ b/app/langs/fr-fr.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/he-il.js b/app/langs/he-il.js index 3197b47..8bd0ee0 100644 --- a/app/langs/he-il.js +++ b/app/langs/he-il.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/it-it.js b/app/langs/it-it.js index 3197b47..8bd0ee0 100644 --- a/app/langs/it-it.js +++ b/app/langs/it-it.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/ja-jp.js b/app/langs/ja-jp.js index 3197b47..8bd0ee0 100644 --- a/app/langs/ja-jp.js +++ b/app/langs/ja-jp.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/ko-kr.js b/app/langs/ko-kr.js index 3197b47..8bd0ee0 100644 --- a/app/langs/ko-kr.js +++ b/app/langs/ko-kr.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/nb-no.js b/app/langs/nb-no.js index 3197b47..8bd0ee0 100644 --- a/app/langs/nb-no.js +++ b/app/langs/nb-no.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/nl-nl.js b/app/langs/nl-nl.js index 3197b47..8bd0ee0 100644 --- a/app/langs/nl-nl.js +++ b/app/langs/nl-nl.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/pl-pl.js b/app/langs/pl-pl.js index 3197b47..8bd0ee0 100644 --- a/app/langs/pl-pl.js +++ b/app/langs/pl-pl.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/pt-br.js b/app/langs/pt-br.js index 3197b47..8bd0ee0 100644 --- a/app/langs/pt-br.js +++ b/app/langs/pt-br.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/ru-ru.js b/app/langs/ru-ru.js index 3197b47..8bd0ee0 100644 --- a/app/langs/ru-ru.js +++ b/app/langs/ru-ru.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/sv-se.js b/app/langs/sv-se.js index 3197b47..8bd0ee0 100644 --- a/app/langs/sv-se.js +++ b/app/langs/sv-se.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/langs/zh-cn.js b/app/langs/zh-cn.js index 3197b47..8bd0ee0 100644 --- a/app/langs/zh-cn.js +++ b/app/langs/zh-cn.js @@ -40,5 +40,9 @@ "overrideDefaultConverterDescription":"Check this if you wish to use your own custom property value converter.", "overrideDefaultConverter":"Override Default Property Value Converter?", "enableCloning":"Enable Cloning?", - "enableCloningDescription":"Enable Fieldset Cloning." + "enableCloningDescription":"Enable Fieldset Cloning.", + "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", + "addFieldsetGroup":"Add group" } diff --git a/app/less/archetype.less b/app/less/archetype.less index f1428e3..285ea9a 100644 --- a/app/less/archetype.less +++ b/app/less/archetype.less @@ -7,6 +7,11 @@ .cell-tools-menu { height: 385px; } + &.withGroups { + .cell-tools-menu { + height: 415px; + } + } } .open { @@ -259,13 +264,33 @@ vertical-align: top; height: 90px; } + ul.groups { + display: block; + margin: 0; + padding: 4px; + li { + width: auto; + margin: 0; + padding: 0 20px; + font-weight: bold; + a { + color: #d9d9d9; + cursor: pointer; + } + &.active a, a:hover { + color: #999; + text-decoration: none; + } + } + } } } .archetypeEditor, .archetypeConfig { .archetypeEditorControls { float: right; - + } + .archetypeEditorControls, .archetypeFieldsetGroups { i { cursor: pointer; &.handle { @@ -361,6 +386,22 @@ } } + .archetypeFieldsetGroups { + padding: 0 10px; + margin-bottom: 20px; + ul { + padding: 0; + margin: 0; + + li { + margin-bottom: 10px; + input { + vertical-align: middle; + } + + } + } + } .archetypeAdvancedOptions { margin-top: 15px; div { diff --git a/app/views/archetype.config.html b/app/views/archetype.config.html index 380f0b5..6f0c58f 100644 --- a/app/views/archetype.config.html +++ b/app/views/archetype.config.html @@ -17,6 +17,10 @@ +
+ + +
@@ -76,6 +80,22 @@
+ +
+
Fieldset groups
+

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.

+
    +
  • +
    + + + + +
    +
  • +
+ +
diff --git a/app/views/archetype.default.html b/app/views/archetype.default.html index 2000b45..d9dbac3 100644 --- a/app/views/archetype.default.html +++ b/app/views/archetype.default.html @@ -46,13 +46,20 @@ Add an item
-
+
- -
-
Fieldset groups
-

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.

-
    -
  • -
    - - - - -
    -
  • -
- -
@@ -105,6 +89,22 @@
+
+

Fieldset groups

+

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.

+
    +
  • +
    + + + + +
    +
  • +
+ +
+
From 5465c1c8993a04088f6530e7dceaab18b94d3004 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Mon, 5 Oct 2015 14:37:11 +0200 Subject: [PATCH 3/4] Use exact match on group name --- app/controllers/controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/controller.js b/app/controllers/controller.js index 79ef6e3..290515c 100644 --- a/app/controllers/controller.js +++ b/app/controllers/controller.js @@ -111,7 +111,7 @@ angular.module("umbraco").controller("Imulus.ArchetypeController", function ($sc $scope.overlayMenu.fieldsetGroups = []; if ($scope.model.config.fieldsetGroups && $scope.model.config.fieldsetGroups.length > 0) { _.each($scope.model.config.fieldsetGroups, function (fieldsetGroup) { - $scope.overlayMenu.fieldsetGroups.push({ name: fieldsetGroup.name, fieldsets: $filter("filter")(allFieldsets, { group: fieldsetGroup.name }) }); + $scope.overlayMenu.fieldsetGroups.push({ name: fieldsetGroup.name, fieldsets: $filter("filter")(allFieldsets, { group: fieldsetGroup.name }, true) }); }) } else { From ee8b16eb9b46382e9334d21d264bf8a282f58637 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Mon, 5 Oct 2015 15:03:08 +0200 Subject: [PATCH 4/4] Only show fieldset groups config when "multiple fieldsets" is enabled --- app/views/archetype.config.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/archetype.config.html b/app/views/archetype.config.html index 653a95c..fb5f05b 100644 --- a/app/views/archetype.config.html +++ b/app/views/archetype.config.html @@ -89,7 +89,7 @@
-
+

Fieldset groups

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.