mirror of https://github.com/Budibase/budibase.git
committed by
GitHub
6 changed files with 126 additions and 11 deletions
@ -0,0 +1,74 @@ |
|||
<script> |
|||
import { onMount } from "svelte" |
|||
|
|||
export let _bb |
|||
export let _instanceId |
|||
export let model |
|||
export let layout = "list" |
|||
|
|||
let headers = [] |
|||
let store = _bb.store |
|||
let target |
|||
|
|||
async function fetchData() { |
|||
if (!model || !model.length) return |
|||
|
|||
const FETCH_RECORDS_URL = `/api/${_instanceId}/views/all_${model}` |
|||
const response = await _bb.api.get(FETCH_RECORDS_URL) |
|||
if (response.status === 200) { |
|||
const json = await response.json() |
|||
|
|||
_bb.attachChildren(target, { |
|||
hydrate: false, |
|||
context: json, |
|||
}) |
|||
} else { |
|||
throw new Error("Failed to fetch records.", response) |
|||
} |
|||
|
|||
} |
|||
|
|||
$: if (model) fetchData() |
|||
|
|||
onMount(async () => { |
|||
await fetchData() |
|||
}) |
|||
</script> |
|||
|
|||
<section class:grid={layout === 'grid'} class:list={layout === 'list'}> |
|||
<div class="data-card" bind:this={target}> |
|||
</div> |
|||
</section> |
|||
|
|||
<style> |
|||
.list { |
|||
display: flex; |
|||
flex-direction: column; |
|||
font-family: Roboto; |
|||
} |
|||
|
|||
.grid { |
|||
display: grid; |
|||
grid-template-columns: 1fr 1fr 1fr; |
|||
} |
|||
|
|||
ul { |
|||
list-style-type: none; |
|||
} |
|||
|
|||
li { |
|||
margin: 5px 0 5px 0; |
|||
} |
|||
|
|||
.data-card { |
|||
border: 1px solid #ccc; |
|||
border-radius: 5px; |
|||
padding: 10px; |
|||
} |
|||
|
|||
.data-key { |
|||
font-weight: bold; |
|||
font-size: 20px; |
|||
text-transform: capitalize; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue