diff --git a/packages/cli/src/workflows/workflows.controller.ts b/packages/cli/src/workflows/workflows.controller.ts index 5a76d249c6..c9a130660d 100644 --- a/packages/cli/src/workflows/workflows.controller.ts +++ b/packages/cli/src/workflows/workflows.controller.ts @@ -330,7 +330,7 @@ export class WorkflowsController { workflowId, req.user, ['workflow:read'], - { includeTags: !this.globalConfig.tags.disabled }, + { includeTags: !this.globalConfig.tags.disabled, includeParentFolder: true }, ); if (!workflow) { diff --git a/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.test.ts b/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.test.ts index 0e565b7a17..be68ff7c3d 100644 --- a/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.test.ts +++ b/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.test.ts @@ -123,4 +123,19 @@ describe('FolderBreadcrumbs', () => { expect(queryAllByTestId('breadcrumbs-item')).toHaveLength(2); expect(queryByTestId('ellipsis')).not.toBeInTheDocument(); }); + + it('should render personal project as fallback', () => { + foldersStore.getCachedFolder.mockReturnValue(TEST_FOLDER); + projectsStore.currentProject = null; + projectsStore.personalProject = TEST_PROJECT; + + const { getByTestId } = renderComponent({ + props: { + currentFolder: TEST_FOLDER_CHILD, + }, + }); + // Now, parent folder should also be visible + expect(getByTestId('folder-breadcrumbs')).toBeVisible(); + expect(getByTestId('home-project')).toBeVisible(); + }); }); diff --git a/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.vue b/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.vue index e374ae23cb..1d1a756d7e 100644 --- a/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.vue +++ b/packages/frontend/editor-ui/src/components/Folders/FolderBreadcrumbs.vue @@ -42,7 +42,9 @@ const hiddenBreadcrumbsItemsAsync = ref>(new Promise(() => { // This will be used to filter out items that are already visible in the breadcrumbs const visibleIds = ref>(new Set()); -const currentProject = computed(() => projectsStore.currentProject); +const currentProject = computed( + () => projectsStore.currentProject ?? projectsStore.personalProject, +); const projectName = computed(() => { if (currentProject.value?.type === ProjectTypes.Personal) { @@ -74,7 +76,7 @@ const visibleBreadcrumbsItems = computed(() => { items.push({ id: parent.id, label: parent.name, - href: `/projects/${projectsStore.currentProjectId}/folders/${parent.id}/workflows`, + href: `/projects/${currentProject.value?.id}/folders/${parent.id}/workflows`, parentFolder: parent.parentFolder, }); visibleIds.value.add(parent.id); @@ -84,11 +86,11 @@ const visibleBreadcrumbsItems = computed(() => { label: props.currentFolder.name, parentFolder: props.currentFolder.parentFolder, href: props.currentFolderAsLink - ? `/projects/${projectsStore.currentProjectId}/folders/${props.currentFolder.id}/workflows` + ? `/projects/${currentProject.value?.id}/folders/${props.currentFolder.id}/workflows` : undefined, }); - if (projectsStore.currentProjectId) { - visibleIds.value.add(projectsStore.currentProjectId); + if (currentProject.value) { + visibleIds.value.add(currentProject.value.id); } visibleIds.value.add(props.currentFolder.id); @@ -96,12 +98,12 @@ const visibleBreadcrumbsItems = computed(() => { }); const fetchHiddenBreadCrumbsItems = async () => { - if (!projectName.value || !props.currentFolder?.parentFolder || !projectsStore.currentProjectId) { + if (!projectName.value || !props.currentFolder?.parentFolder || !currentProject.value) { hiddenBreadcrumbsItemsAsync.value = Promise.resolve([]); } else { try { const loadedItems = foldersStore.getHiddenBreadcrumbsItems( - { id: projectsStore.currentProjectId, name: projectName.value }, + { id: currentProject.value.id, name: projectName.value }, props.currentFolder.parentFolder, { addLinks: true }, ); diff --git a/packages/frontend/editor-ui/src/components/MainHeader/WorkflowDetails.vue b/packages/frontend/editor-ui/src/components/MainHeader/WorkflowDetails.vue index c91da7d7fa..4d9bc31e07 100644 --- a/packages/frontend/editor-ui/src/components/MainHeader/WorkflowDetails.vue +++ b/packages/frontend/editor-ui/src/components/MainHeader/WorkflowDetails.vue @@ -679,7 +679,11 @@ const onBreadcrumbsItemSelected = (item: PathItem) => { @item-selected="onBreadcrumbsItemSelected" >