diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js index 978f1f3f8a..484e367f2d 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js @@ -330,7 +330,11 @@ }; scope.propertySettingsDialogModel.editDataType = function(property) { - scope.configDataType(property); + + dataTypeResource.getById(property.dataTypeId).then(function(dataType) { + scope.configDataType(property, dataType, false); + }); + }; scope.propertySettingsDialogModel.submit = function(model) { @@ -387,46 +391,58 @@ scope.propertyEditorDialogModel.view = "views/documentType/dialogs/property.html"; scope.propertyEditorDialogModel.show = true; - scope.propertyEditorDialogModel.selectDataType = function(selectedDataType) { + scope.propertyEditorDialogModel.selectDataType = function(editor) { - if( selectedDataType.id !== null ) { + if( editor.id !== null ) { - contentTypeResource.getPropertyTypeScaffold(selectedDataType.id).then(function(propertyType) { + dataTypeResource.getById(editor.id).then(function(dataType) { - property.config = propertyType.config; - property.editor = propertyType.editor; - property.view = propertyType.view; - property.dataTypeId = selectedDataType.id; - property.dataTypeIcon = selectedDataType.icon; - property.dataTypeName = selectedDataType.name; + // open data type settings dialog + scope.configDataType(property, dataType, false); + + // remove dialog + scope.propertyEditorDialogModel.show = false; + scope.propertyEditorDialogModel = null; }); } else { - // get data type scaffold + // create new data datype dataTypeResource.getScaffold().then(function(dataType) { - dataType.selectedEditor = selectedDataType.alias; - dataType.name = selectedDataType.name; + // set alias + dataType.selectedEditor = editor.alias; - // create prevalues for data type - var preValues = dataTypeHelper.createPreValueProps(dataType.preValues); + // set name + var nameArray = []; - // save data type - dataTypeResource.save(dataType, preValues, true).then(function(dataType) { + if(scope.model.name) { + nameArray.push(scope.model.name); + } - // get property scaffold - contentTypeResource.getPropertyTypeScaffold(dataType.id).then(function(propertyType) { + if(property.label) { + nameArray.push(property.label); + } - property.config = propertyType.config; - property.editor = propertyType.editor; - property.view = propertyType.view; - property.dataTypeId = dataType.id; - property.dataTypeIcon = dataType.icon; - property.dataTypeName = dataType.name; + if(editor.name) { + nameArray.push(editor.name); + } - }); + // make name + dataType.name = nameArray.join(" - "); + + // get pre values + dataTypeResource.getPreValues(dataType.selectedEditor).then(function(preValues) { + + dataType.preValues = preValues; + + // open data type settings dialog + scope.configDataType(property, dataType, true); + + // remove dialog + scope.propertyEditorDialogModel.show = false; + scope.propertyEditorDialogModel = null; }); @@ -434,10 +450,6 @@ } - // remove dialog - scope.propertyEditorDialogModel.show = false; - scope.propertyEditorDialogModel = null; - }; scope.propertyEditorDialogModel.close = function(oldModel) { @@ -449,39 +461,40 @@ }; - scope.configDataType = function(property) { + scope.configDataType = function(property, dataType, isNew) { scope.dataTypeSettingsDialogModel = {}; scope.dataTypeSettingsDialogModel.title = "Edit data type"; - scope.dataTypeSettingsDialogModel.dataType = {}; + scope.dataTypeSettingsDialogModel.dataType = dataType; scope.dataTypeSettingsDialogModel.view = "views/documentType/dialogs/editDataType/editDataType.html"; + scope.dataTypeSettingsDialogModel.show = true; + + scope.dataTypeSettingsDialogModel.submit = function(model) { + + var preValues = dataTypeHelper.createPreValueProps(model.dataType.preValues); + + dataTypeResource.save(model.dataType, preValues, isNew).then(function(newDataType) { + + contentTypeResource.getPropertyTypeScaffold(newDataType.id).then(function(propertyType) { + + property.config = propertyType.config; + property.editor = propertyType.editor; + property.view = propertyType.view; + property.dataTypeId = newDataType.id; + property.dataTypeIcon = newDataType.icon; + property.dataTypeName = newDataType.name; + + // change all chosen datatypes to updated config + if(!isNew) { + updateSameDataTypes(property); + } + + // remove dialog + scope.dataTypeSettingsDialogModel.show = false; + scope.dataTypeSettingsDialogModel = null; - dataTypeResource.getById(property.dataTypeId) - .then(function(dataType) { - scope.dataTypeSettingsDialogModel.dataType = dataType; - scope.dataTypeSettingsDialogModel.show = true; }); - scope.dataTypeSettingsDialogModel.submit = function(model, isNew) { - - contentTypeResource.getPropertyTypeScaffold(model.dataType.id).then(function(propertyType) { - - property.config = propertyType.config; - property.editor = propertyType.editor; - property.view = propertyType.view; - property.dataTypeId = model.dataType.id; - property.dataTypeIcon = model.dataType.icon; - property.dataTypeName = model.dataType.name; - - // change all chosen datatypes to updated config - if(!isNew) { - updateSameDataTypes(property); - } - - // remove dialog - scope.dataTypeSettingsDialogModel.show = false; - scope.dataTypeSettingsDialogModel = null; - }); }; diff --git a/src/Umbraco.Web.UI.Client/src/less/main.less b/src/Umbraco.Web.UI.Client/src/less/main.less index 60c2273ca2..6a916e545d 100644 --- a/src/Umbraco.Web.UI.Client/src/less/main.less +++ b/src/Umbraco.Web.UI.Client/src/less/main.less @@ -106,6 +106,11 @@ h5{ margin-bottom: 15px !important; } +.umb-control-group.-no-border { + border: none; +} + + /*COMPACT MODE */ .compact .umb-pane{margin: 0px 0px 15px 0px;} .compact .umb-control-group { @@ -525,4 +530,4 @@ height:1px; margin: 10px 0; overflow: hidden; -} \ No newline at end of file +} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.controller.js index bec9dce0fd..d9c97f0fa6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.controller.js @@ -7,74 +7,7 @@ * The controller for the content type editor property dialog */ function EditDataTypeController($scope, dataTypeResource, dataTypeHelper) { - - var dataTypeNameCopy = ""; - - $scope.model.multiActions = [ - { - key: "overwrite", - label: "Overwrite", - defaultAction: true, - action: function(model) { - saveDataType($scope.model.dataType, false); - } - }, - { - key: "saveAsNew", - label: "Save as new", - action: function(model) { - saveDataType($scope.model.dataType, true); - } - } - ]; - - function activate() { - makeDataTypeNameCopy() - } - - function makeDataTypeNameCopy() { - dataTypeNameCopy = angular.copy($scope.model.dataType.name); - } - - $scope.dateTypeNameChange = function() { - - // change default button to save as new when data type name changes - if( $scope.model.dataType.name !== dataTypeNameCopy) { - setDefaultMultiAction($scope.model.multiActions, "saveAsNew"); - } else { - setDefaultMultiAction($scope.model.multiActions, "overwrite"); - } - - }; - - function setDefaultMultiAction(array, key) { - - angular.forEach(array, function(arrayItem){ - if(arrayItem.key === key) { - arrayItem.defaultAction = true; - } else { - arrayItem.defaultAction = false; - } - }); - - } - - function saveDataType(dataType, isNew) { - - var preValues = dataTypeHelper.createPreValueProps(dataType.preValues); - - dataTypeResource.save(dataType, preValues, isNew).then(function(dataType) { - - $scope.model.dataType = dataType; - - $scope.model.submit($scope.model, isNew); - - }); - - } - - activate(); - + } angular.module("umbraco").controller("Umbraco.Editors.DocumentType.EditDataTypeController", EditDataTypeController); diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.html b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.html index 65a6f008a4..619fda54dc 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.html +++ b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/editdatatype/editdatatype.html @@ -4,7 +4,8 @@
- + +
diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.controller.js index b157b332e4..1d8fcdbb56 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.controller.js @@ -8,45 +8,61 @@ */ function DocumentTypePropertyController($scope, dataTypeResource) { - $scope.dataTypes = { - "userConfigured": [], - "userPropertyEditors": [], - "system": [] - }; + $scope.showTabs = false; + var tabsLoaded = 0; - //getAllUserConfiguredDataTypes(); - //getAllUserPropertyEditors(); - getAllDatatypes(); + $scope.tabs = [ + { + active: true, + id: 1, + label: "Default", + alias: "Default", + typesAndEditors: [] + }, + { + active: false, + id: 2, + label: "Reuse", + alias: "Reuse", + userConfigured: [] + } + ]; + function activate() { - function getAllDatatypes() { + getAllUserConfiguredDataTypes(); + getAllTypesAndEditors(); + + } + + function getAllTypesAndEditors() { dataTypeResource.getAllTypesAndEditors().then(function(data){ - $scope.dataTypes.system = data; + $scope.tabs[0].typesAndEditors = data; + tabsLoaded = tabsLoaded + 1; + checkIfTabContentIsLoaded(); }); -// dataTypeResource.getAll().then(function(data){ -// $scope.dataTypes.system = data; -// }); - } function getAllUserConfiguredDataTypes() { dataTypeResource.getAllUserConfigured().then(function(data){ - $scope.dataTypes.userConfigured = data; + $scope.tabs[1].userConfigured = data; + tabsLoaded = tabsLoaded + 1; + checkIfTabContentIsLoaded(); }); } - function getAllUserPropertyEditors() { - - dataTypeResource.getAllUserPropertyEditors().then(function(data){ - $scope.dataTypes.userPropertyEditors = data; - }); - + function checkIfTabContentIsLoaded() { + if(tabsLoaded === 2) { + $scope.showTabs = true; + } } + activate(); + } angular.module("umbraco").controller("Umbraco.Editors.DocumentType.PropertyController", DocumentTypePropertyController); diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.html b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.html index 6a0a03f599..d418128444 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.html +++ b/src/Umbraco.Web.UI.Client/src/views/documenttype/dialogs/property.html @@ -1,6 +1,6 @@
-
+
- + + + + +
+ +
+
+
{{key}}
+ +
+
+ +
+ +
+ +
Your configurations
+ + +
+ +
+ +
-
-
-
{{key}}
- -