fixes: on cloning the page: events loses entity mappings

This commit is contained in:
arpitnath 2024-07-11 18:38:54 +05:30 committed by Kavin Venkatachalam
parent 4ce20a5b03
commit 78db56f74c

View file

@ -102,33 +102,6 @@ export class PageService {
const pageEvents = await this.eventHandlerService.findAllEventsWithSourceId(pageId);
const componentsIdMap = {};
// Clone events
await Promise.all(
pageEvents.map(async (event) => {
const eventDefinition = event.event;
if (eventDefinition?.actionId === 'control-component') {
eventDefinition.componentId = componentsIdMap[eventDefinition.componentId];
}
if (eventDefinition?.actionId == 'show-modal' || eventDefinition?.actionId === 'hide-modal') {
eventDefinition.modal = componentsIdMap[eventDefinition.modal];
}
event.event = eventDefinition;
const clonedEvent = new EventHandler();
clonedEvent.event = event.event;
clonedEvent.index = event.index;
clonedEvent.name = event.name;
clonedEvent.sourceId = clonePageId;
clonedEvent.target = event.target;
clonedEvent.appVersionId = event.appVersionId;
await manager.save(EventHandler, clonedEvent);
})
);
// Clone components
const clonedComponents = await Promise.all(
pageComponents.map(async (component) => {
@ -146,7 +119,7 @@ export class PageService {
// Clone component events
const clonedComponentEvents = await this.eventHandlerService.findAllEventsWithSourceId(component.id);
const clonedEvents = clonedComponentEvents.map((event) => {
const eventDefinition = event.event;
const eventDefinition = updateEntityReferences(event.event, componentsIdMap);
if (eventDefinition?.actionId === 'control-component') {
eventDefinition.componentId = componentsIdMap[eventDefinition.componentId];
@ -176,6 +149,33 @@ export class PageService {
})
);
// Clone events
await Promise.all(
pageEvents.map(async (event) => {
const eventDefinition = updateEntityReferences(event.event, componentsIdMap);
if (eventDefinition?.actionId === 'control-component') {
eventDefinition.componentId = componentsIdMap[eventDefinition.componentId];
}
if (eventDefinition?.actionId == 'show-modal' || eventDefinition?.actionId === 'hide-modal') {
eventDefinition.modal = componentsIdMap[eventDefinition.modal];
}
event.event = eventDefinition;
const clonedEvent = new EventHandler();
clonedEvent.event = event.event;
clonedEvent.index = event.index;
clonedEvent.name = event.name;
clonedEvent.sourceId = clonePageId;
clonedEvent.target = event.target;
clonedEvent.appVersionId = event.appVersionId;
await manager.save(EventHandler, clonedEvent);
})
);
const hasParentIdSuffixed = (component, allComponents = [], componentParentId = undefined) => {
if (componentParentId) {
const parentId = component?.parent?.split('-').slice(0, -1).join('-');