|
|
|
@ -6,6 +6,7 @@ |
|
|
|
import AgGrid from "@budibase/svelte-ag-grid" |
|
|
|
import InputForm from "./InputForm.svelte" |
|
|
|
|
|
|
|
export let _bb |
|
|
|
export let datasource = {} |
|
|
|
|
|
|
|
let dataLoaded = false |
|
|
|
@ -13,6 +14,10 @@ |
|
|
|
let columnDefs |
|
|
|
|
|
|
|
onMount(async () => { |
|
|
|
console.log(datasource) |
|
|
|
const jsonModel = await _bb.api.get(`/api/models/${datasource.modelId}`) |
|
|
|
const model = await jsonModel.json() |
|
|
|
console.log(model) |
|
|
|
if (!isEmpty(datasource)) { |
|
|
|
data = await fetchData(datasource) |
|
|
|
if (data) { |
|
|
|
@ -45,14 +50,30 @@ |
|
|
|
// Send off data here and update to display in grid component |
|
|
|
console.log("Submitting:", e.detail) |
|
|
|
} |
|
|
|
|
|
|
|
const handleUpdate = ({ detail }) => { |
|
|
|
console.log(detail) |
|
|
|
data[detail.row] = detail.data |
|
|
|
updateRecord(detail.data) |
|
|
|
} |
|
|
|
|
|
|
|
const updateRecord = async record => { |
|
|
|
const response = await _bb.api.patch( |
|
|
|
`/api/${record.modelId}/records/${record._id}`, |
|
|
|
record |
|
|
|
) |
|
|
|
const json = await response.json() |
|
|
|
console.log(json) |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<div class="container"> |
|
|
|
{#if dataLoaded} |
|
|
|
<AgGrid bind:data {columnDefs} /> |
|
|
|
<AgGrid {data} {columnDefs} on:update={handleUpdate} /> |
|
|
|
<InputForm fields={columnDefs} on:submit={handleSubmit} /> |
|
|
|
{/if} |
|
|
|
</div> |
|
|
|
<pre>{JSON.stringify(data, 0, 2)}</pre> |
|
|
|
|
|
|
|
<style> |
|
|
|
.container { |
|
|
|
|