budibase/packages/builder/src/database/ModelDataTable/ModelDataTable.svelte

118 lines
2.8 KiB
Svelte
Raw Normal View History

2020-03-10 14:53:23 +01:00
<script>
2020-03-12 15:23:29 +01:00
import { store } from "../../builderStore"
2020-03-10 17:06:30 +01:00
import Select from "../../common/Select.svelte"
2020-03-12 15:23:29 +01:00
import { CreateEditRecordModal, DeleteRecordModal } from "./modals"
2020-03-10 17:06:30 +01:00
import ActionButton from "../../common/ActionButton.svelte"
2020-03-12 15:23:29 +01:00
import TablePagination from "./TablePagination.svelte"
import * as api from "./api"
import { getIndexSchema } from "../../common/core"
2020-03-10 17:06:30 +01:00
2020-03-10 14:53:23 +01:00
let pages = [1, 2, 3]
2020-03-10 17:06:30 +01:00
export let data = [
{ name: "Joe", inStock: true },
{ name: "Mike", inStock: false },
{ name: "Martin", inStock: true },
]
export let headers = ["name", "inStock"]
2020-03-12 15:23:29 +01:00
// export let pageSize = 10
let selectedView = ""
let modalOpen = false
let deleteRecordModal = false
$: indexes = $store.hierarchy.indexes
const getSchema = getIndexSchema($store.hierarchy)
2020-03-10 14:53:23 +01:00
</script>
2020-03-12 15:23:29 +01:00
<CreateEditRecordModal bind:modalOpen />
<DeleteRecordModal modalOpen={deleteRecordModal} />
2020-03-10 14:53:23 +01:00
<section>
2020-03-10 17:06:30 +01:00
<div class="table-controls">
2020-03-12 15:23:29 +01:00
<h4 class="budibase__title--3">Shoe database</h4>
<Select
icon="ri-eye-line"
on:change={e => api.fetchDataForView(e.target.value)}>
{#each indexes as index}
({console.log(getSchema(index))})
<option value={index.name}>{index.name}</option>
{/each}
</Select>
2020-03-10 17:06:30 +01:00
</div>
2020-03-10 14:53:23 +01:00
<table class="uk-table">
<thead>
<tr>
2020-03-10 17:06:30 +01:00
<th>Edit</th>
{#each headers as header}
<th>{header}</th>
{/each}
2020-03-10 14:53:23 +01:00
</tr>
</thead>
<tbody>
2020-03-10 17:06:30 +01:00
{#each data as row}
<tr>
<td>
2020-03-12 15:23:29 +01:00
<div class="uk-inline">
<i class="ri-more-line" />
<div uk-dropdown="mode: click">
<ul class="uk-nav uk-dropdown-nav">
<li>
<div>View</div>
</li>
<li>
<div on:click={() => (modalOpen = true)}>Edit</div>
</li>
<li>
<div on:click={() => (deleteRecordModal = true)}>Delete</div>
</li>
<li>
<div>Duplicate</div>
</li>
</ul>
</div>
</div>
2020-03-10 17:06:30 +01:00
</td>
{#each headers as header}
<td>{row[header]}</td>
{/each}
</tr>
{/each}
2020-03-10 14:53:23 +01:00
</tbody>
</table>
2020-03-12 15:23:29 +01:00
<TablePagination {data} />
2020-03-10 14:53:23 +01:00
</section>
<style>
table {
border: 1px solid #ccc;
2020-03-10 17:06:30 +01:00
background: #fff;
border-radius: 2px;
2020-03-10 14:53:23 +01:00
}
thead {
background: var(--background-button);
}
thead th {
color: var(--button-text);
text-transform: capitalize;
2020-03-10 17:06:30 +01:00
font-weight: 500;
2020-03-10 14:53:23 +01:00
}
2020-03-10 17:06:30 +01:00
2020-03-10 14:53:23 +01:00
tr {
border-bottom: 1px solid #ccc;
}
2020-03-10 17:06:30 +01:00
.table-controls {
display: flex;
justify-content: space-between;
align-items: center;
}
2020-03-12 15:23:29 +01:00
.ri-more-line:hover, .uk-dropdown-nav li:hover{
cursor: pointer;
}
2020-03-10 17:06:30 +01:00
</style>