diff --git a/packages/web/src/buttons/DropDownButton.svelte b/packages/web/src/buttons/DropDownButton.svelte index e7be5adc2..f60b0d53a 100644 --- a/packages/web/src/buttons/DropDownButton.svelte +++ b/packages/web/src/buttons/DropDownButton.svelte @@ -8,9 +8,12 @@ export let icon = 'icon chevron-down'; export let menu; export let narrow = false; + export let disabled = false; let domButton; function handleClick() { + if (disabled) return; + const rect = domButton.getBoundingClientRect(); const left = rect.left; const top = rect.bottom; @@ -18,6 +21,6 @@ } - + diff --git a/packages/web/src/forms/FormDropDownTextFieldRaw.svelte b/packages/web/src/forms/FormDropDownTextFieldRaw.svelte index f55a7715c..8bc3ac85e 100644 --- a/packages/web/src/forms/FormDropDownTextFieldRaw.svelte +++ b/packages/web/src/forms/FormDropDownTextFieldRaw.svelte @@ -22,6 +22,7 @@
setFieldValue(name, e.target['value'])} /> diff --git a/packages/web/src/tableeditor/ColumnEditorModal.svelte b/packages/web/src/tableeditor/ColumnEditorModal.svelte index 06180161a..3411f40ca 100644 --- a/packages/web/src/tableeditor/ColumnEditorModal.svelte +++ b/packages/web/src/tableeditor/ColumnEditorModal.svelte @@ -19,6 +19,8 @@ export let driver = null; export let addDataCommand = false; + + $: isReadOnly = !setTableInfo; @@ -27,33 +29,35 @@ >{columnInfo ? 'Edit column' : `Add column ${(tableInfo?.columns || []).length + 1}`} - - + + - - - + + + - + {#if driver?.dialect?.columnProperties?.isUnsigned} - + {/if} {#if driver?.dialect?.columnProperties?.isZerofill} - + {/if} {#if driver?.dialect?.columnProperties?.columnComment} - + {/if} {#if driver?.dialect?.columnProperties?.isSparse} - + {/if} { closeCurrentModal(); if (columnInfo) { @@ -68,6 +72,7 @@ { closeCurrentModal(); setTableInfo(tbl => editorAddColumn(tbl, e.detail, addDataCommand)); diff --git a/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte b/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte index c3939174e..bf15e70e3 100644 --- a/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte +++ b/packages/web/src/tableeditor/ColumnsConstraintEditorModal.svelte @@ -33,6 +33,8 @@ ...(getExtractConstraintProps ? getExtractConstraintProps() : {}), }; } + + $: isReadOnly = !setTableInfo; @@ -45,7 +47,12 @@
{constraintNameLabel}
- (constraintName = e.target['value'])} focused /> + (constraintName = e.target['value'])} + focused + disabled={isReadOnly} + />
@@ -61,6 +68,7 @@ ({ label: col.columnName, value: col.columnName, @@ -81,6 +89,7 @@
{ const x = [...columns]; x.splice(index, 1); @@ -97,6 +106,7 @@ {#key columns.length} { if (e.detail) @@ -127,6 +137,7 @@ { closeCurrentModal(); if (constraintInfo) { @@ -142,6 +153,7 @@ { closeCurrentModal(); setTableInfo(tbl => editorDeleteConstraint(tbl, constraintInfo)); diff --git a/packages/web/src/tableeditor/DataTypeEditor.svelte b/packages/web/src/tableeditor/DataTypeEditor.svelte index 82652d3e9..c518475f0 100644 --- a/packages/web/src/tableeditor/DataTypeEditor.svelte +++ b/packages/web/src/tableeditor/DataTypeEditor.svelte @@ -14,6 +14,7 @@ } export let dialect; + export let disabled = false; - + diff --git a/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte b/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte index 35e40e873..72895ddd9 100644 --- a/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte +++ b/packages/web/src/tableeditor/ForeignKeyEditorModal.svelte @@ -53,6 +53,8 @@ updateAction: _.startCase(updateAction).toUpperCase(), }; } + + $: isReadOnly = !setTableInfo; @@ -63,7 +65,12 @@
Constraint name
- (constraintName = e.target['value'])} focused /> + (constraintName = e.target['value'])} + focused + disabled={isReadOnly} + />
@@ -78,6 +85,7 @@ label: fullNameToLabel(tbl), value: fullNameToString(tbl), }))} + disabled={isReadOnly} on:change={e => { if (e.detail) { const name = fullNameFromString(e.detail); @@ -97,6 +105,7 @@ isNative notSelected options={foreignKeyActionsOptions} + disabled={isReadOnly} on:change={e => { updateAction = e.detail || null; }} @@ -112,6 +121,7 @@ isNative notSelected options={foreignKeyActionsOptions} + disabled={isReadOnly} on:change={e => { deleteAction = e.detail || null; }} @@ -136,6 +146,7 @@ value={column.columnName} isNative notSelected + disabled={isReadOnly} options={tableInfo.columns.map(col => ({ label: col.columnName, value: col.columnName, @@ -154,6 +165,7 @@ value={column.refColumnName} isNative notSelected + disabled={isReadOnly} options={(refTableInfo?.columns || []).map(col => ({ label: col.columnName, value: col.columnName, @@ -169,6 +181,7 @@
{ const x = [...columns]; x.splice(index, 1); @@ -182,6 +195,7 @@ { columns = [...columns, {}]; }} @@ -190,7 +204,8 @@ { closeCurrentModal(); if (constraintInfo) { @@ -205,6 +220,7 @@ {#if constraintInfo} { closeCurrentModal(); diff --git a/packages/web/src/tableeditor/IndexEditorModal.svelte b/packages/web/src/tableeditor/IndexEditorModal.svelte index 8ebb5263c..431e0bf5e 100644 --- a/packages/web/src/tableeditor/IndexEditorModal.svelte +++ b/packages/web/src/tableeditor/IndexEditorModal.svelte @@ -16,6 +16,8 @@ isUnique, }; } + + $: isReadOnly = !setTableInfo;
- (isUnique = e.target.checked)} /> Is unique index + (isUnique = e.target.checked)} disabled={isReadOnly} /> Is unique + index