Bjarke Berg
2021-06-17 14:55:36 +02:00
parent 2bbaec6c2a
commit 5eb9473657

View File

@@ -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);
})();