mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(editor): Hide 'Move' modal toast links that can't be accessed and better empty state (no-changelog) (#15977)
This commit is contained in:
@@ -487,14 +487,21 @@ describe('MoveToFolderModal', () => {
|
||||
await userEvent.click(submitButton);
|
||||
|
||||
expect(mockEventBus.emit).toHaveBeenCalledWith('folder-transferred', {
|
||||
newParent: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
type: folder.resource,
|
||||
source: {
|
||||
projectId: personalProject.id,
|
||||
folder: {
|
||||
id: TEST_FOLDER_RESOURCE.id,
|
||||
name: TEST_FOLDER_RESOURCE.name,
|
||||
},
|
||||
},
|
||||
destination: {
|
||||
projectId: teamProjects[0].id,
|
||||
parentFolder: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
},
|
||||
canAccess: true,
|
||||
},
|
||||
folder: { id: TEST_FOLDER_RESOURCE.id, name: TEST_FOLDER_RESOURCE.name },
|
||||
projectId: personalProject.id,
|
||||
destinationProjectId: teamProjects[0].id,
|
||||
shareCredentials: undefined,
|
||||
});
|
||||
});
|
||||
@@ -536,14 +543,21 @@ describe('MoveToFolderModal', () => {
|
||||
await userEvent.click(submitButton);
|
||||
|
||||
expect(mockEventBus.emit).toHaveBeenCalledWith('folder-transferred', {
|
||||
newParent: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
type: folder.resource,
|
||||
source: {
|
||||
projectId: personalProject.id,
|
||||
folder: {
|
||||
id: TEST_FOLDER_RESOURCE.id,
|
||||
name: TEST_FOLDER_RESOURCE.name,
|
||||
},
|
||||
},
|
||||
destination: {
|
||||
projectId: teamProjects[0].id,
|
||||
parentFolder: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
},
|
||||
canAccess: true,
|
||||
},
|
||||
folder: { id: TEST_FOLDER_RESOURCE.id, name: TEST_FOLDER_RESOURCE.name },
|
||||
projectId: personalProject.id,
|
||||
destinationProjectId: teamProjects[0].id,
|
||||
shareCredentials: [shareableUsedCredential.id],
|
||||
});
|
||||
});
|
||||
@@ -584,14 +598,21 @@ describe('MoveToFolderModal', () => {
|
||||
await userEvent.click(submitButton);
|
||||
|
||||
expect(mockEventBus.emit).toHaveBeenCalledWith('folder-transferred', {
|
||||
newParent: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
type: folder.resource,
|
||||
source: {
|
||||
projectId: personalProject.id,
|
||||
folder: {
|
||||
id: TEST_FOLDER_RESOURCE.id,
|
||||
name: TEST_FOLDER_RESOURCE.name,
|
||||
},
|
||||
},
|
||||
destination: {
|
||||
projectId: teamProjects[0].id,
|
||||
parentFolder: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
},
|
||||
canAccess: true,
|
||||
},
|
||||
folder: { id: TEST_FOLDER_RESOURCE.id, name: TEST_FOLDER_RESOURCE.name },
|
||||
projectId: personalProject.id,
|
||||
destinationProjectId: teamProjects[0].id,
|
||||
shareCredentials: undefined,
|
||||
});
|
||||
});
|
||||
@@ -628,14 +649,21 @@ describe('MoveToFolderModal', () => {
|
||||
await userEvent.click(submitButton);
|
||||
|
||||
expect(mockEventBus.emit).toHaveBeenCalledWith('folder-transferred', {
|
||||
newParent: {
|
||||
id: anotherUser.id,
|
||||
name: anotherUser.name,
|
||||
type: 'project',
|
||||
source: {
|
||||
projectId: personalProject.id,
|
||||
folder: {
|
||||
id: TEST_FOLDER_RESOURCE.id,
|
||||
name: TEST_FOLDER_RESOURCE.name,
|
||||
},
|
||||
},
|
||||
destination: {
|
||||
projectId: anotherUser.id,
|
||||
parentFolder: {
|
||||
id: undefined,
|
||||
name: anotherUser.name,
|
||||
},
|
||||
canAccess: false,
|
||||
},
|
||||
folder: { id: TEST_FOLDER_RESOURCE.id, name: TEST_FOLDER_RESOURCE.name },
|
||||
projectId: personalProject.id,
|
||||
destinationProjectId: anotherUser.id,
|
||||
shareCredentials: undefined,
|
||||
});
|
||||
});
|
||||
@@ -731,17 +759,21 @@ describe('MoveToFolderModal', () => {
|
||||
await userEvent.click(submitButton);
|
||||
|
||||
expect(mockEventBus.emit).toHaveBeenCalledWith('workflow-transferred', {
|
||||
newParent: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
type: folder.resource,
|
||||
source: {
|
||||
projectId: personalProject.id,
|
||||
workflow: {
|
||||
id: TEST_WORKFLOW_RESOURCE.id,
|
||||
name: TEST_WORKFLOW_RESOURCE.name,
|
||||
},
|
||||
},
|
||||
workflow: {
|
||||
id: TEST_WORKFLOW_RESOURCE.id,
|
||||
name: TEST_WORKFLOW_RESOURCE.name,
|
||||
oldParentId: TEST_WORKFLOW_RESOURCE.parentFolderId,
|
||||
destination: {
|
||||
projectId: teamProjects[0].id,
|
||||
parentFolder: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
},
|
||||
canAccess: true,
|
||||
},
|
||||
projectId: teamProjects[0].id,
|
||||
shareCredentials: undefined,
|
||||
});
|
||||
});
|
||||
@@ -778,17 +810,21 @@ describe('MoveToFolderModal', () => {
|
||||
await userEvent.click(submitButton);
|
||||
|
||||
expect(mockEventBus.emit).toHaveBeenCalledWith('workflow-transferred', {
|
||||
newParent: {
|
||||
id: anotherUser.id,
|
||||
name: anotherUser.name,
|
||||
type: 'project',
|
||||
source: {
|
||||
projectId: personalProject.id,
|
||||
workflow: {
|
||||
id: TEST_WORKFLOW_RESOURCE.id,
|
||||
name: TEST_WORKFLOW_RESOURCE.name,
|
||||
},
|
||||
},
|
||||
workflow: {
|
||||
id: TEST_WORKFLOW_RESOURCE.id,
|
||||
name: TEST_WORKFLOW_RESOURCE.name,
|
||||
oldParentId: TEST_WORKFLOW_RESOURCE.parentFolderId,
|
||||
destination: {
|
||||
projectId: anotherUser.id,
|
||||
parentFolder: {
|
||||
id: undefined,
|
||||
name: anotherUser.name,
|
||||
},
|
||||
canAccess: false,
|
||||
},
|
||||
projectId: anotherUser.id,
|
||||
shareCredentials: undefined,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -60,14 +60,14 @@ const credentialsStore = useCredentialsStore();
|
||||
const workflowsStore = useWorkflowsStore();
|
||||
|
||||
const selectedFolder = ref<ChangeLocationSearchResult | null>(null);
|
||||
const selectedProject = ref<ProjectSharingData | null>(projectsStore.currentProject ?? null);
|
||||
const selectedProject = ref<ProjectSharingData | null>(projectsStore.currentProject);
|
||||
const isPersonalProject = computed(() => {
|
||||
return selectedProject.value?.type === ProjectTypes.Personal;
|
||||
});
|
||||
const isOwnPersonalProject = computed(() => {
|
||||
return (
|
||||
selectedProject.value?.type === ProjectTypes.Personal &&
|
||||
selectedProject.value.id === projectsStore.personalProject?.id
|
||||
selectedProject.value?.id === projectsStore.personalProject?.id
|
||||
);
|
||||
});
|
||||
const isTransferringOwnership = computed(() => {
|
||||
@@ -196,12 +196,29 @@ const onSubmit = () => {
|
||||
};
|
||||
|
||||
if (props.data.resourceType === 'folder') {
|
||||
if (selectedProject.value?.id !== projectsStore.currentProject?.id) {
|
||||
if (selectedProject.value.id !== projectsStore.currentProject?.id) {
|
||||
props.data.workflowListEventBus.emit('folder-transferred', {
|
||||
newParent,
|
||||
folder: { id: props.data.resource.id, name: props.data.resource.name },
|
||||
projectId: projectsStore.currentProject?.id,
|
||||
destinationProjectId: selectedProject.value.id,
|
||||
source: {
|
||||
projectId: projectsStore.currentProject?.id,
|
||||
folder: {
|
||||
id: props.data.resource.id,
|
||||
name: props.data.resource.name,
|
||||
},
|
||||
},
|
||||
destination: {
|
||||
projectId: selectedProject.value.id,
|
||||
parentFolder: {
|
||||
id:
|
||||
selectedFolder.value && selectedFolder.value.id !== selectedProject.value.id
|
||||
? selectedFolder.value.id
|
||||
: undefined,
|
||||
name:
|
||||
selectedFolder.value && selectedFolder.value.id !== selectedProject.value.id
|
||||
? selectedFolder.value.name
|
||||
: targetProjectName.value,
|
||||
},
|
||||
canAccess: isFolderSelectable.value,
|
||||
},
|
||||
shareCredentials: shareUsedCredentials.value
|
||||
? shareableCredentials.value.map((c) => c.id)
|
||||
: undefined,
|
||||
@@ -215,12 +232,26 @@ const onSubmit = () => {
|
||||
} else {
|
||||
if (isTransferringOwnership.value) {
|
||||
props.data.workflowListEventBus.emit('workflow-transferred', {
|
||||
newParent,
|
||||
projectId: selectedProject.value.id,
|
||||
workflow: {
|
||||
id: props.data.resource.id,
|
||||
name: props.data.resource.name,
|
||||
oldParentId: props.data.resource.parentFolderId,
|
||||
source: {
|
||||
projectId: projectsStore.currentProject?.id,
|
||||
workflow: {
|
||||
id: props.data.resource.id,
|
||||
name: props.data.resource.name,
|
||||
},
|
||||
},
|
||||
destination: {
|
||||
projectId: selectedProject.value.id,
|
||||
parentFolder: {
|
||||
id:
|
||||
selectedFolder.value && selectedFolder.value.id !== selectedProject.value.id
|
||||
? selectedFolder.value.id
|
||||
: undefined,
|
||||
name:
|
||||
selectedFolder.value && selectedFolder.value.id !== selectedProject.value.id
|
||||
? selectedFolder.value.name
|
||||
: targetProjectName.value,
|
||||
},
|
||||
canAccess: isFolderSelectable.value,
|
||||
},
|
||||
shareCredentials: shareUsedCredentials.value
|
||||
? shareableCredentials.value.map((c) => c.id)
|
||||
@@ -237,6 +268,7 @@ const onSubmit = () => {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
uiStore.closeModal(MOVE_FOLDER_MODAL_KEY);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user