mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 03:24:01 +00:00
store query parameters
This commit is contained in:
@@ -31,6 +31,11 @@
|
|||||||
{#each parameterNames as parameterName, index}
|
{#each parameterNames as parameterName, index}
|
||||||
<FormTextField label={parameterName} name={parameterName} focused={index == 0} />
|
<FormTextField label={parameterName} name={parameterName} focused={index == 0} />
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
String values must be 'quoted'. You can use valid SQL expressions.
|
||||||
|
</div>
|
||||||
|
|
||||||
<svelte:fragment slot="footer">
|
<svelte:fragment slot="footer">
|
||||||
<FormSubmit value="Run query" on:click={handleSubmit} />
|
<FormSubmit value="Run query" on:click={handleSubmit} />
|
||||||
<FormStyledButton value="Close" on:click={handleClose} />
|
<FormStyledButton value="Close" on:click={handleClose} />
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
import InsertJoinModal from '../modals/InsertJoinModal.svelte';
|
import InsertJoinModal from '../modals/InsertJoinModal.svelte';
|
||||||
import useTimerLabel from '../utility/useTimerLabel';
|
import useTimerLabel from '../utility/useTimerLabel';
|
||||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||||
import { findEngineDriver } from 'dbgate-tools';
|
import { findEngineDriver, safeJsonParse } from 'dbgate-tools';
|
||||||
import AceEditor from '../query/AceEditor.svelte';
|
import AceEditor from '../query/AceEditor.svelte';
|
||||||
import StatusBarTabItem from '../widgets/StatusBarTabItem.svelte';
|
import StatusBarTabItem from '../widgets/StatusBarTabItem.svelte';
|
||||||
import { showSnackbarError } from '../utility/snackbar';
|
import { showSnackbarError } from '../utility/snackbar';
|
||||||
@@ -227,10 +227,16 @@
|
|||||||
const parameters = extractQueryParameters(sql, getParameterSplitterOptions());
|
const parameters = extractQueryParameters(sql, getParameterSplitterOptions());
|
||||||
|
|
||||||
if (parameters.length > 0) {
|
if (parameters.length > 0) {
|
||||||
|
const defaultValues = {
|
||||||
|
...parameters.reduce((acc, x) => ({ ...acc, [x]: '' }), {}),
|
||||||
|
...safeJsonParse(localStorage.getItem(`tabdata_queryParams_${tabid}`)),
|
||||||
|
};
|
||||||
|
|
||||||
showModal(QueryParametersModal, {
|
showModal(QueryParametersModal, {
|
||||||
parameterNames: parameters,
|
parameterNames: parameters,
|
||||||
parameterValues: parameters.reduce((acc, x) => ({ ...acc, [x]: '' }), {}),
|
parameterValues: defaultValues,
|
||||||
onExecute: values => {
|
onExecute: values => {
|
||||||
|
localStorage.setItem(`tabdata_queryParams_${tabid}`, JSON.stringify(values));
|
||||||
const newSql = replaceQueryParameters(sql, values, getParameterSplitterOptions());
|
const newSql = replaceQueryParameters(sql, values, getParameterSplitterOptions());
|
||||||
executeCoreWithParams(newSql, startLine);
|
executeCoreWithParams(newSql, startLine);
|
||||||
},
|
},
|
||||||
@@ -409,7 +415,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let isInitialized = false;
|
let isInitialized = false;
|
||||||
let queryParameterStyle = ':';
|
let queryParameterStyle = localStorage.getItem(`tabdata_queryParamStyle_${tabid}`) ?? ':';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<ToolStripContainer bind:this={domToolStrip}>
|
<ToolStripContainer bind:this={domToolStrip}>
|
||||||
@@ -488,6 +494,7 @@
|
|||||||
label: param.text,
|
label: param.text,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
queryParameterStyle = param.value;
|
queryParameterStyle = param.value;
|
||||||
|
localStorage.setItem(`tabdata_queryParamStyle_${tabid}`, queryParameterStyle);
|
||||||
},
|
},
|
||||||
}))}
|
}))}
|
||||||
label={QUERY_PARAMETER_STYLES.find(x => x.value == queryParameterStyle)?.text}
|
label={QUERY_PARAMETER_STYLES.find(x => x.value == queryParameterStyle)?.text}
|
||||||
|
|||||||
Reference in New Issue
Block a user