feat: add LDAP sync (#106)

Co-authored-by: Elias Schneider <login@eliasschneider.com>
This commit is contained in:
Kyle Mendell
2025-01-19 06:02:07 -06:00
committed by GitHub
parent bc8f454ea1
commit 5101b14eec
46 changed files with 912 additions and 112 deletions

View File

@@ -17,6 +17,7 @@
requestOptions = $bindable(),
selectedIds = $bindable(),
withoutSearch = false,
selectionDisabled = false,
defaultSort,
onRefresh,
columns,
@@ -26,6 +27,7 @@
requestOptions?: SearchPaginationSortRequest;
selectedIds?: string[];
withoutSearch?: boolean;
selectionDisabled?: boolean;
defaultSort?: { column: string; direction: 'asc' | 'desc' };
onRefresh: (requestOptions: SearchPaginationSortRequest) => Promise<Paginated<T>>;
columns: { label: string; hidden?: boolean; sortColumn?: string }[];
@@ -122,7 +124,11 @@
<Table.Row>
{#if selectedIds}
<Table.Head class="w-12">
<Checkbox checked={allChecked} onCheckedChange={(c) => onAllCheck(c as boolean)} />
<Checkbox
disabled={selectionDisabled}
checked={allChecked}
onCheckedChange={(c) => onAllCheck(c as boolean)}
/>
</Table.Head>
{/if}
{#each columns as column}
@@ -160,6 +166,7 @@
{#if selectedIds}
<Table.Cell class="w-12">
<Checkbox
disabled={selectionDisabled}
checked={selectedIds.includes(item.id)}
onCheckedChange={(c) => onCheck(c as boolean, item.id)}
/>

View File

@@ -19,7 +19,7 @@
} = $props();
</script>
<div class="items-top mt-5 flex space-x-2">
<div class="items-top flex space-x-2">
<Checkbox
{id}
{disabled}

View File

@@ -9,6 +9,7 @@
input = $bindable(),
label,
description,
placeholder,
disabled = false,
type = 'text',
children,
@@ -18,6 +19,7 @@
input?: FormInput<string | boolean | number>;
label?: string;
description?: string;
placeholder?: string;
disabled?: boolean;
type?: 'text' | 'password' | 'email' | 'number' | 'checkbox';
onInput?: (e: FormInputEvent) => void;
@@ -38,7 +40,7 @@
{#if children}
{@render children()}
{:else if input}
<Input {id} {type} bind:value={input.value} {disabled} on:input={(e) => onInput?.(e)} />
<Input {id} {placeholder} {type} bind:value={input.value} {disabled} on:input={(e) => onInput?.(e)} />
{/if}
{#if input?.error}
<p class="mt-1 text-sm text-red-500">{input.error}</p>