mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-29 08:43:57 +00:00
column drop down in column map modal
This commit is contained in:
30
packages/web/src/elements/ColumnMapColumnDropdown.svelte
Normal file
30
packages/web/src/elements/ColumnMapColumnDropdown.svelte
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<script alng="ts">
|
||||||
|
import DropDownButton from '../buttons/DropDownButton.svelte';
|
||||||
|
import TextField from '../forms/TextField.svelte';
|
||||||
|
|
||||||
|
export let tableInfo;
|
||||||
|
export let onChange;
|
||||||
|
export let value;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if tableInfo}
|
||||||
|
<div class="wrapper">
|
||||||
|
<TextField {...$$restProps} {value} on:input={e => onChange(e.target.value)} />
|
||||||
|
<DropDownButton
|
||||||
|
menu={() => {
|
||||||
|
return tableInfo.columns.map(opt => ({
|
||||||
|
text: opt.columnName,
|
||||||
|
onClick: () => onChange(opt.columnName),
|
||||||
|
}));
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{:else}
|
||||||
|
<TextField {value} on:input={e => onChange(e.target.value)} />
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.wrapper {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import DropDownButton from '../buttons/DropDownButton.svelte';
|
||||||
import FormStyledButton from '../buttons/FormStyledButton.svelte';
|
import FormStyledButton from '../buttons/FormStyledButton.svelte';
|
||||||
|
import ColumnMapColumnDropdown from '../elements/ColumnMapColumnDropdown.svelte';
|
||||||
import Link from '../elements/Link.svelte';
|
import Link from '../elements/Link.svelte';
|
||||||
import TableControl from '../elements/TableControl.svelte';
|
import TableControl from '../elements/TableControl.svelte';
|
||||||
import CheckboxField from '../forms/CheckboxField.svelte';
|
import CheckboxField from '../forms/CheckboxField.svelte';
|
||||||
|
|
||||||
import FormProvider from '../forms/FormProvider.svelte';
|
import FormProvider from '../forms/FormProvider.svelte';
|
||||||
import FormSubmit from '../forms/FormSubmit.svelte';
|
import FormSubmit from '../forms/FormSubmit.svelte';
|
||||||
import TextField from '../forms/TextField.svelte';
|
|
||||||
import ModalBase from './ModalBase.svelte';
|
import ModalBase from './ModalBase.svelte';
|
||||||
import { closeCurrentModal } from './modalTools';
|
import { closeCurrentModal } from './modalTools';
|
||||||
|
|
||||||
@@ -73,17 +74,19 @@
|
|||||||
/>
|
/>
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
<svelte:fragment slot="1" let:row let:index>
|
<svelte:fragment slot="1" let:row let:index>
|
||||||
<TextField
|
<ColumnMapColumnDropdown
|
||||||
value={row['src']}
|
value={row['src']}
|
||||||
on:change={e =>
|
onChange={column =>
|
||||||
(value = (value || []).map((x, i) => (i == index ? { ...x, src: e.target.value, ignore: false } : x)))}
|
(value = (value || []).map((x, i) => (i == index ? { ...x, src: column, ignore: false } : x)))}
|
||||||
|
tableInfo={sourceTableInfo}
|
||||||
/>
|
/>
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
<svelte:fragment slot="2" let:row let:index>
|
<svelte:fragment slot="2" let:row let:index>
|
||||||
<TextField
|
<ColumnMapColumnDropdown
|
||||||
value={row['dst']}
|
value={row['dst']}
|
||||||
on:change={e =>
|
onChange={e =>
|
||||||
(value = (value || []).map((x, i) => (i == index ? { ...x, dst: e.target.value, ignore: false } : x)))}
|
(value = (value || []).map((x, i) => (i == index ? { ...x, dst: e.target.value, ignore: false } : x)))}
|
||||||
|
tableInfo={targetTableInfo}
|
||||||
/>
|
/>
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
<svelte:fragment slot="3" let:index>
|
<svelte:fragment slot="3" let:index>
|
||||||
|
|||||||
Reference in New Issue
Block a user