diff --git a/packages/web/src/forms/FormSelectFieldRaw.svelte b/packages/web/src/forms/FormSelectFieldRaw.svelte index 1600fc248..d43ac5adc 100644 --- a/packages/web/src/forms/FormSelectFieldRaw.svelte +++ b/packages/web/src/forms/FormSelectFieldRaw.svelte @@ -3,8 +3,15 @@ import SelectField from './SelectField.svelte'; export let name; + export let isClearable = false; const { values, setFieldValue } = getFormContext(); - setFieldValue(name, e.target['value'])} /> + setFieldValue(name, e.detail)} + {isClearable} + +/> diff --git a/packages/web/src/forms/SelectField.svelte b/packages/web/src/forms/SelectField.svelte index 810bc5761..f09a07788 100644 --- a/packages/web/src/forms/SelectField.svelte +++ b/packages/web/src/forms/SelectField.svelte @@ -1,14 +1,57 @@ - +{#if isNative} + +{:else} + options.find(x => x.value == item)) + : options.find(x => x.value == value)} + on:select={e => { + if (isMulti) { + dispatch( + 'change', + e.detail?.map(x => x.value) + ); + } else { + dispatch('change', e.detail.value); + } + }} + showIndicator={!isMulti} + isClearable={isMulti} + {isMulti} + bind:listOpen + bind:isFocused + /> +{/if} diff --git a/packages/web/src/impexp/FormConnectionSelect.svelte b/packages/web/src/impexp/FormConnectionSelect.svelte index 36cb0201d..813c765f5 100644 --- a/packages/web/src/impexp/FormConnectionSelect.svelte +++ b/packages/web/src/impexp/FormConnectionSelect.svelte @@ -1,5 +1,5 @@ -{#if connectionOptions.length == 0} -
Not available
-{:else} - -{/if} + diff --git a/packages/web/src/impexp/FormDatabaseSelect.svelte b/packages/web/src/impexp/FormDatabaseSelect.svelte index 4d02f4555..17c50a776 100644 --- a/packages/web/src/impexp/FormDatabaseSelect.svelte +++ b/packages/web/src/impexp/FormDatabaseSelect.svelte @@ -14,8 +14,4 @@ })); -{#if databaseOptions.length == 0} -
Not available
-{:else} - -{/if} + diff --git a/packages/web/src/impexp/FormSchemaSelect.svelte b/packages/web/src/impexp/FormSchemaSelect.svelte index 41065568c..7096d8266 100644 --- a/packages/web/src/impexp/FormSchemaSelect.svelte +++ b/packages/web/src/impexp/FormSchemaSelect.svelte @@ -1,23 +1,20 @@ - - {#if schemaOptions.length == 0} -
Not available
- {:else} - - {/if} - \ No newline at end of file + import { getFormContext } from '../forms/FormProviderCore.svelte'; + import FormSelectField from '../forms/FormSelectField.svelte'; + import { useDatabaseInfo, useDatabaseList } from '../utility/metadataLoaders'; + + export let conidName; + export let databaseName; + + const { values } = getFormContext(); + $: dbinfo = useDatabaseInfo({ conid: $values[conidName], database: values[databaseName] }); + + $: schemaOptions = (($dbinfo && $dbinfo.schemas) || []).map(schema => ({ + value: schema.schemaName, + label: schema.schemaName, + })); + + +{#if schemaOptions.length > 0} + +{/if} diff --git a/packages/web/src/impexp/FormTablesSelect.svelte b/packages/web/src/impexp/FormTablesSelect.svelte index 3c5402967..47957a132 100644 --- a/packages/web/src/impexp/FormTablesSelect.svelte +++ b/packages/web/src/impexp/FormTablesSelect.svelte @@ -2,14 +2,13 @@ import { getFormContext } from '../forms/FormProviderCore.svelte'; import FormSelectField from '../forms/FormSelectField.svelte'; import { useDatabaseInfo, useDatabaseList } from '../utility/metadataLoaders'; - import SvelteSelect from 'svelte-select'; export let conidName; export let databaseName; export let schemaName; const { values } = getFormContext(); - $: dbinfo = useDatabaseInfo({ conid: $values[conidName], database: values[databaseName] }); + $: dbinfo = useDatabaseInfo({ conid: $values[conidName], database: $values[databaseName] }); $: tablesOptions = [...(($dbinfo && $dbinfo.tables) || []), ...(($dbinfo && $dbinfo.views) || [])] .filter(x => !$values[schemaName] || x.schemaName == $values[schemaName]) @@ -19,8 +18,4 @@ })); -{#if tablesOptions.length == 0} -
Not available
-{:else} - -{/if} + diff --git a/packages/web/src/impexp/SourceTargetConfig.svelte b/packages/web/src/impexp/SourceTargetConfig.svelte index 514433568..4188a212d 100644 --- a/packages/web/src/impexp/SourceTargetConfig.svelte +++ b/packages/web/src/impexp/SourceTargetConfig.svelte @@ -78,6 +78,7 @@ schemaName={schemaNameField} databaseName={databaseNameField} name={tablesField} + label="Tables / views" /> {/if} {/if} diff --git a/packages/web/src/modals/ImportExportModal.svelte b/packages/web/src/modals/ImportExportModal.svelte index ea911ccd6..c37357446 100644 --- a/packages/web/src/modals/ImportExportModal.svelte +++ b/packages/web/src/modals/ImportExportModal.svelte @@ -1,4 +1,5 @@ - + Import/Export diff --git a/packages/web/src/stores.ts b/packages/web/src/stores.ts index a75968ac5..c53213bf4 100644 --- a/packages/web/src/stores.ts +++ b/packages/web/src/stores.ts @@ -39,6 +39,7 @@ export const leftPanelWidth = writable(300); export const currentDropDownMenu = writable(null); export const openedModals = writable([]); export const nullStore = readable(null, () => {}); +export const currentArchive = writable('default'); subscribeCssVariable(selectedWidget, x => (x ? 1 : 0), '--dim-visible-left-panel'); subscribeCssVariable(visibleToolbar, x => (x ? 1 : 0), '--dim-visible-toolbar');