mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 08:58:26 +00:00
fixes: on cloning the page: events loses entity mappings
This commit is contained in:
parent
4ce20a5b03
commit
78db56f74c
1 changed files with 28 additions and 28 deletions
|
|
@ -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('-');
|
||||
|
|
|
|||
Loading…
Reference in a new issue