correcting datatype creation flow

This commit is contained in:
Niels Lyngsø
2020-01-10 13:00:26 +01:00
parent 4a7ca96357
commit fadc161ac9
4 changed files with 43 additions and 31 deletions

View File

@@ -18,8 +18,8 @@
vm.loading = true;
vm.newConfig = newConfig;
vm.pickConfig = pickConfig;
vm.newDataType = newDataType;
vm.pickDataType = pickDataType;
vm.close = close;
function activate() {
@@ -44,7 +44,7 @@
_.each(configs, function(configGroup) {
for(var i = 0; i<configGroup.length; i++) {
if (configGroup[i].alias === $scope.model.dataType.alias) {
if (configGroup[i].alias === $scope.model.editor.alias) {
filteredConfigs.push(configGroup[i]);
}
}
@@ -57,17 +57,17 @@
}
function newConfig() {
function newDataType() {
var dataTypeSettings = {
propertyEditor: $scope.model.dataType,
propertyEditor: $scope.model.editor,
property: $scope.model.property,
contentTypeName: $scope.model.contentTypeName,
create: true,
view: "views/common/infiniteeditors/datatypesettings/datatypesettings.html",
submit: function(model) {
contentTypeResource.getPropertyTypeScaffold(model.dataType.id).then(function(propertyType) {
submit(model.dataType, propertyType, true);
$scope.model.submit(model.dataType, propertyType, true);
editorService.close();
});
},
@@ -80,30 +80,17 @@
}
function pickConfig(selectedConfig) {
function pickDataType(selectedConfig) {
selectedConfig.loading = true;
dataTypeResource.getById(selectedConfig.id).then(function(dataType) {
contentTypeResource.getPropertyTypeScaffold(dataType.id).then(function(propertyType) {
selectedConfig.loading = false;
submit(dataType, propertyType, false);
$scope.model.submit(dataType, propertyType, false);
});
});
}
function submit(dataType, propertyType, isNew) {
// update property
$scope.model.property.config = propertyType.config;
$scope.model.property.editor = propertyType.editor;
$scope.model.property.view = propertyType.view;
$scope.model.property.dataTypeId = dataType.id;
$scope.model.property.dataTypeIcon = dataType.icon;
$scope.model.property.dataTypeName = dataType.name;
$scope.model.updateSameDataTypes = isNew;
$scope.model.submit($scope.model);
}
function close() {
if($scope.model.close) {
$scope.model.close();

View File

@@ -22,7 +22,7 @@
<ul class="umb-card-grid -three-in-row">
<li ng-repeat="dataTypeConfig in vm.configs | orderBy:'name'"
data-element="datatypeconfig-{{dataTypeConfig.name}}"
ng-click="vm.pickConfig(dataTypeConfig)">
ng-click="vm.pickDataType(dataTypeConfig)">
<div ng-if="dataTypeConfig.loading" class="umb-card-grid-item__loading">
<div class="umb-button__progress"></div>
</div>
@@ -35,7 +35,7 @@
</li>
</ul>
<ul class="umb-card-grid -three-in-row">
<li ng-click="vm.newConfig()">
<li ng-click="vm.newDataType()">
<a class="umb-card-grid-item-slot" href="" title="Create a new configuration of {{ model.dataType.name }}">
<span>
<i class="icon icon-add"></i>

View File

@@ -21,7 +21,8 @@
vm.searchTerm = "";
vm.searchResult = null;
vm.pickType = pickType;
vm.viewOptionsForEditor = viewOptionsForEditor;
vm.pickDataType = pickDataType;
vm.pickEditor = pickEditor;
vm.close = close;
vm.searchTermChanged = searchTermChanged;
@@ -105,17 +106,17 @@
}
function pickType(dataType) {
function viewOptionsForEditor(editor) {
var dataTypeConfigurationPicker = {
dataType: dataType,
editor: editor,
property: $scope.model.property,
contentTypeName: $scope.model.contentTypeName,
view: "views/common/infiniteeditors/datatypeconfigurationpicker/datatypeconfigurationpicker.html",
size: "small",
submit: function(model) {
submit: function(dataType, propertyType, isNew) {
submit(dataType, propertyType, isNew);
editorService.close();
$scope.model.submit(model);
},
close: function() {
editorService.close();
@@ -126,6 +127,16 @@
}
function pickDataType(selectedDataType) {
selectedDataType.loading = true;
dataTypeResource.getById(selectedDataType.id).then(function(dataType) {
contentTypeResource.getPropertyTypeScaffold(dataType.id).then(function(propertyType) {
selectedDataType.loading = false;
submit(dataType, propertyType, false);
});
});
}
function pickEditor(propertyEditor) {
var dataTypeSettings = {
@@ -136,7 +147,7 @@
view: "views/common/infiniteeditors/datatypesettings/datatypesettings.html",
submit: function(model) {
contentTypeResource.getPropertyTypeScaffold(model.dataType.id).then(function(propertyType) {
$scope.model.submit(model);
submit(model.dataType, propertyType, true);
editorService.close();
});
},
@@ -148,6 +159,20 @@
editorService.open(dataTypeSettings);
}
function submit(dataType, propertyType, isNew) {
// update property
$scope.model.property.config = propertyType.config;
$scope.model.property.editor = propertyType.editor;
$scope.model.property.view = propertyType.view;
$scope.model.property.dataTypeId = dataType.id;
$scope.model.property.dataTypeIcon = dataType.icon;
$scope.model.property.dataTypeName = dataType.name;
$scope.model.updateSameDataTypes = isNew;
$scope.model.submit($scope.model);
}
function close() {
if($scope.model.close) {

View File

@@ -38,7 +38,7 @@
<ul class="umb-card-grid -six-in-row">
<li ng-repeat="dataType in value | orderBy:'name'"
data-element="datatype-{{dataType.name}}"
ng-click="vm.pickType(dataType)">
ng-click="vm.viewOptionsForEditor(dataType)">
<a class="umb-card-grid-item" href="" title="{{ dataType.name }}">
<span>
<i class="{{ dataType.icon }}" ng-class="{'icon-autofill': dataType.icon == null}"></i>