fix(editor): Fix folders UI for different plans (no-changelog) (#14159)

This commit is contained in:
Milorad FIlipović
2025-03-25 11:56:37 +01:00
committed by GitHub
parent ca01236dd1
commit 1ff3049ffb
4 changed files with 22 additions and 5 deletions

View File

@@ -212,6 +212,11 @@ export function getNewFolderNameInput() {
export function getNewFolderModalErrorMessage() { export function getNewFolderModalErrorMessage() {
return cy.get('.el-message-box__errormsg').filter(':visible'); return cy.get('.el-message-box__errormsg').filter(':visible');
} }
export function getProjectTab(tabId: string) {
return cy.getByTestId('project-tabs').find(`#${tabId}`);
}
/** /**
* Actions * Actions
*/ */

View File

@@ -32,6 +32,7 @@ import {
getPersonalProjectMenuItem, getPersonalProjectMenuItem,
getProjectEmptyState, getProjectEmptyState,
getProjectMenuItem, getProjectMenuItem,
getProjectTab,
getVisibleListBreadcrumbs, getVisibleListBreadcrumbs,
getWorkflowCard, getWorkflowCard,
getWorkflowCardBreadcrumbs, getWorkflowCardBreadcrumbs,
@@ -64,12 +65,16 @@ describe('Folders', () => {
describe('Create and navigate folders', () => { describe('Create and navigate folders', () => {
it('should create folder from the project header', () => { it('should create folder from the project header', () => {
// 1. In project root
getPersonalProjectMenuItem().click(); getPersonalProjectMenuItem().click();
createFolderFromProjectHeader('My Folder'); createFolderFromProjectHeader('My Folder');
getFolderCards().should('have.length.greaterThan', 0); getFolderCards().should('have.length.greaterThan', 0);
// Clicking on the success toast should navigate to the folder // Clicking on the success toast should navigate to the folder
successToast().find('a').click(); successToast().find('a').click();
getCurrentBreadcrumb().should('contain.text', 'My Folder'); getCurrentBreadcrumb().should('contain.text', 'My Folder');
// 2. In a folder
createFolderFromListHeaderButton('My Folder 2');
getFolderCard('My Folder 2').should('exist');
}); });
it('should not allow illegal folder names', () => { it('should not allow illegal folder names', () => {
@@ -217,6 +222,10 @@ describe('Folders', () => {
cy.getByTestId('action-folder').should('exist'); cy.getByTestId('action-folder').should('exist');
createFolderFromProjectHeader('Personal Folder'); createFolderFromProjectHeader('Personal Folder');
getFolderCards().should('exist'); getFolderCards().should('exist');
// Create folder option should not be available on credentials tab
getProjectTab('ProjectsCredentials').click();
getAddResourceDropdown().click();
cy.getByTestId('action-folder').should('not.exist');
}); });
}); });

View File

@@ -61,7 +61,10 @@ const showSettings = computed(
const homeProject = computed(() => projectsStore.currentProject ?? projectsStore.personalProject); const homeProject = computed(() => projectsStore.currentProject ?? projectsStore.personalProject);
const showFolders = computed(() => { const showFolders = computed(() => {
return settingsStore.isFoldersFeatureEnabled && route.name !== VIEWS.WORKFLOWS; return (
settingsStore.isFoldersFeatureEnabled &&
[VIEWS.PROJECTS_WORKFLOWS, VIEWS.PROJECTS_FOLDERS].includes(route.name as VIEWS)
);
}); });
const ACTION_TYPES = { const ACTION_TYPES = {

View File

@@ -1231,13 +1231,13 @@ const onCreateWorkflowClick = () => {
/> />
</ProjectHeader> </ProjectHeader>
</template> </template>
<template v-if="foldersEnabled" #add-button> <template v-if="foldersEnabled || showRegisteredCommunityCTA" #add-button>
<N8nTooltip <N8nTooltip
placement="top" placement="top"
:disabled="!(isOverviewPage || (!readOnlyEnv && hasPermissionToCreateFolders))" :disabled="!(isOverviewPage || (!readOnlyEnv && hasPermissionToCreateFolders))"
> >
<template #content> <template #content>
<span v-if="isOverviewPage"> <span v-if="isOverviewPage && !showRegisteredCommunityCTA">
<span v-if="teamProjectsEnabled"> <span v-if="teamProjectsEnabled">
{{ i18n.baseText('folders.add.overview.withProjects.message') }} {{ i18n.baseText('folders.add.overview.withProjects.message') }}
</span> </span>
@@ -1245,7 +1245,7 @@ const onCreateWorkflowClick = () => {
{{ i18n.baseText('folders.add.overview.community.message') }} {{ i18n.baseText('folders.add.overview.community.message') }}
</span> </span>
</span> </span>
<span v-else-if="!readOnlyEnv && hasPermissionToCreateFolders"> <span v-else>
{{ {{
currentParentName currentParentName
? i18n.baseText('folders.add.to.parent.message', { ? i18n.baseText('folders.add.to.parent.message', {
@@ -1261,7 +1261,7 @@ const onCreateWorkflowClick = () => {
type="tertiary" type="tertiary"
data-test-id="add-folder-button" data-test-id="add-folder-button"
:class="$style['add-folder-button']" :class="$style['add-folder-button']"
:disabled="readOnlyEnv || !hasPermissionToCreateFolders" :disabled="!showRegisteredCommunityCTA && (readOnlyEnv || !hasPermissionToCreateFolders)"
@click="createFolderInCurrent" @click="createFolderInCurrent"
/> />
</N8nTooltip> </N8nTooltip>