Untitled
user_8078570
plain_text
9 months ago
2.8 kB
4
Indexable
private handleData(
section: PageSection,
node: EditorTreeNode,
data: any,
nodeIsItemChild: boolean,
layout: PageLayout
) {
if (!data) {
this.handleNoData(section, node);
return;
}
const { relItemData: relatedItem, pageSection } = data;
this.updateSectionProperties(section, pageSection, node.key);
if (relatedItem) {
this.processRelatedItem(section, relatedItem, nodeIsItemChild);
}
}
private handleNoData(section: PageSection, node: EditorTreeNode) {
section.messages = [
...(section.messages ?? []),
{
severity: 'error',
detail: this.i18nService.translate(
'editor.EDITORPAGE.MESSAGE.ERRORITEMEXISTS',
{},
this.i18nService.getActiveLang()
),
},
];
section.header = node.label;
section.key = <string>node.key;
section.expandedOnce = true;
}
private updateSectionProperties(
section: PageSection,
pageSection: any,
nodeKey: string
) {
section.header = pageSection.header;
section.key = <string>nodeKey;
section.content = <EditorContent[]>pageSection.content;
}
private processRelatedItem(
section: PageSection,
relatedItem: any,
nodeIsItemChild: boolean
) {
// Populate metadata
if (!nodeIsItemChild) {
section.metadata = ITEM_METADATA_NODES.map((itemNode) => ({
...itemNode,
value: relatedItem
? relatedItem[`${itemNode.nodeName}` as keyof ItemModel]
: undefined,
itemId: relatedItem.id,
type: EditorFieldInputType.InputText,
}));
}
section.itemName = relatedItem.name;
section.valueName = <string>relatedItem.name;
section.isItem = true;
section.expandedOnce = true;
// Update tree nodes
const treeNode = this.flattenedTreeNodes?.find(
(tNode) => tNode.key === section.key
);
if (treeNode && !nodeIsItemChild) {
treeNode.label = `${treeNode.label?.split(':')[0]}: ${relatedItem.name ?? ''}`;
section.header = treeNode.label;
if (treeNode.selectable === false) {
treeNode.selectable = true;
treeNode.children = treeNode.children?.map((cNode) => ({
...cNode,
selectable: true,
}));
}
}
// Sync item values
section.content = section.content.map((content) => ({
itemId: relatedItem.id,
...content,
}));
const itemHasChildSections = this.flattenedTreeNodes?.some((treeNode) =>
treeNode.key?.includes(`${section.key}-`)
);
if (itemHasChildSections) {
section.content = [];
} else {
section.content.forEach((content) => {
const itemValue = relatedItem.nodes?.find(
(val: TreeNodeModel) => val.nodeName === content.nodeName
);
const setupValue = this.setupValues?.find(
(val) => val.nodeName === content.nodeName
);
if (itemValue && setupValue) {
setupValue.value = itemValue.value;
}
});
}
}
Editor is loading...
Leave a Comment