From 5eb94736578b4efe0fccfa8890283ce66d2fd0cc Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Thu, 17 Jun 2021 14:55:36 +0200 Subject: [PATCH] https://github.com/umbraco/Umbraco-CMS/issues/10479 https://github.com/umbraco/Umbraco-CMS/issues/10427 fixes issue with with saving data types --- .../datatypesettings.controller.js | 235 +++++++++--------- 1 file changed, 117 insertions(+), 118 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.controller.js index 4e1b3e868d..e2a6e30405 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/datatypesettings/datatypesettings.controller.js @@ -8,141 +8,140 @@ */ (function () { - "use strict"; + "use strict"; - function DataTypeSettingsController($scope, dataTypeResource, dataTypeHelper, - localizationService, notificationsService, overlayService, formHelper, eventsService) { + function DataTypeSettingsController($scope, dataTypeResource, dataTypeHelper, + localizationService, notificationsService, overlayService, formHelper, eventsService) { - var vm = this; + var vm = this; - vm.dataType = {}; - vm.loadingDataType = false; - vm.saveButtonState = "init"; + vm.dataType = {}; + vm.loadingDataType = false; + vm.saveButtonState = "init"; - vm.close = close; - vm.submit = submit; + vm.close = close; + vm.submit = submit; - function onInit() { + function onInit() { - setTitle(); + setTitle(); - if($scope.model.create) { - createNewDataType(); - } else { - getDataType(); - } + if($scope.model.create) { + createNewDataType(); + } else { + getDataType(); + } + } + + function setTitle() { + if(!$scope.model.title) { + localizationService.localize("contentTypeEditor_editorSettings") + .then(function(data){ + $scope.model.title = data; + }); + } + } + + function createNewDataType() { + + vm.loadingDataType = true; + + var parentId = -1; + var newDataType = {}; + + dataTypeResource.getScaffold(parentId).then(function(dataType) { + + newDataType = dataType; + + // set alias + newDataType.selectedEditor = $scope.model.propertyEditor.alias; + + // set name + var nameArray = []; + + if ($scope.model.contentTypeName) { + nameArray.push($scope.model.contentTypeName); } - function setTitle() { - if(!$scope.model.title) { - localizationService.localize("contentTypeEditor_editorSettings") - .then(function(data){ - $scope.model.title = data; - }); - } + if ($scope.model.property.label) { + nameArray.push($scope.model.property.label); } - function createNewDataType() { - - vm.loadingDataType = true; - - var parentId = -1; - var newDataType = {}; - - dataTypeResource.getScaffold(parentId).then(function(dataType) { - - newDataType = dataType; - - // set alias - newDataType.selectedEditor = $scope.model.propertyEditor.alias; - - // set name - var nameArray = []; - - if ($scope.model.contentTypeName) { - nameArray.push($scope.model.contentTypeName); - } - - if ($scope.model.property.label) { - nameArray.push($scope.model.property.label); - } - - if ($scope.model.propertyEditor.name) { - nameArray.push($scope.model.propertyEditor.name); - } - - // make name - newDataType.name = nameArray.join(" - "); - - // get pre values - dataTypeResource.getPreValues(newDataType.selectedEditor).then(function(preValues) { - newDataType.preValues = dataTypeHelper.createPreValueProps(preValues); - vm.dataType = newDataType; - vm.loadingDataType = false; - }); - - }); - + if ($scope.model.propertyEditor.name) { + nameArray.push($scope.model.propertyEditor.name); } - function getDataType() { - vm.loadingDataType = true; - dataTypeResource.getById($scope.model.id).then(function (dataType) { - dataType.preValues = dataTypeHelper.createPreValueProps(dataType.preValues); - vm.dataType = dataType; - vm.loadingDataType = false; - }); - } + // make name + newDataType.name = nameArray.join(" - "); - function close() { - if ($scope.model && $scope.model.close) { - $scope.model.close(); - } - } + // get pre values + dataTypeResource.getPreValues(newDataType.selectedEditor).then(function(preValues) { + newDataType.preValues = preValues; + vm.dataType = newDataType; + vm.loadingDataType = false; + }); - function submit() { - if (!formHelper.submitForm({ scope: $scope })) { - return; - } - - vm.saveButtonState = "busy"; - - var preValues = dataTypeHelper.createPreValueProps(vm.dataType.preValues); - - dataTypeResource.save(vm.dataType, preValues, $scope.model.create).then( - function(newDataType) { - $scope.model.dataType = newDataType; - - var args = { dataType: newDataType }; - eventsService.emit("editors.dataTypeSettings.saved", args); - - vm.saveButtonState = "success"; - - if ($scope.model && $scope.model.submit) { - $scope.model.submit($scope.model); - } - }, function(err) { - vm.saveButtonState = "error"; - - if(err.status === 400) { - if (err.data && (err.data.ModelState)) { - - formHelper.handleServerValidation(err.data.ModelState); - - for (var e in err.data.ModelState) { - notificationsService.error("Validation", err.data.ModelState[e][0]); - } - } - } - } - ); - - } - - onInit(); + }); } - angular.module("umbraco").controller("Umbraco.Editors.DataTypeSettingsController", DataTypeSettingsController); + function getDataType() { + vm.loadingDataType = true; + dataTypeResource.getById($scope.model.id).then(function (dataType) { + vm.dataType = dataType; + vm.loadingDataType = false; + }); + } + + function close() { + if ($scope.model && $scope.model.close) { + $scope.model.close(); + } + } + + function submit() { + if (!formHelper.submitForm({ scope: $scope })) { + return; + } + + vm.saveButtonState = "busy"; + + var preValues = dataTypeHelper.createPreValueProps(vm.dataType.preValues); + + dataTypeResource.save(vm.dataType, preValues, $scope.model.create).then( + function(newDataType) { + $scope.model.dataType = newDataType; + + var args = { dataType: newDataType }; + eventsService.emit("editors.dataTypeSettings.saved", args); + + vm.saveButtonState = "success"; + + if ($scope.model && $scope.model.submit) { + $scope.model.submit($scope.model); + } + }, function(err) { + vm.saveButtonState = "error"; + + if(err.status === 400) { + if (err.data && (err.data.ModelState)) { + + formHelper.handleServerValidation(err.data.ModelState); + + for (var e in err.data.ModelState) { + notificationsService.error("Validation", err.data.ModelState[e][0]); + } + } + } + } + ); + + } + + onInit(); + + } + + angular.module("umbraco").controller("Umbraco.Editors.DataTypeSettingsController", DataTypeSettingsController); })();