diff --git a/src/renderer/components/SettingBarContext.vue b/src/renderer/components/SettingBarContext.vue index c1fcd49c..2564ac14 100644 --- a/src/renderer/components/SettingBarContext.vue +++ b/src/renderer/components/SettingBarContext.vue @@ -37,7 +37,7 @@ /> {{ t('application.newFolder') }}
{{ folder.name || t('general.folder') }}
+ +
+ + {{ t('application.outOfFolder') }} +
@@ -137,7 +150,9 @@ const { getConnectionName, addConnection, deleteConnection, - addFolder + addFolder, + addToFolder, + removeFromFolders } = connectionsStore; const { getFolders: folders } = storeToRefs(connectionsStore); @@ -162,7 +177,8 @@ const isConnectionEdit = ref(false); const connectionName = computed(() => props.contextConnection.name || getConnectionName(props.contextConnection.uid) || t('general.folder', 1)); const isConnected = computed(() => getWorkspace(props.contextConnection.uid)?.connectionStatus === 'connected'); -const parsedFolders = computed(() => folders.value.filter(f => !f.connections.includes(props.contextConnection.uid))); +const filteredFolders = computed(() => folders.value.filter(f => !f.connections.includes(props.contextConnection.uid))); +const isInFolder = computed(() => folders.value.some(f => f.connections.includes(props.contextConnection.uid))); const confirmDeleteConnection = () => { if (isConnected.value) @@ -177,7 +193,18 @@ const moveToFolder = (folderUid?: string) => { connections: [props.contextConnection.uid] }); } + else { + addToFolder({ + folder: folderUid, + connection: props.contextConnection.uid + }); + } + + closeContext(); +}; +const outOfFolder = () => { + removeFromFolders(props.contextConnection.uid); closeContext(); }; diff --git a/src/renderer/i18n/en-US.ts b/src/renderer/i18n/en-US.ts index c6f6e986..d69bc992 100644 --- a/src/renderer/i18n/en-US.ts +++ b/src/renderer/i18n/en-US.ts @@ -365,6 +365,7 @@ export const enUS = { folderName: 'Folder name', deleteFolder: 'Delete folder', newFolder: 'New folder', + outOfFolder: 'Out of folder', editConnectionAppearance: 'Edit connection appearance', defaultCopyType: 'Default copy type', showTableSize: 'Show table size in sidebar', diff --git a/src/renderer/stores/connections.ts b/src/renderer/stores/connections.ts index 2d8df113..b3b16f92 100644 --- a/src/renderer/stores/connections.ts +++ b/src/renderer/stores/connections.ts @@ -95,7 +95,7 @@ export const useConnectionsStore = defineStore('connections', { ? this.connectionsOrder.findIndex((conn: SidebarElement) => conn.uid === params.after) : this.connectionsOrder.length; - this.removeFromFolders(params.connections); + this.removeFromFolders(...params.connections); this.connectionsOrder.splice(index, 0, { isFolder: true, @@ -116,6 +116,8 @@ export const useConnectionsStore = defineStore('connections', { this.clearEmptyFolders(); }, addToFolder (params: {folder: string; connection: string}) { + this.removeFromFolders(params.connection); + this.connectionsOrder = this.connectionsOrder.map((conn: SidebarElement) => { if (conn.uid === params.folder) conn.connections.push(params.connection);