1
0
Fork 0
mirror of synced 2024-09-21 03:43:21 +12:00
budibase/packages/builder/src/components/integration/index.svelte

51 lines
1.2 KiB
Svelte
Raw Normal View History

2020-12-19 07:19:43 +13:00
<script>
2021-01-15 03:22:24 +13:00
import { onMount } from "svelte"
2021-01-09 07:22:03 +13:00
import { TextArea, Label, Input, Heading, Spacer } from "@budibase/bbui"
2021-01-13 05:49:11 +13:00
import Editor from "./SvelteEditor.svelte"
import ParameterBuilder from "./QueryParameterBuilder.svelte"
2021-01-14 03:11:53 +13:00
import FieldsBuilder from "./QueryFieldsBuilder.svelte"
2021-01-07 01:28:51 +13:00
2020-12-19 07:19:43 +13:00
const QueryTypes = {
SQL: "sql",
2021-01-12 10:01:21 +13:00
JSON: "json",
FIELDS: "fields",
2020-12-19 07:19:43 +13:00
}
export let query
2021-01-14 03:11:53 +13:00
export let schema
2021-01-15 03:22:24 +13:00
export let editable = true
2021-01-12 06:18:22 +13:00
function updateQuery({ detail }) {
2021-01-14 05:39:47 +13:00
query.fields[schema.type] = detail.value
2021-01-12 06:18:22 +13:00
}
2020-12-19 07:19:43 +13:00
</script>
2021-01-15 03:22:24 +13:00
{#if editable}
<ParameterBuilder bind:parameters={query.parameters} bindable={false} />
<Spacer large />
{/if}
2021-01-12 23:28:41 +13:00
2021-01-13 05:49:11 +13:00
<Heading extraSmall black>Query</Heading>
<Spacer large />
2021-01-12 23:28:41 +13:00
2021-01-14 05:39:47 +13:00
{#if schema}
{#if schema.type === QueryTypes.SQL}
<Editor
label="Query"
mode="sql"
on:change={updateQuery}
2021-01-15 03:22:24 +13:00
readOnly={!editable}
2021-01-14 05:39:47 +13:00
value={query.fields.sql} />
{:else if schema.type === QueryTypes.JSON}
<Spacer large />
<Editor
label="Query"
mode="json"
on:change={updateQuery}
2021-01-15 03:22:24 +13:00
readOnly={!editable}
2021-01-14 05:39:47 +13:00
value={query.fields.json} />
{:else if schema.type === QueryTypes.FIELDS}
2021-01-15 03:22:24 +13:00
<FieldsBuilder bind:fields={query.fields} {schema} {editable} />
2021-01-14 05:39:47 +13:00
{/if}
2021-01-12 23:28:41 +13:00
{/if}