This commit is contained in:
2023-11-17 21:22:26 +02:00
parent 794916b178
commit 821ba9465c
9 changed files with 214 additions and 216 deletions
+8 -33
View File
@@ -4,6 +4,7 @@
import {usernameById} from "../account/users";
import {getContext} from "svelte";
import Avatar from "../account/Avatar.svelte";
import {selectRecord, toggleAll} from "./functions/recordSelect.js";
const channel = getContext("channel");
@@ -18,24 +19,12 @@
export let isWritable;
export let selected = [];
function toggleAll(e) {
// e.preventDefault();
if (selected.length === records.length) {
selected = [];
} else {
selected = records;
}
e.currentTarget.checked = selected.length > 0;
function eventToggleAll(e) {
selected = toggleAll(e,records,selected)
}
function selectRecord(e, record) {
let recordExists = selected.find((r) => r.id == record.id);
if (recordExists) {
selected = selected.filter((r) => r.id !== record.id);
} else {
selected = [...selected, record];
}
function select(record) {
selected = selectRecord(record, selected)
}
$: visibleColumns = schema.fields.filter(c => schema.visible.includes(c.name))
@@ -49,7 +38,7 @@
{#if isWritable}
<th>
<input
on:change|preventDefault={toggleAll}
on:change|preventDefault={eventToggleAll}
indeterminate={selected.length > 0 &&
selected.length < records.length}
checked={selected.length == records.length}
@@ -61,7 +50,7 @@
{#each visibleColumns as field}
<th
class="field-ui-{field.ui}"
class="field-ui-{field.info.name ?? field.ui}"
class:is-sort={field.name === sortField.name}
scope="col"
title={field.help}
@@ -85,8 +74,7 @@
{#if isWritable}
<div class="form-check">
<input
on:change={(e) =>
selectRecord(e, record)}
on:change={() => select(record)}
class="form-check-input "
type="checkbox"
checked={selected.find(
@@ -127,7 +115,6 @@
{visibleColumns}
{sortParam}
{sortField}
{inModal}
{users}
/>
</tr>
@@ -136,15 +123,3 @@
</table>
</div>
<style>
/* .title-td:hover {
overflow: visible;
}
.title-td:hover .title-td-contents a {
z-index: 1;
box-shadow: inset 0em 0em 0em 10em rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 100%;
} */
</style>