From 0eae14e27ab4fab3229750d6b2a32868db1e8dd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milorad=20FIlipovi=C4=87?= Date: Mon, 24 Feb 2025 13:52:29 +0100 Subject: [PATCH] feat(editor): Implement folder navigation in workflows list (#13370) --- packages/@n8n/permissions/src/constants.ee.ts | 1 + .../components/N8nBreadcrumbs/Breadcrumbs.vue | 9 +- packages/editor-ui/src/Interface.ts | 35 +++ packages/editor-ui/src/api/workflows.ts | 15 ++ .../src/components/CredentialCard.test.ts | 3 +- .../src/components/CredentialCard.vue | 20 +- .../src/components/Folders/FolderCard.test.ts | 204 ++++++++++++++++ .../src/components/Folders/FolderCard.vue | 217 ++++++++++++++++++ .../src/components/Folders/constants.ts | 10 + .../components/Projects/ProjectCardBadge.vue | 25 +- .../src/components/Projects/ProjectIcon.vue | 24 +- .../src/components/Projects/ProjectTabs.vue | 3 + .../editor-ui/src/components/WorkflowCard.vue | 79 +++++-- .../forms/ResourceFiltersDropdown.vue | 17 +- .../layouts/ResourcesListLayout.vue | 94 +++++--- packages/editor-ui/src/constants.ts | 2 + packages/editor-ui/src/permissions.test.ts | 2 + .../src/plugins/i18n/locales/en.json | 3 +- packages/editor-ui/src/plugins/icons/index.ts | 2 + .../editor-ui/src/routes/projects.routes.ts | 19 ++ packages/editor-ui/src/stores/rbac.store.ts | 1 + .../editor-ui/src/stores/workflows.store.ts | 10 +- packages/editor-ui/src/utils/typeGuards.ts | 35 +++ .../editor-ui/src/views/CredentialsView.vue | 16 +- .../editor-ui/src/views/VariablesView.vue | 33 ++- .../editor-ui/src/views/WorkflowsView.test.ts | 67 +++++- .../editor-ui/src/views/WorkflowsView.vue | 203 +++++++++++++--- 27 files changed, 1024 insertions(+), 125 deletions(-) create mode 100644 packages/editor-ui/src/components/Folders/FolderCard.test.ts create mode 100644 packages/editor-ui/src/components/Folders/FolderCard.vue create mode 100644 packages/editor-ui/src/components/Folders/constants.ts diff --git a/packages/@n8n/permissions/src/constants.ee.ts b/packages/@n8n/permissions/src/constants.ee.ts index 7a0ebf2cb1..eda49a605b 100644 --- a/packages/@n8n/permissions/src/constants.ee.ts +++ b/packages/@n8n/permissions/src/constants.ee.ts @@ -22,4 +22,5 @@ export const RESOURCES = { variable: [...DEFAULT_OPERATIONS] as const, workersView: ['manage'] as const, workflow: ['share', 'execute', 'move', ...DEFAULT_OPERATIONS] as const, + folder: ['create', 'read'] as const, } as const; diff --git a/packages/design-system/src/components/N8nBreadcrumbs/Breadcrumbs.vue b/packages/design-system/src/components/N8nBreadcrumbs/Breadcrumbs.vue index c1db204000..d556770072 100644 --- a/packages/design-system/src/components/N8nBreadcrumbs/Breadcrumbs.vue +++ b/packages/design-system/src/components/N8nBreadcrumbs/Breadcrumbs.vue @@ -53,7 +53,7 @@ const hasHiddenItems = computed(() => { }); const showEllipsis = computed(() => { - return hasHiddenItems.value || props.pathTruncated; + return props.items.length && (hasHiddenItems.value || props.pathTruncated); }); const dropdownDisabled = computed(() => { @@ -137,7 +137,9 @@ const handleTooltipClose = () => { >