diff --git a/packages/web/src/modals/DatabaseLoginModal.svelte b/packages/web/src/modals/DatabaseLoginModal.svelte index 3b0e2b81..0bb05467 100644 --- a/packages/web/src/modals/DatabaseLoginModal.svelte +++ b/packages/web/src/modals/DatabaseLoginModal.svelte @@ -25,6 +25,7 @@ import ErrorMessageModal from './ErrorMessageModal.svelte'; import ModalBase from './ModalBase.svelte'; import { closeCurrentModal, showModal } from './modalTools'; + import { callServerPing } from '../utility/connectionsPinger'; export let conid; export let passwordMode; @@ -83,6 +84,7 @@ isTesting = false; if (resp.msgtype == 'connected') { setVolatileConnectionRemapping(conid, resp._id); + await callServerPing(); dispatchCacheChange({ key: `server-status-changed` }); batchDispatchCacheTriggers(x => x.conid == conid); closeCurrentModal(); diff --git a/packages/web/src/utility/api.ts b/packages/web/src/utility/api.ts index c41b65e3..5bfb76b1 100644 --- a/packages/web/src/utility/api.ts +++ b/packages/web/src/utility/api.ts @@ -209,6 +209,10 @@ export function useApiCall(route, args, defaultValue) { return result; } +export function getVolatileConnections() { + return Object.values(volatileConnectionMap); +} + function enableApiLog() { apiLogging = true; console.log('API loggin enabled'); diff --git a/packages/web/src/utility/connectionsPinger.js b/packages/web/src/utility/connectionsPinger.js index 0e626657..978b5df4 100644 --- a/packages/web/src/utility/connectionsPinger.js +++ b/packages/web/src/utility/connectionsPinger.js @@ -1,6 +1,6 @@ import _ from 'lodash'; -import { openedConnections, currentDatabase, openedConnectionsWithTemporary, getCurrentConfig } from '../stores'; -import { apiCall, strmid } from './api'; +import { openedConnections, currentDatabase, openedConnectionsWithTemporary, getCurrentConfig, getOpenedConnections } from '../stores'; +import { apiCall, getVolatileConnections, strmid } from './api'; import { getConnectionList } from './metadataLoaders'; import hasPermission from '../utility/hasPermission'; @@ -11,9 +11,14 @@ import hasPermission from '../utility/hasPermission'; // }; const doServerPing = value => { + const conidArray = [...value]; + if (getCurrentConfig().storageDatabase && hasPermission('internal-storage')) { + conidArray.push('__storage'); + } + conidArray.push(...getVolatileConnections()); + apiCall('server-connections/ping', { - conidArray: - getCurrentConfig().storageDatabase && hasPermission('internal-storage') ? ['__storage', ...value] : value, + conidArray, strmid, }); }; @@ -43,3 +48,8 @@ export function subscribeConnectionPingers() { currentDatabaseHandle = window.setInterval(() => doDatabasePing(value), 20 * 1000); }); } + +export function callServerPing() { + const connections = getOpenedConnections(); + doServerPing(connections); +} \ No newline at end of file