refac: access control

This commit is contained in:
Timothy Jaeryang Baek
2024-11-16 20:47:45 -08:00
parent b41e456c4f
commit 41bad9abcb
13 changed files with 209 additions and 73 deletions

View File

@@ -38,8 +38,8 @@
import EllipsisVertical from '$lib/components/icons/EllipsisVertical.svelte';
import Drawer from '$lib/components/common/Drawer.svelte';
import ChevronLeft from '$lib/components/icons/ChevronLeft.svelte';
import MenuLines from '$lib/components/icons/MenuLines.svelte';
import AccessControl from '../common/AccessControl.svelte';
import LockClosed from '$lib/components/icons/LockClosed.svelte';
import AccessControlModal from '../common/AccessControlModal.svelte';
let largeScreen = true;
@@ -63,6 +63,7 @@
let showAddTextContentModal = false;
let showSyncConfirmModal = false;
let showAccessControlModal = false;
let inputFiles = null;
@@ -421,7 +422,8 @@
const res = await updateKnowledgeById(localStorage.token, id, {
name: knowledge.name,
description: knowledge.description
description: knowledge.description,
access_control: knowledge.access_control
}).catch((e) => {
toast.error(e);
});
@@ -599,6 +601,61 @@
<div class="flex flex-col w-full h-full max-h-[100dvh] translate-y-1" id="collection-container">
{#if id && knowledge}
<AccessControlModal
bind:show={showAccessControlModal}
bind:accessControl={knowledge.access_control}
onChange={() => {
changeDebounceHandler();
}}
/>
<div class="w-full mb-2.5">
<div class=" flex w-full">
<div class="flex-1">
<div class="flex items-center justify-between w-full px-0.5 mb-1">
<div class="w-full">
<input
type="text"
class="text-left w-full font-semibold text-2xl font-primary bg-transparent outline-none"
bind:value={knowledge.name}
placeholder="Knowledge Name"
on:input={() => {
changeDebounceHandler();
}}
/>
</div>
<div class="self-center">
<button
class="bg-gray-50 hover:bg-gray-100 text-black transition px-2 py-1 rounded-full flex gap-1 items-center"
type="button"
on:click={() => {
showAccessControlModal = true;
}}
>
<LockClosed strokeWidth="2.5" />
<div class="text-sm font-medium flex-shrink-0">
{$i18n.t('Share')}
</div>
</button>
</div>
</div>
<div class="flex w-full px-1">
<input
type="text"
class="text-left text-xs w-full text-gray-500 bg-transparent outline-none"
bind:value={knowledge.description}
placeholder="Knowledge Description"
on:input={() => {
changeDebounceHandler();
}}
/>
</div>
</div>
</div>
</div>
<div class="flex flex-row flex-1 h-full max-h-full pb-2.5">
<PaneGroup direction="horizontal">
<Pane
@@ -764,41 +821,7 @@
</div>
</div>
{:else}
<div class="m-auto pb-20">
<div>
<div class=" flex w-full mt-1 mb-3.5">
<div class="flex-1">
<div class="flex items-center justify-between w-full px-0.5 mb-1">
<div class="w-full">
<input
type="text"
class="text-center w-full font-medium text-3xl font-primary bg-transparent outline-none"
bind:value={knowledge.name}
on:input={() => {
changeDebounceHandler();
}}
/>
</div>
</div>
<div class="flex w-full px-1">
<input
type="text"
class="text-center w-full text-gray-500 bg-transparent outline-none"
bind:value={knowledge.description}
on:input={() => {
changeDebounceHandler();
}}
/>
</div>
</div>
</div>
</div>
<div class="mt-2">
<AccessControl />
</div>
</div>
<div></div>
{/if}
</div>
</Pane>