[appdef] fixes: event actions mapping for import-export (#7895)

* fixes: event actions mapping for import-export

* fixes: updates organisation id
This commit is contained in:
Arpit 2023-10-16 16:49:42 +05:30 committed by GitHub
parent 18363a5bc1
commit cc48e936ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 43 deletions

View file

@ -676,11 +676,12 @@ const EditorComponent = (props) => {
const appVersions = await appEnvironmentService.getVersionsByEnvironment(data?.id);
setAppVersions(appVersions.appVersions);
const currentOrgId = data?.organization_id || data?.organizationId;
updateState({
slug: data.slug,
isMaintenanceOn: data?.is_maintenance_on,
organizationId: data?.organization_id,
organizationId: currentOrgId,
isPublic: data?.is_public,
appName: data?.name,
userId: data?.user_id,

View file

@ -909,7 +909,6 @@ export const EventManager = ({
<div {...droppableProps} ref={innerRef}>
{events.map((event, index) => {
const actionMeta = ActionTypes.find((action) => action.id === event.event.actionId);
// const rowClassName = `card-body p-0 ${focusedEventIndex === index ? ' bg-azure-lt' : ''}`;
return (
<Draggable key={index} draggableId={`${event.eventId}-${index}`} index={index}>

View file

@ -54,7 +54,7 @@ export default function ExportAppModal({ title, show, closeModal, customClassNam
const requestBody = {
...appOpts,
...(exportTjDb && { tooljet_database: tables }),
organization_id: app.organization_id,
organization_id: app.organization_id ?? app.organizationId,
};
appService

View file

@ -464,6 +464,18 @@ export class AppImportExportService {
}
}
const appVersionIds = Object.values(appResourceMappings.appVersionMapping);
for (const appVersionId of appVersionIds) {
await this.updateEventActionsForNewVersionWithNewMappingIds(
manager,
appVersionId,
appResourceMappings.dataQueryMapping,
appResourceMappings.componentsMapping,
appResourceMappings.pagesMapping
);
}
await this.setEditingVersionAsLatestVersion(manager, appResourceMappings.appVersionMapping, importingAppVersions);
return appResourceMappings;
@ -657,14 +669,14 @@ export class AppImportExportService {
if (componentEvents.length > 0) {
componentEvents.forEach(async (componentEvent) => {
const newEvent = {
name: componentEvent.name,
sourceId: savedComponent.id,
target: componentEvent.target,
event: componentEvent.event,
index: componentEvent.index,
appVersionId: appResourceMappings.appVersionMapping[importingAppVersion.id],
};
const newEvent = new EventHandler();
newEvent.name = componentEvent.name;
newEvent.sourceId = savedComponent.id;
newEvent.target = componentEvent.target;
newEvent.event = componentEvent.event;
newEvent.index = componentEvent.index;
newEvent.appVersionId = appResourceMappings.appVersionMapping[importingAppVersion.id];
await manager.save(EventHandler, newEvent);
});
}
@ -703,18 +715,11 @@ export class AppImportExportService {
if (importingQueryEvents.length > 0) {
importingQueryEvents.forEach(async (dataQueryEvent) => {
const updatedEventDefinition = this.updateEventActionsForNewVersionWithNewMappingIds(
dataQueryEvent,
appResourceMappings.dataQueryMapping,
appResourceMappings.componentsMapping,
appResourceMappings.pagesMapping
);
const newEvent = {
name: dataQueryEvent.name,
sourceId: mappedNewDataQuery.id,
target: dataQueryEvent.target,
event: updatedEventDefinition,
event: dataQueryEvent.event,
index: dataQueryEvent.index,
appVersionId: appResourceMappings.appVersionMapping[importingAppVersion.id],
};
@ -726,18 +731,11 @@ export class AppImportExportService {
delete mappedNewDataQuery?.options?.events;
queryEvents.forEach(async (event, index) => {
const updatedEventDefinition = this.updateEventActionsForNewVersionWithNewMappingIds(
{ event: event },
appResourceMappings.dataQueryMapping,
appResourceMappings.componentsMapping,
appResourceMappings.pagesMapping
);
const newEvent = {
name: event.eventId,
sourceId: mappedNewDataQuery.id,
target: Target.dataQuery,
event: updatedEventDefinition,
event: event.event,
index: queryEvents.index || index,
appVersionId: mappedNewDataQuery.appVersionId,
};
@ -1402,29 +1400,36 @@ export class AppImportExportService {
return { ...queryOptions, table_id: tooljetDatabaseMapping[queryOptions.table_id]?.id };
}
updateEventActionsForNewVersionWithNewMappingIds(
queryEvent: EventHandler | { event: any },
async updateEventActionsForNewVersionWithNewMappingIds(
manager: EntityManager,
versionId: string,
oldDataQueryToNewMapping: Record<string, unknown>,
oldComponentToNewComponentMapping: Record<string, unknown>,
oldPageToNewPageMapping: Record<string, unknown>
) {
const event = JSON.parse(JSON.stringify(queryEvent));
const allEvents = await manager.find(EventHandler, {
where: { appVersionId: versionId },
});
const eventDefinition = event.event;
for (const event of allEvents) {
const eventDefinition = event.event;
if (eventDefinition?.actionId === 'run-query') {
eventDefinition.queryId = oldDataQueryToNewMapping[eventDefinition.queryId];
if (eventDefinition?.actionId === 'run-query') {
eventDefinition.queryId = oldDataQueryToNewMapping[eventDefinition.queryId];
}
if (eventDefinition?.actionId === 'control-component') {
eventDefinition.componentId = oldComponentToNewComponentMapping[eventDefinition.componentId];
}
if (eventDefinition?.actionId === 'switch-page') {
eventDefinition.pageId = oldPageToNewPageMapping[eventDefinition.pageId];
}
event.event = eventDefinition;
await manager.save(event);
}
if (eventDefinition?.actionId === 'control-component') {
eventDefinition.componentId = oldComponentToNewComponentMapping[eventDefinition.componentId];
}
if (eventDefinition?.actionId === 'switch-page') {
eventDefinition.pageId = oldPageToNewPageMapping[eventDefinition.pageId];
}
return eventDefinition;
}
}