mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 18:41:14 +00:00
fix(editor): Fix workflow loading after switching to executions view in new canvas (no-changelog) (#10655)
This commit is contained in:
@@ -8,7 +8,7 @@ import { useWorkflowsStore } from '@/stores/workflows.store';
|
||||
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
|
||||
import { NO_NETWORK_ERROR_CODE } from '@/utils/apiUtils';
|
||||
import { useToast } from '@/composables/useToast';
|
||||
import { PLACEHOLDER_EMPTY_WORKFLOW_ID, VIEWS } from '@/constants';
|
||||
import { NEW_WORKFLOW_ID, PLACEHOLDER_EMPTY_WORKFLOW_ID, VIEWS } from '@/constants';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
import type { ExecutionSummary } from 'n8n-workflow';
|
||||
import { useDebounce } from '@/composables/useDebounce';
|
||||
@@ -34,15 +34,22 @@ const loadingMore = ref(false);
|
||||
const workflow = ref<IWorkflowDb | undefined>();
|
||||
|
||||
const workflowId = computed(() => {
|
||||
return (route.params.name as string) || workflowsStore.workflowId;
|
||||
const workflowIdParam = route.params.name as string;
|
||||
return [PLACEHOLDER_EMPTY_WORKFLOW_ID, NEW_WORKFLOW_ID].includes(workflowIdParam)
|
||||
? undefined
|
||||
: workflowIdParam;
|
||||
});
|
||||
|
||||
const executionId = computed(() => route.params.executionId as string);
|
||||
|
||||
const executions = computed(() => [
|
||||
...(executionsStore.currentExecutionsByWorkflowId[workflowId.value] ?? []),
|
||||
...(executionsStore.executionsByWorkflowId[workflowId.value] ?? []),
|
||||
]);
|
||||
const executions = computed(() =>
|
||||
workflowId.value
|
||||
? [
|
||||
...(executionsStore.currentExecutionsByWorkflowId[workflowId.value] ?? []),
|
||||
...(executionsStore.executionsByWorkflowId[workflowId.value] ?? []),
|
||||
]
|
||||
: [],
|
||||
);
|
||||
|
||||
const execution = computed(() => {
|
||||
return executions.value.find((e) => e.id === executionId.value) ?? currentExecution.value;
|
||||
@@ -65,13 +72,12 @@ watch(
|
||||
);
|
||||
|
||||
onMounted(async () => {
|
||||
await nodeTypesStore.loadNodeTypesIfNotLoaded();
|
||||
await Promise.all([
|
||||
nodeTypesStore.loadNodeTypesIfNotLoaded(),
|
||||
fetchWorkflow(),
|
||||
executionsStore.initialize(workflowId.value),
|
||||
]);
|
||||
await fetchExecution();
|
||||
await Promise.all([nodeTypesStore.loadNodeTypesIfNotLoaded(), fetchWorkflow()]);
|
||||
|
||||
if (workflowId.value) {
|
||||
await Promise.all([executionsStore.initialize(workflowId.value), fetchExecution()]);
|
||||
}
|
||||
|
||||
await initializeRoute();
|
||||
document.addEventListener('visibilitychange', onDocumentVisibilityChange);
|
||||
});
|
||||
@@ -116,19 +122,23 @@ async function initializeRoute() {
|
||||
}
|
||||
|
||||
async function fetchWorkflow() {
|
||||
// Check if the workflow already has an ID
|
||||
// In other words: are we coming from the Editor tab or browser loaded the Executions tab directly
|
||||
if (workflowsStore.workflow.id === PLACEHOLDER_EMPTY_WORKFLOW_ID) {
|
||||
try {
|
||||
await workflowsStore.fetchActiveWorkflows();
|
||||
const data = await workflowsStore.fetchWorkflow(workflowId.value);
|
||||
workflowHelpers.initState(data);
|
||||
await nodeHelpers.addNodes(data.nodes, data.connections);
|
||||
} catch (error) {
|
||||
toast.showError(error, i18n.baseText('nodeView.showError.openWorkflow.title'));
|
||||
if (workflowId.value) {
|
||||
// Check if we are loading the Executions tab directly, without having loaded the workflow
|
||||
if (workflowsStore.workflow.id === PLACEHOLDER_EMPTY_WORKFLOW_ID) {
|
||||
try {
|
||||
await workflowsStore.fetchActiveWorkflows();
|
||||
const data = await workflowsStore.fetchWorkflow(workflowId.value);
|
||||
workflowHelpers.initState(data);
|
||||
await nodeHelpers.addNodes(data.nodes, data.connections);
|
||||
} catch (error) {
|
||||
toast.showError(error, i18n.baseText('nodeView.showError.openWorkflow.title'));
|
||||
}
|
||||
}
|
||||
|
||||
workflow.value = workflowsStore.getWorkflowById(workflowId.value);
|
||||
} else {
|
||||
workflow.value = workflowsStore.workflow;
|
||||
}
|
||||
workflow.value = workflowsStore.getWorkflowById(workflowId.value);
|
||||
}
|
||||
|
||||
async function onAutoRefreshToggle(value: boolean) {
|
||||
|
||||
Reference in New Issue
Block a user