This commit is contained in:
SPRINX0\prochazka
2025-04-10 17:43:32 +02:00
8 changed files with 79 additions and 11 deletions

View File

@@ -8,7 +8,7 @@ Builds:
- linux - application for linux - linux - application for linux
- win - application for Windows - win - application for Windows
## 6.3.3 - not released ## 6.3.3
- CHANGED: New administration UI, redesigned administration of users, connections and roles - CHANGED: New administration UI, redesigned administration of users, connections and roles
- ADDED: Encrypting passwords in team-premium edition - ADDED: Encrypting passwords in team-premium edition
- ADDED: Show scale bar on map #1090 - ADDED: Show scale bar on map #1090

View File

@@ -7,6 +7,7 @@
export let value; export let value;
export let jsonParsedValue = undefined; export let jsonParsedValue = undefined;
export let editorTypes; export let editorTypes;
export let rightMargin = false;
$: stringified = stringifyCellValue( $: stringified = stringifyCellValue(
value, value,
@@ -20,7 +21,7 @@
{#if rowData == null} {#if rowData == null}
<span class="null">(No row)</span> <span class="null">(No row)</span>
{:else} {:else}
<span class={stringified.gridStyle} title={stringified.gridTitle}>{stringified.value}</span> <span class={stringified.gridStyle} title={stringified.gridTitle} class:rightMargin>{stringified.value}</span>
{/if} {/if}
<style> <style>
@@ -31,4 +32,8 @@
.valueCellStyle { .valueCellStyle {
color: var(--theme-icon-green); color: var(--theme-icon-green);
} }
.rightMargin {
margin-right: 16px;
}
</style> </style>

View File

@@ -73,7 +73,13 @@
class:alignRight={_.isNumber(value) && !showHint} class:alignRight={_.isNumber(value) && !showHint}
{style} {style}
> >
<CellValue {rowData} {value} {jsonParsedValue} {editorTypes} /> <CellValue
{rowData}
{value}
{jsonParsedValue}
{editorTypes}
rightMargin={_.isNumber(value) && !showHint && (editorTypes?.explicitDataType || col.foreignKey)}
/>
{#if showHint} {#if showHint}
<span class="hint" <span class="hint"

View File

@@ -43,7 +43,7 @@
if (e.detail == '@create') { if (e.detail == '@create') {
showModal(InputTextModal, { showModal(InputTextModal, {
header: 'Archive', header: 'Archive',
label: 'Name of new folder', label: 'Name of new archive folder',
onConfirm: createOption, onConfirm: createOption,
}); });
} }

View File

@@ -23,6 +23,8 @@
import { findEngineDriver } from 'dbgate-tools'; import { findEngineDriver } from 'dbgate-tools';
import AceEditor from '../query/AceEditor.svelte'; import AceEditor from '../query/AceEditor.svelte';
import { _t } from '../translations'; import { _t } from '../translations';
import { showModal } from '../modals/modalTools';
import InputTextModal from '../modals/InputTextModal.svelte';
export let direction; export let direction;
export let storageTypeField; export let storageTypeField;
@@ -54,7 +56,7 @@
{ value: 'query', label: _t('common.query', { defaultMessage: 'Query' }), directions: ['source'] }, { value: 'query', label: _t('common.query', { defaultMessage: 'Query' }), directions: ['source'] },
{ {
value: 'archive', value: 'archive',
label: _t('common.archive', { defaultMessage: 'Archive' }), label: _t('common.archive', { defaultMessage: 'Archive (JSONL)' }),
directions: ['source', 'target'], directions: ['source', 'target'],
}, },
]; ];
@@ -108,11 +110,18 @@
<FormStyledButton <FormStyledButton
value="New archive" value="New archive"
on:click={() => { on:click={() => {
showModal(InputTextModal, {
header: 'Archive',
label: 'Name of new archive folder',
value: `import-${moment().format('YYYY-MM-DD-hh-mm-ss')}`,
onConfirm: value => {
values.update(x => ({ values.update(x => ({
...x, ...x,
[storageTypeField]: 'archive', [storageTypeField]: 'archive',
[archiveFolderField]: `import-${moment().format('YYYY-MM-DD-hh-mm-ss')}`, [archiveFolderField]: value,
})); }));
},
});
}} }}
/> />
{/if} {/if}

View File

@@ -433,7 +433,7 @@ ORDER BY
<FormCheckboxField <FormCheckboxField
name="behaviour.jsonPreviewWrap" name="behaviour.jsonPreviewWrap"
label={_t('settings.behaviour.jsonPreviewWrap', { defaultMessage: 'Wrap json in preview' })} label={_t('settings.behaviour.jsonPreviewWrap', { defaultMessage: 'Wrap JSON in preview' })}
defaultValue={false} defaultValue={false}
/> />

View File

@@ -240,6 +240,19 @@ const mysqlDriverBase = {
if (options.force) { if (options.force) {
args.push('--force'); args.push('--force');
} }
if (options.lockTables) {
args.push('--lock-tables');
}
if (options.skipLockTables) {
args.push('--skip-lock-tables');
}
if (options.singleTransaction) {
args.push('--single-transaction');
}
if (options.customArgs?.trim()) {
const customArgs = options.customArgs.split(/\s+/).filter(arg => arg.trim() != '');
args.push(...customArgs);
}
args.push(database); args.push(database);
return { command, args }; return { command, args };
}, },
@@ -312,6 +325,32 @@ const mysqlDriverBase = {
default: true, default: true,
disabledFn: values => values.noStructure, disabledFn: values => values.noStructure,
}, },
{
type: 'checkbox',
label: 'Lock tables',
name: 'lockTables',
default: false,
disabledFn: values => values.skipLockTables || values.singleTransaction,
},
{
type: 'checkbox',
label: 'Skip lock tables',
name: 'skipLockTables',
default: false,
disabledFn: values => values.lockTables || values.singleTransaction,
},
{
type: 'checkbox',
label: 'Single transaction',
name: 'singleTransaction',
default: false,
disabledFn: values => values.lockTables || values.skipLockTables,
},
{
type: 'text',
label: 'Custom arguments',
name: 'customArgs',
},
]; ];
} }
return null; return null;

View File

@@ -267,6 +267,11 @@ EXECUTE FUNCTION function_name();`,
name: 'noOwner', name: 'noOwner',
default: false, default: false,
}, },
{
type: 'text',
label: 'Custom arguments',
name: 'customArgs',
},
]; ];
} }
return null; return null;
@@ -304,6 +309,10 @@ EXECUTE FUNCTION function_name();`,
); );
} }
} }
if (options.customArgs?.trim()) {
const customArgs = options.customArgs.split(/\s+/).filter(arg => arg.trim() != '');
args.push(...customArgs);
}
return { return {
command, command,