budibase/packages/builder/src/components/backend/DataTable/buttons/CreateQueryButton.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>