67 lines
1.9 KiB
Svelte
67 lines
1.9 KiB
Svelte
<script>
|
|
import RenderField from "./RenderField.svelte";
|
|
import Avatar from "../account/Avatar.svelte";
|
|
import Status from "../records/Status.svelte";
|
|
import { usernameById } from "../account/users";
|
|
import { friendlyDate } from "../../helpers";
|
|
|
|
export let schema;
|
|
export let users;
|
|
export let graph;
|
|
export let record;
|
|
export let sortParam;
|
|
export let sortField;
|
|
export let visibleColumns;
|
|
</script>
|
|
|
|
{#each visibleColumns as field, index}
|
|
<td
|
|
class="field-ui-{field.info.name}"
|
|
class:is-sort={field.name === sortField.name}
|
|
>
|
|
<RenderField {record} {schema} {graph} {field} />
|
|
</td>
|
|
{/each}
|
|
{#if schema.visible?.includes("_sys.status")}
|
|
<td
|
|
class="text-center"
|
|
class:is-sort={"-status" == sortParam || "status" == sortParam}
|
|
>
|
|
<Status status={record.status} />
|
|
</td>
|
|
{/if}
|
|
{#if schema.visible?.includes("_sys.createdBy")}
|
|
<td
|
|
class="text-center"
|
|
class:is-sort={"-_sys.createdBy" == sortParam ||
|
|
"_sys.createdBy" == sortParam}
|
|
>
|
|
<Avatar name={usernameById(users, record.createdBy)} side={24} />
|
|
</td>
|
|
{/if}
|
|
{#if schema.visible?.includes("_sys.updatedBy")}
|
|
<td
|
|
class="text-center"
|
|
class:is-sort={"-_sys.updatedBy" == sortParam ||
|
|
"_sys.updatedBy" == sortParam}
|
|
>
|
|
<Avatar name={usernameById(users, record.updatedBy)} side={24} />
|
|
</td>
|
|
{/if}
|
|
{#if schema.visible?.includes("_sys.createdAt")}
|
|
<td
|
|
class:is-sort={"-_sys.createdAt" == sortParam ||
|
|
"_sys.createdAt" == sortParam}
|
|
>
|
|
{friendlyDate(record.createdAt)}
|
|
</td>
|
|
{/if}
|
|
{#if schema.visible?.includes("_sys.updatedAt")}
|
|
<td
|
|
class:is-sort={"-_sys.updatedAt" == sortParam ||
|
|
"_sys.updatedAt" == sortParam}
|
|
>
|
|
{friendlyDate(record.updatedAt)}
|
|
</td>
|
|
{/if}
|