Merge branch 'temp8-4217-datatype-edits-updates-content-editor' into v8/dev
This commit is contained in:
@@ -116,6 +116,13 @@
|
||||
function isContentCultureVariant() {
|
||||
return $scope.content.variants.length > 1;
|
||||
}
|
||||
|
||||
function reload() {
|
||||
$scope.page.loading = true;
|
||||
loadContent().then(function() {
|
||||
$scope.page.loading = false;
|
||||
});
|
||||
}
|
||||
|
||||
function bindEvents() {
|
||||
//bindEvents can be called more than once and we don't want to have multiple bound events
|
||||
@@ -123,13 +130,10 @@
|
||||
eventsService.unsubscribe(evts[e]);
|
||||
}
|
||||
|
||||
evts.push(eventsService.on("editors.content.reload", function (name, args) {
|
||||
evts.push(eventsService.on("editors.documentType.saved", function (name, args) {
|
||||
// if this content item uses the updated doc type we need to reload the content item
|
||||
if(args && args.node && args.node.key === $scope.content.key) {
|
||||
$scope.page.loading = true;
|
||||
loadContent().then(function() {
|
||||
$scope.page.loading = false;
|
||||
});
|
||||
if(args && args.documentType && $scope.content.documentType.id === args.documentType.id) {
|
||||
reload();
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
id: documentType.id,
|
||||
submit: function (model) {
|
||||
const args = { node: scope.node };
|
||||
eventsService.emit('editors.content.reload', args);
|
||||
eventsService.emit("editors.content.reload", args);
|
||||
editorService.close();
|
||||
},
|
||||
close: function () {
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
function GroupsBuilderDirective(contentTypeHelper, contentTypeResource, mediaTypeResource, dataTypeHelper, dataTypeResource, $filter, iconHelper, $q, $timeout, notificationsService, localizationService, editorService) {
|
||||
function GroupsBuilderDirective(contentTypeHelper, contentTypeResource, mediaTypeResource,
|
||||
dataTypeHelper, dataTypeResource, $filter, iconHelper, $q, $timeout, notificationsService,
|
||||
localizationService, editorService, eventsService) {
|
||||
|
||||
function link(scope, el, attr, ctrl) {
|
||||
|
||||
|
||||
var eventBindings = [];
|
||||
var validationTranslated = "";
|
||||
var tabNoSortOrderTranslated = "";
|
||||
|
||||
scope.dataTypeHasChanged = false;
|
||||
scope.sortingMode = false;
|
||||
scope.toolbar = [];
|
||||
scope.sortableOptionsGroup = {};
|
||||
@@ -613,18 +617,44 @@
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
var unbindModelWatcher = scope.$watch('model', function(newValue, oldValue) {
|
||||
if (newValue !== undefined && newValue.groups !== undefined) {
|
||||
activate();
|
||||
|
||||
function hasPropertyOfDataTypeId(dataTypeId) {
|
||||
|
||||
// look at each property
|
||||
var result = _.filter(scope.model.groups, function(group) {
|
||||
return _.filter(group.properties, function(property) {
|
||||
return (property.dataTypeId === dataTypeId);
|
||||
});
|
||||
});
|
||||
|
||||
return (result.length > 0);
|
||||
}
|
||||
});
|
||||
|
||||
// clean up
|
||||
scope.$on('$destroy', function(){
|
||||
unbindModelWatcher();
|
||||
});
|
||||
|
||||
eventBindings.push(scope.$watch('model', function(newValue, oldValue) {
|
||||
if (newValue !== undefined && newValue.groups !== undefined) {
|
||||
activate();
|
||||
}
|
||||
}));
|
||||
|
||||
// clean up
|
||||
eventBindings.push(eventsService.on("editors.dataTypeSettings.saved", function (name, args) {
|
||||
if(hasPropertyOfDataTypeId(args.dataType.id)) {
|
||||
scope.dataTypeHasChanged = true;
|
||||
}
|
||||
}));
|
||||
|
||||
// clean up
|
||||
eventBindings.push(scope.$on('$destroy', function() {
|
||||
for(var e in eventBindings) {
|
||||
eventBindings[e]();
|
||||
}
|
||||
// if a dataType has changed, we want to notify which properties that are affected by this dataTypeSettings change
|
||||
if(scope.dataTypeHasChanged === true) {
|
||||
var args = {documentType: scope.model};
|
||||
eventsService.emit("editors.documentType.saved", args);
|
||||
}
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
function DataTypeSettingsController($scope, dataTypeResource, dataTypeHelper, localizationService, notificationsService, overlayService, formHelper) {
|
||||
function DataTypeSettingsController($scope, dataTypeResource, dataTypeHelper,
|
||||
localizationService, notificationsService, overlayService, formHelper, eventsService) {
|
||||
|
||||
var vm = this;
|
||||
|
||||
@@ -103,27 +104,33 @@
|
||||
|
||||
var preValues = dataTypeHelper.createPreValueProps(vm.dataType.preValues);
|
||||
|
||||
dataTypeResource.save(vm.dataType, preValues, $scope.model.create).then(function(newDataType) {
|
||||
$scope.model.dataType = newDataType;
|
||||
vm.saveButtonState = "success";
|
||||
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);
|
||||
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]);
|
||||
for (var e in err.data.ModelState) {
|
||||
notificationsService.error("Validation", err.data.ModelState[e][0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user