diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index 4bc4647f3..7cd5be1e2 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -567,7 +567,10 @@ export async function loadCellFromFile() { const electron = getElectron(); - const files = await electron.showOpenDialog({}); + const files = await electron.showOpenDialog({ + properties: ['showHiddenFiles', 'openFile'], + filters: [{ name: 'All Files', extensions: ['*'] }], + }); const file = files && files[0]; if (file) { const fs = window.require('fs'); diff --git a/packages/web/src/forms/FormElectronFileSelectorRaw.svelte b/packages/web/src/forms/FormElectronFileSelectorRaw.svelte index 9c94900ec..0b9b9161b 100644 --- a/packages/web/src/forms/FormElectronFileSelectorRaw.svelte +++ b/packages/web/src/forms/FormElectronFileSelectorRaw.svelte @@ -16,7 +16,7 @@ if (!electron) return; const filePaths = await electron.showOpenDialog({ defaultPath: values[name], - properties: ['showHiddenFiles'], + properties: ['showHiddenFiles', 'openFile'], filters: [{ name: 'All Files', extensions: ['*'] }], }); const filePath = filePaths && filePaths[0]; diff --git a/packages/web/src/utility/metadataLoaders.ts b/packages/web/src/utility/metadataLoaders.ts index 11a3658f0..f3428d3ba 100644 --- a/packages/web/src/utility/metadataLoaders.ts +++ b/packages/web/src/utility/metadataLoaders.ts @@ -164,14 +164,19 @@ const authTypesLoader = ({ engine }) => ({ url: 'plugins/auth-types', params: { engine }, reloadTrigger: `installed-plugins-changed`, + errorValue: null, }); async function getCore(loader, args) { - const { url, params, reloadTrigger, transform, onLoaded } = loader(args); + const { url, params, reloadTrigger, transform, onLoaded, errorValue } = loader(args); const key = stableStringify({ url, ...params }); async function doLoad() { const resp = await apiCall(url, params); + if (resp?.errorMessage && errorValue !== undefined) { + if (onLoaded) onLoaded(errorValue); + return errorValue; + } const res = (transform || (x => x))(resp); if (onLoaded) onLoaded(res); return res; diff --git a/packages/web/src/utility/openElectronFile.ts b/packages/web/src/utility/openElectronFile.ts index 16b996b4f..0629c74a5 100644 --- a/packages/web/src/utility/openElectronFile.ts +++ b/packages/web/src/utility/openElectronFile.ts @@ -139,6 +139,7 @@ export async function openElectronFile() { { name: `SQLite database`, extensions: ['sqlite', 'db', 'sqlite3'] }, ...getFileFormatFilters(ext), ], + properties: ['showHiddenFiles', 'openFile'], }); const filePath = filePaths && filePaths[0]; if (canOpenByElectron(filePath, ext)) {