disconnect command

This commit is contained in:
Jan Prochazka
2022-12-25 19:27:24 +01:00
parent 5c1c4e1fa6
commit c340ac9112
5 changed files with 23 additions and 4 deletions

View File

@@ -52,6 +52,7 @@
const electron = getElectron();
const currentDb = getCurrentDatabase();
openedConnections.update(list => list.filter(x => x != conid));
removeVolatileMapping(conid);
if (electron) {
apiCall('server-connections/disconnect', { conid });
}
@@ -100,7 +101,7 @@
import getConnectionLabel from '../utility/getConnectionLabel';
import { getDatabaseList, useUsedApps } from '../utility/metadataLoaders';
import { getLocalStorage } from '../utility/storageCache';
import { apiCall } from '../utility/api';
import { apiCall, removeVolatileMapping } from '../utility/api';
import ImportDatabaseDumpModal from '../modals/ImportDatabaseDumpModal.svelte';
import { closeMultipleTabs } from '../widgets/TabsPanel.svelte';
import AboutModal from '../modals/AboutModal.svelte';

View File

@@ -37,6 +37,7 @@ import { openWebLink } from '../utility/exportFileTools';
import { getSettings } from '../utility/metadataLoaders';
import { isMac } from '../utility/common';
import { doLogout, internalRedirectTo } from '../clientAuth';
import { disconnectServerConnection } from '../appobj/ConnectionAppObject.svelte';
// function themeCommand(theme: ThemeDefinition) {
// return {
@@ -552,6 +553,14 @@ registerCommand({
onClick: doLogout,
});
registerCommand({
id: 'app.disconnect',
category: 'App',
name: 'Disconnect',
testEnabled: () => getCurrentConfig()?.singleConnection != null,
onClick: () => disconnectServerConnection(getCurrentConfig()?.singleConnection?._id),
});
export function registerFileCommands({
idPrefix,
category,

View File

@@ -39,6 +39,14 @@ export function getVolatileRemappingInv(conid) {
return volatileConnectionMapInv[conid] || conid;
}
export function removeVolatileMapping(conid) {
const mapped = volatileConnectionMap[conid];
if (mapped) {
delete volatileConnectionMap[conid];
delete volatileConnectionMapInv[mapped];
}
}
function wantEventSource() {
if (!eventSource) {
eventSource = new EventSource(`${resolveApi()}/stream`);