95 lines
2.5 KiB
Svelte
95 lines
2.5 KiB
Svelte
<script>
|
|
import Tools from "./tools/Tools.svelte";
|
|
import Pagination from "./pagination/Pagination.svelte";
|
|
import ActionsOnSelected from "./ActionsOnSelected.svelte";
|
|
import Table from "./Table.svelte";
|
|
import { getContext } from "svelte";
|
|
import { apiGet } from "../../helpers";
|
|
|
|
export let schema;
|
|
export let users;
|
|
export let records;
|
|
export let graph;
|
|
// export let visibleFields;
|
|
export let systemFields;
|
|
export let sortParam;
|
|
export let sortField;
|
|
export let operators;
|
|
export let filter;
|
|
export let limit;
|
|
export let skip;
|
|
export let total;
|
|
export let inModal;
|
|
export let modalUrl;
|
|
export let selected = [];
|
|
export let isWritable = false;
|
|
|
|
function refresh(e) {
|
|
const newUrl = e.detail;
|
|
apiGet(newUrl)
|
|
.then((response) => {
|
|
records = response.records;
|
|
sortParam = response.sortParam;
|
|
sortField = response.sortField;
|
|
operators = response.operators;
|
|
filter = response.filter;
|
|
skip = response.skip;
|
|
limit = response.limit;
|
|
total = response.total;
|
|
modalUrl = response.modalUrl;
|
|
document.querySelector("dialog h3").scrollIntoView();
|
|
})
|
|
.catch((error) => {
|
|
console.log(error);
|
|
});
|
|
}
|
|
</script>
|
|
|
|
<div class="">
|
|
<div class={inModal ? "mt-0" : "mt-5"}>
|
|
<h3 class="header-normal mb-5">
|
|
{schema.label}
|
|
</h3>
|
|
{#if selected.length > 0 && !inModal && isWritable}
|
|
<ActionsOnSelected {schema} {selected} {filter} />
|
|
{:else}
|
|
<Tools
|
|
bind:schema
|
|
bind:records
|
|
{systemFields}
|
|
{sortParam}
|
|
{sortField}
|
|
{operators}
|
|
{filter}
|
|
{graph}
|
|
{inModal}
|
|
{modalUrl}
|
|
{isWritable}
|
|
on:refresh={refresh}
|
|
/>
|
|
{/if}
|
|
|
|
<Table
|
|
{records}
|
|
{graph}
|
|
{schema}
|
|
{sortParam}
|
|
{sortField}
|
|
{systemFields}
|
|
{inModal}
|
|
{users}
|
|
{isWritable}
|
|
bind:selected
|
|
/>
|
|
</div>
|
|
|
|
<Pagination
|
|
{limit}
|
|
{skip}
|
|
{total}
|
|
on:refresh={refresh}
|
|
{inModal}
|
|
{modalUrl}
|
|
/>
|
|
</div>
|