diff --git a/packages/web/src/appobj/DatabaseAppObject.svelte b/packages/web/src/appobj/DatabaseAppObject.svelte index 15f59ef9e..f2f4b3be3 100644 --- a/packages/web/src/appobj/DatabaseAppObject.svelte +++ b/packages/web/src/appobj/DatabaseAppObject.svelte @@ -170,14 +170,18 @@ }; const handleExportModel = async () => { - const resp = await apiCall('database-connections/export-model', { + showModal(ExportDbModelModal, { conid: connection._id, database: name, }); - currentArchive.set(resp.archiveFolder); - selectedWidget.set('archive'); - visibleWidgetSideBar.set(true); - showSnackbarSuccess(`Saved to archive ${resp.archiveFolder}`); + // const resp = await apiCall('database-connections/export-model', { + // conid: connection._id, + // database: name, + // }); + // currentArchive.set(resp.archiveFolder); + // selectedWidget.set('archive'); + // visibleWidgetSideBar.set(true); + // showSnackbarSuccess(`Saved to archive ${resp.archiveFolder}`); }; const handleCompareWithCurrentDb = () => { @@ -198,13 +202,13 @@ ); }; - const handleOpenJsonModel = async () => { - const db = await getDatabaseInfo({ - conid: connection._id, - database: name, - }); - openJsonDocument(db, name); - }; + // const handleOpenJsonModel = async () => { + // const db = await getDatabaseInfo({ + // conid: connection._id, + // database: name, + // }); + // openJsonDocument(db, name); + // }; const handleGenerateScript = async () => { const data = await apiCall('database-connections/export-keys', { @@ -325,11 +329,12 @@ hasPermission(`dbops/sql-generator`) && { onClick: handleSqlGenerator, text: 'SQL Generator' }, driver?.supportsDatabaseProfiler && hasPermission(`dbops/profiler`) && { onClick: handleDatabaseProfiler, text: 'Database profiler' }, + // isSqlOrDoc && + // isSqlOrDoc && + // hasPermission(`dbops/model/view`) && { onClick: handleOpenJsonModel, text: 'Open model as JSON' }, isSqlOrDoc && - isSqlOrDoc && - hasPermission(`dbops/model/view`) && { onClick: handleOpenJsonModel, text: 'Open model as JSON' }, - isSqlOrDoc && - hasPermission(`dbops/model/view`) && { onClick: handleExportModel, text: 'Export DB model - experimental' }, + isProApp() && + hasPermission(`dbops/model/view`) && { onClick: handleExportModel, text: 'Export DB model' }, isSqlOrDoc && _.get($currentDatabase, 'connection._id') && hasPermission('dbops/model/compare') && @@ -408,6 +413,7 @@ import newTable from '../tableeditor/newTable'; import { loadSchemaList, switchCurrentDatabase } from '../utility/common'; import { isProApp } from '../utility/proTools'; + import ExportDbModelModal from '../modals/ExportDbModelModal.svelte'; export let data; export let passProps; diff --git a/packages/web/src/forms/FormElectronFileSelectorRaw.svelte b/packages/web/src/forms/FormElectronFileSelectorRaw.svelte index e59fb65f8..2f859da4a 100644 --- a/packages/web/src/forms/FormElectronFileSelectorRaw.svelte +++ b/packages/web/src/forms/FormElectronFileSelectorRaw.svelte @@ -9,6 +9,7 @@ export let name; export let disabled = false; export let defaultFileName = ''; + export let dialogProperties = ['showHiddenFiles', 'openFile']; const { values, setFieldValue } = getFormContext(); @@ -17,7 +18,7 @@ if (!electron) return; const filePaths = await electron.showOpenDialog({ defaultPath: values[name], - properties: ['showHiddenFiles', 'openFile'], + properties: dialogProperties, filters: [{ name: 'All Files', extensions: ['*'] }], }); const filePath = filePaths && filePaths[0]; diff --git a/packages/web/src/modals/ExportDbModelModal.svelte b/packages/web/src/modals/ExportDbModelModal.svelte new file mode 100644 index 000000000..d79cee84b --- /dev/null +++ b/packages/web/src/modals/ExportDbModelModal.svelte @@ -0,0 +1,5 @@ + + +