50 lines
1.2 KiB
Svelte
50 lines
1.2 KiB
Svelte
<script>
|
|
import { goto } from "@sveltech/routify"
|
|
import {
|
|
DropdownMenu,
|
|
TextButton as Button,
|
|
Icon,
|
|
Label,
|
|
Modal,
|
|
ModalContent,
|
|
TextArea,
|
|
} from "@budibase/bbui"
|
|
import { notifier } from "builderStore/store/notifications"
|
|
import { backendUiStore } from "builderStore"
|
|
import api from "builderStore/api"
|
|
import EditIntegrationConfig from "../modals/EditIntegrationConfig.svelte"
|
|
import CreateEditQuery from "components/backend/DataTable/modals/CreateEditQuery.svelte"
|
|
|
|
export let query = {}
|
|
export let edit
|
|
|
|
let modal
|
|
let fields = []
|
|
|
|
async function saveQuery() {
|
|
try {
|
|
await backendUiStore.actions.queries.save(query.datasourceId, query)
|
|
notifier.success(`Query created successfully.`)
|
|
} catch (err) {
|
|
console.error(err)
|
|
notifier.danger(`Error creating query. ${err.message}`)
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<div>
|
|
<Button text small on:click={modal.show}>
|
|
<Icon name="filter" />
|
|
{edit ? 'Edit' : 'Create'} Query
|
|
</Button>
|
|
</div>
|
|
<Modal bind:this={modal}>
|
|
<ModalContent
|
|
confirmText="Save"
|
|
cancelText="Cancel"
|
|
onConfirm={saveQuery}
|
|
title={edit ? 'Edit Query' : 'Create New Query'}>
|
|
<CreateEditQuery bind:query />
|
|
</ModalContent>
|
|
</Modal>
|