budibase/packages/builder/src/components/backend/DataTable/DataTable.svelte

76 lines
2.7 KiB
Svelte
Raw Normal View History

2020-03-10 14:53:23 +01:00
<script>
import { tables } from "stores/backend"
2020-12-04 09:27:42 +01:00
import EditRolesButton from "./buttons/EditRolesButton.svelte"
import { TableNames } from "constants"
2023-04-20 09:17:07 +02:00
import { Grid } from "@budibase/frontend-core"
import { API } from "api"
2023-04-20 09:17:07 +02:00
import GridAddColumnModal from "components/backend/DataTable/modals/grid/GridCreateColumnModal.svelte"
import GridCreateEditRowModal from "components/backend/DataTable/modals/grid/GridCreateEditRowModal.svelte"
import GridEditUserModal from "components/backend/DataTable/modals/grid/GridEditUserModal.svelte"
import GridCreateViewButton from "components/backend/DataTable/buttons/grid/GridCreateViewButton.svelte"
import GridImportButton from "components/backend/DataTable/buttons/grid/GridImportButton.svelte"
import GridExportButton from "components/backend/DataTable/buttons/grid/GridExportButton.svelte"
import GridFilterButton from "components/backend/DataTable/buttons/grid/GridFilterButton.svelte"
import GridManageAccessButton from "components/backend/DataTable/buttons/grid/GridManageAccessButton.svelte"
import GridRelationshipButton from "components/backend/DataTable/buttons/grid/GridRelationshipButton.svelte"
import GridEditColumnModal from "components/backend/DataTable/modals/grid/GridEditColumnModal.svelte"
const userSchemaOverrides = {
firstName: { displayName: "First name", disabled: true },
lastName: { displayName: "Last name", disabled: true },
email: { displayName: "Email", disabled: true },
roleId: { displayName: "Role", disabled: true },
status: { displayName: "Status", disabled: true },
}
$: id = $tables.selected?._id
$: isUsersTable = id === TableNames.USERS
$: isInternal = $tables.selected?.type !== "external"
2020-03-10 14:53:23 +01:00
</script>
<div class="wrapper">
2023-04-20 09:17:07 +02:00
<Grid
{API}
tableId={id}
allowAddRows={!isUsersTable}
allowDeleteRows={!isUsersTable}
schemaOverrides={isUsersTable ? userSchemaOverrides : null}
on:updatetable={e => tables.updateTable(e.detail)}
>
<svelte:fragment slot="controls">
{#if isInternal}
2023-04-20 09:17:07 +02:00
<GridCreateViewButton />
{/if}
2023-04-20 09:17:07 +02:00
<GridManageAccessButton />
{#if !isInternal}
2023-04-20 09:17:07 +02:00
<GridRelationshipButton />
{/if}
2023-04-21 11:50:50 +02:00
{#if isUsersTable}
<EditRolesButton />
{:else}
<GridImportButton />
{/if}
2023-04-20 09:17:07 +02:00
<GridExportButton />
<GridFilterButton />
<GridAddColumnModal />
<GridEditColumnModal />
{#if isUsersTable}
2023-04-20 09:17:07 +02:00
<GridEditUserModal />
{:else}
2023-04-20 09:17:07 +02:00
<GridCreateEditRowModal />
{/if}
</svelte:fragment>
2023-04-20 09:17:07 +02:00
</Grid>
</div>
<style>
.wrapper {
flex: 1 1 auto;
margin: -28px -40px -40px -40px;
display: flex;
flex-direction: column;
background: var(--background);
overflow: hidden;
}
</style>