Files
lucent-laravel/front/js/svelte/content/Index.svelte
T

120 lines
3.3 KiB
Svelte
Raw Normal View History

2023-10-02 23:10:49 +03:00
<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";
2023-11-17 21:22:26 +02:00
import Grid from "./Grid.svelte";
2023-10-02 23:10:49 +03:00
2023-11-17 21:22:26 +02:00
const axios = getContext("axios");
2023-10-02 23:10:49 +03:00
export let schema;
export let users;
export let records;
export let graph;
2023-10-06 18:47:50 +03:00
// export let visibleFields;
2023-10-02 23:10:49 +03:00
export let systemFields;
2023-10-23 19:43:59 +03:00
export let sortParam;
export let sortField;
2023-10-02 23:10:49 +03:00
export let operators;
export let filter;
export let limit;
export let skip;
export let total;
export let inModal;
export let modalUrl;
export let selected = [];
2023-10-17 22:57:25 +03:00
export let isWritable = false;
2023-10-02 23:10:49 +03:00
function refresh(e) {
const newUrl = e.detail;
axios
.get(newUrl)
.then((response) => {
records = response.data.records;
2023-10-23 19:43:59 +03:00
sortParam = response.data.sortParam;
sortField = response.data.sortField;
2023-10-02 23:10:49 +03:00
operators = response.data.operators;
filter = response.data.filter;
skip = response.data.skip;
limit = response.data.limit;
total = response.data.total;
modalUrl = response.data.modalUrl;
2024-08-15 22:11:26 +03:00
document.querySelector("dialog h3").scrollIntoView();
2023-10-02 23:10:49 +03:00
})
.catch((error) => {
console.log(error);
});
}
</script>
2024-08-15 14:44:53 +03:00
<div class="">
<div class="{inModal ? 'mt-0' : 'mt-5'}">
2023-10-02 23:10:49 +03:00
<h3 class="header-normal mb-5 ">
{schema.label}
</h3>
2023-10-17 22:57:25 +03:00
{#if selected.length > 0 && !inModal && isWritable}
2023-11-17 21:22:26 +02:00
<ActionsOnSelected {schema} {selected} {filter}/>
2023-10-02 23:10:49 +03:00
{:else}
<Tools
2023-10-17 22:57:25 +03:00
bind:schema
bind:records
{systemFields}
2023-10-23 19:43:59 +03:00
{sortParam}
{sortField}
2023-10-17 22:57:25 +03:00
{operators}
{filter}
2023-11-17 20:21:45 +02:00
{graph}
2023-10-17 22:57:25 +03:00
{inModal}
{modalUrl}
{isWritable}
on:refresh={refresh}
2023-10-02 23:10:49 +03:00
/>
{/if}
{#if schema.type === "collection"}
<Table
2023-10-17 22:57:25 +03:00
{records}
{graph}
{schema}
2023-10-23 19:43:59 +03:00
{sortParam}
{sortField}
2023-10-17 22:57:25 +03:00
{systemFields}
{inModal}
{users}
{isWritable}
bind:selected
2023-10-02 23:10:49 +03:00
/>
{:else}
2024-08-15 22:11:26 +03:00
<Table
2023-11-17 21:22:26 +02:00
{records}
2024-08-15 22:11:26 +03:00
{graph}
2023-11-17 21:22:26 +02:00
{schema}
2024-08-15 22:11:26 +03:00
{sortParam}
{sortField}
{systemFields}
{inModal}
{users}
2023-11-17 21:22:26 +02:00
{isWritable}
bind:selected
/>
2024-08-15 22:11:26 +03:00
<!-- <Grid-->
<!-- {records}-->
<!-- {schema}-->
<!-- {isWritable}-->
<!-- bind:selected-->
<!-- />-->
2023-10-02 23:10:49 +03:00
{/if}
</div>
<Pagination
2023-10-17 22:57:25 +03:00
{limit}
{skip}
{total}
on:refresh={refresh}
{inModal}
{modalUrl}
2023-10-02 23:10:49 +03:00
/>
</div>