Adding to the REST query UI to make it more obvious when it needs saved, such as the user has changed a dynamic variable.

This commit is contained in:
mike12345567 2022-05-04 16:32:04 +01:00
parent b4b65362f9
commit fb1f941c76
1 changed files with 15 additions and 2 deletions

View File

@ -37,7 +37,7 @@
import AccessLevelSelect from "components/integration/AccessLevelSelect.svelte"
import DynamicVariableModal from "../../_components/DynamicVariableModal.svelte"
import Placeholder from "assets/bb-spaceship.svg"
import { cloneDeep } from "lodash/fp"
import { cloneDeep, isEqual } from "lodash/fp"
import { RawRestBodyTypes } from "constants/backend"
let query, datasource
@ -47,6 +47,7 @@
let response, schema, enabledHeaders
let authConfigId
let dynamicVariables, addVariableModal, varBinding
let baseQuery, baseDatasource, baseVariables
$: datasourceType = datasource?.source
$: integrationInfo = $integrations[datasourceType]
@ -62,6 +63,15 @@
$: hasSchema =
Object.keys(schema || {}).length !== 0 ||
Object.keys(query?.schema || {}).length !== 0
$: baseQuery = !baseQuery ? cloneDeep(query) : baseQuery
$: baseDatasource = !baseDatasource ? cloneDeep(datasource) : baseDatasource
$: baseVariables = !baseVariables
? cloneDeep(dynamicVariables)
: baseVariables
$: hasChanged =
!isEqual(baseQuery, query) ||
!isEqual(baseDatasource, datasource) ||
!isEqual(baseVariables, dynamicVariables)
function getSelectedQuery() {
return cloneDeep(
@ -120,6 +130,9 @@
datasource.config.dynamicVariables = rebuildVariables(saveId)
datasource = await datasources.save(datasource)
}
baseQuery = query
baseDatasource = datasource
baseVariables = dynamicVariables
} catch (err) {
notifications.error(`Error saving query`)
}
@ -333,7 +346,7 @@
</div>
<Button primary disabled={!url} on:click={runQuery}>Send</Button>
<Button
disabled={!query.name}
disabled={!query.name || !hasChanged}
cta
on:click={saveQuery}
tooltip={!hasSchema