add members from group, remove members from group, change title of group
This commit is contained in:
parent
7af96ca084
commit
17778e1736
9 changed files with 266 additions and 22 deletions
|
|
@ -9,22 +9,26 @@
|
|||
import {
|
||||
GroupID,
|
||||
ServerID,
|
||||
type OverviewData,
|
||||
type OverviewGroup,
|
||||
type OverviewServer,
|
||||
type UserWithStatus
|
||||
} from '$lib';
|
||||
import Button from './ui/button/button.svelte';
|
||||
import Input from './ui/input/input.svelte';
|
||||
|
||||
// Props for the member sidebar.
|
||||
let {
|
||||
open = $bindable(true),
|
||||
members = $bindable<UserWithStatus[]>([]),
|
||||
user,
|
||||
data,
|
||||
currentEntity,
|
||||
currentEntityId = $bindable<string | null>(null)
|
||||
}: {
|
||||
open: boolean;
|
||||
members: UserWithStatus[];
|
||||
data: OverviewData;
|
||||
user: SessionValidationResult['user'];
|
||||
currentEntity: OverviewGroup | OverviewServer;
|
||||
currentEntityId: string | null;
|
||||
|
|
@ -104,15 +108,59 @@
|
|||
</Tabs.Content>
|
||||
{/if}
|
||||
<Tabs.Content value="users">
|
||||
<div class="space-y-4 p-2">
|
||||
<div class="space-y-6 p-2">
|
||||
{#if (currentEntity as OverviewGroup).permissions.addMembers || user.id == currentEntity.ownerId}
|
||||
<h1>you have permission to add members</h1>
|
||||
{@const addableMembers = data.friends.filter(
|
||||
(z) => !members.find((h) => h.id == z.id)
|
||||
)}
|
||||
|
||||
{#if addableMembers.length !== 0}
|
||||
<form method="POST" action="?/addMembers" class="space-y-4">
|
||||
<input type="hidden" name="groupId" value={currentEntityId} />
|
||||
|
||||
<h1>Add members</h1>
|
||||
|
||||
{#each addableMembers as friend (friend.id)}
|
||||
<label class="flex items-center gap-2">
|
||||
<input type="checkbox" name="memberIds" value={friend.id} />
|
||||
<User crown={false} user={friend} />
|
||||
</label>
|
||||
{/each}
|
||||
|
||||
<Button type="submit">Add selected members</Button>
|
||||
</form>
|
||||
<hr />
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{#if (currentEntity as OverviewGroup).permissions.changeTitle || user.id == currentEntity.ownerId}
|
||||
<h1>you have permission to change title</h1>
|
||||
<form method="POST" action="?/changeTitle" class="space-y-4">
|
||||
<input type="hidden" name="groupId" value={currentEntityId} />
|
||||
|
||||
<h1>Change title</h1>
|
||||
|
||||
<Input name="title" placeholder="New group title" required />
|
||||
|
||||
<Button type="submit">Change title</Button>
|
||||
</form>
|
||||
<hr />
|
||||
{/if}
|
||||
|
||||
{#if (currentEntity as OverviewGroup).permissions.removeMembers || user.id == currentEntity.ownerId}
|
||||
<h1>you have permission to remove members</h1>
|
||||
<form method="POST" action="?/removeMembers" class="space-y-4">
|
||||
<input type="hidden" name="groupId" value={currentEntityId} />
|
||||
|
||||
<h1>Remove members</h1>
|
||||
|
||||
{#each members.filter((z) => z.id != currentEntity.ownerId) as member (member.id)}
|
||||
<label class="flex items-center gap-2">
|
||||
<input type="checkbox" name="memberIds" value={member.id} />
|
||||
<User crown={false} user={member} />
|
||||
</label>
|
||||
{/each}
|
||||
|
||||
<Button type="submit">Remove selected members</Button>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
</Tabs.Content>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue