From c2dc4d76ba29c581aee615700041787b3b0267b9 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 4 Mar 2021 17:55:45 +0100 Subject: [PATCH] connection modal converted --- packages/web/src/TabContent.svelte | 16 ++- .../web/src/appobj/ConnectionAppObject.svelte | 9 ++ packages/web/src/forms/CheckboxField.svelte | 2 +- .../web/src/forms/FormCheckboxField.svelte | 16 ++- .../src/forms/FormElectronFileSelector.svelte | 14 +++ .../forms/FormElectronFileSelectorRaw.svelte | 29 +++++ .../web/src/forms/FromCheckboxFieldRaw.svelte | 7 +- packages/web/src/forms/SelectField.svelte | 6 +- .../web/src/modals/ConnectionModal.svelte | 79 +++++++++++-- .../ConnectionModalSshTunnelFields.svelte | 107 ++++++++++++++++++ .../modals/ConnectionModalSslFields.svelte | 19 ++++ packages/web/src/utility/metadataLoaders.ts | 4 +- packages/web/src/widgets/TabsPanel.svelte | 1 + 13 files changed, 284 insertions(+), 25 deletions(-) create mode 100644 packages/web/src/forms/FormElectronFileSelector.svelte create mode 100644 packages/web/src/forms/FormElectronFileSelectorRaw.svelte create mode 100644 packages/web/src/modals/ConnectionModalSshTunnelFields.svelte create mode 100644 packages/web/src/modals/ConnectionModalSslFields.svelte diff --git a/packages/web/src/TabContent.svelte b/packages/web/src/TabContent.svelte index 70cf0fbff..dc6162dad 100644 --- a/packages/web/src/TabContent.svelte +++ b/packages/web/src/TabContent.svelte @@ -4,7 +4,7 @@ if (tabComponent) { return { tabComponent, - props: selectedTab.props, + props: selectedTab && selectedTab.props, }; } return null; @@ -38,11 +38,15 @@ $: { if (selectedTab) { const { tabid } = selectedTab; - if (tabid && !mountedTabs[tabid]) - mountedTabs = { - ...mountedTabs, - [tabid]: createTabComponent(selectedTab), - }; + if (tabid && !mountedTabs[tabid]) { + const newTab = createTabComponent(selectedTab); + if (newTab) { + mountedTabs = { + ...mountedTabs, + [tabid]: newTab, + }; + } + } } } diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index 84c19d608..05823a149 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -9,8 +9,15 @@ const handleConnect = () => { openedConnections.update(list => _.uniq([...list, data._id])); }; + const handleEdit = () => { + showModal(ConnectionModal, { connection: data }); + }; return [ + { + text: 'Edit', + onClick: handleEdit, + }, !$openedConnections.includes(data._id) && { text: 'Connect', onClick: handleConnect, @@ -37,6 +44,8 @@ import { currentDatabase, extensions, openedConnections } from '../stores'; import axios from '../utility/axios'; import { filterName } from 'dbgate-datalib'; + import { showModal } from '../modals/modalTools'; + import ConnectionModal from '../modals/ConnectionModal.svelte'; export let data; diff --git a/packages/web/src/forms/CheckboxField.svelte b/packages/web/src/forms/CheckboxField.svelte index 8331051ba..301fff3c4 100644 --- a/packages/web/src/forms/CheckboxField.svelte +++ b/packages/web/src/forms/CheckboxField.svelte @@ -1 +1 @@ - + diff --git a/packages/web/src/forms/FormCheckboxField.svelte b/packages/web/src/forms/FormCheckboxField.svelte index 63b0d1d3c..ff5b13948 100644 --- a/packages/web/src/forms/FormCheckboxField.svelte +++ b/packages/web/src/forms/FormCheckboxField.svelte @@ -1,14 +1,22 @@ - - + setFieldValue(name, !$values[name]) }} +> + diff --git a/packages/web/src/forms/FormElectronFileSelector.svelte b/packages/web/src/forms/FormElectronFileSelector.svelte new file mode 100644 index 000000000..2a0639d6d --- /dev/null +++ b/packages/web/src/forms/FormElectronFileSelector.svelte @@ -0,0 +1,14 @@ + + + + + diff --git a/packages/web/src/forms/FormElectronFileSelectorRaw.svelte b/packages/web/src/forms/FormElectronFileSelectorRaw.svelte new file mode 100644 index 000000000..fb2b0eb83 --- /dev/null +++ b/packages/web/src/forms/FormElectronFileSelectorRaw.svelte @@ -0,0 +1,29 @@ + + +
+ + Browse +
diff --git a/packages/web/src/forms/FromCheckboxFieldRaw.svelte b/packages/web/src/forms/FromCheckboxFieldRaw.svelte index eb5328772..b381e071e 100644 --- a/packages/web/src/forms/FromCheckboxFieldRaw.svelte +++ b/packages/web/src/forms/FromCheckboxFieldRaw.svelte @@ -1,10 +1,13 @@ - setFieldValue(name, e.target['checked'])} /> + diff --git a/packages/web/src/forms/SelectField.svelte b/packages/web/src/forms/SelectField.svelte index f3b92f7a3..810bc5761 100644 --- a/packages/web/src/forms/SelectField.svelte +++ b/packages/web/src/forms/SelectField.svelte @@ -1,12 +1,12 @@