Adjust nested content overlay (#8044)

This commit is contained in:
Bjarne Fyrstenborg
2020-07-09 16:04:43 +02:00
committed by GitHub
parent ffb53109bc
commit 327d5ae7fb
2 changed files with 34 additions and 46 deletions

View File

@@ -167,8 +167,6 @@
isDisabled: true
}
// helper to force the current form into the dirty state
function setDirty() {
if ($scope.$parent.$parent.propertyForm) {
@@ -187,17 +185,28 @@
};
vm.openNodeTypePicker = function ($event) {
if (vm.overlayMenu || vm.nodes.length >= vm.maxItems) {
if (vm.nodes.length >= vm.maxItems) {
return;
}
vm.overlayMenu = {
show: false,
style: {},
filter: vm.scaffolds.length > 12 ? true : false,
var availableItems = [];
_.each(vm.scaffolds, function (scaffold) {
availableItems.push({
alias: scaffold.contentTypeAlias,
name: scaffold.contentTypeName,
icon: iconHelper.convertFromLegacyIcon(scaffold.icon)
});
});
const dialog = {
view: "itempicker",
orderBy: "$index",
view: "itempicker",
event: $event,
filter: availableItems.length > 12,
size: availableItems.length > 6 ? "medium" : "small",
availableItems: availableItems,
clickPasteItem: function (item) {
if (item.type === "elementTypeArray") {
_.each(item.data, function (entry) {
@@ -206,44 +215,30 @@
} else {
pasteFromClipboard(item.data);
}
vm.overlayMenu.show = false;
vm.overlayMenu = null;
overlayService.close();
},
submit: function (model) {
if (model && model.selectedItem) {
addNode(model.selectedItem.alias);
}
vm.overlayMenu.show = false;
vm.overlayMenu = null;
overlayService.close();
},
close: function () {
vm.overlayMenu.show = false;
vm.overlayMenu = null;
overlayService.close();
}
};
// this could be used for future limiting on node types
vm.overlayMenu.availableItems = [];
_.each(vm.scaffolds, function (scaffold) {
vm.overlayMenu.availableItems.push({
alias: scaffold.contentTypeAlias,
name: scaffold.contentTypeName,
icon: iconHelper.convertFromLegacyIcon(scaffold.icon),
tooltip: scaffold.documentType.description
});
});
if (vm.overlayMenu.availableItems.length === 0) {
if (dialog.availableItems.length === 0) {
return;
}
vm.overlayMenu.size = vm.overlayMenu.availableItems.length > 6 ? "medium" : "small";
vm.overlayMenu.pasteItems = [];
dialog.pasteItems = [];
var singleEntriesForPaste = clipboardService.retriveEntriesOfType("elementType", contentTypeAliases);
_.each(singleEntriesForPaste, function (entry) {
vm.overlayMenu.pasteItems.push({
dialog.pasteItems.push({
type: "elementType",
name: entry.label,
data: entry.data,
@@ -253,7 +248,7 @@
var arrayEntriesForPaste = clipboardService.retriveEntriesOfType("elementTypeArray", contentTypeAliases);
_.each(arrayEntriesForPaste, function (entry) {
vm.overlayMenu.pasteItems.push({
dialog.pasteItems.push({
type: "elementTypeArray",
name: entry.label,
data: entry.data,
@@ -261,26 +256,27 @@
});
});
vm.overlayMenu.title = labels.grid_addElement;
vm.overlayMenu.hideHeader = vm.overlayMenu.pasteItems.length > 0;
dialog.title = dialog.pasteItems.length > 0 ? labels.grid_addElement : labels.content_createEmpty;
vm.overlayMenu.clickClearPaste = function ($event) {
dialog.clickClearPaste = function ($event) {
$event.stopPropagation();
$event.preventDefault();
clipboardService.clearEntriesOfType("elementType", contentTypeAliases);
clipboardService.clearEntriesOfType("elementTypeArray", contentTypeAliases);
vm.overlayMenu.pasteItems = [];// This dialog is not connected via the clipboardService events, so we need to update manually.
vm.overlayMenu.hideHeader = false;
dialog.pasteItems = [];// This dialog is not connected via the clipboardService events, so we need to update manually.
dialog.overlayMenu.hideHeader = false;
};
if (vm.overlayMenu.availableItems.length === 1 && vm.overlayMenu.pasteItems.length === 0) {
if (dialog.availableItems.length === 1 && dialog.pasteItems.length === 0) {
// only one scaffold type - no need to display the picker
addNode(vm.scaffolds[0].contentTypeAlias);
vm.overlayMenu = null;
dialog.close();
return;
}
vm.overlayMenu.show = true;
overlayService.open(dialog);
};
vm.editNode = function (idx) {