diff --git a/src/app/admin/admins/Admins.svelte b/src/app/admin/admins/Admins.svelte index 9db95ec..181ebc6 100644 --- a/src/app/admin/admins/Admins.svelte +++ b/src/app/admin/admins/Admins.svelte @@ -1,63 +1,52 @@ -
- - - - - - - - - - - {#each $admins as admin, i (admin)} - - - - - - - {/each} - -
#BenutzernameBerechtigungen
{i + 1}{admin.username} - - - -
-
+{#snippet permissionsBadge(permissions: number)} + +{/snippet} -{#key editAdminPopupAdmin} - -{/key} + (editPopupAdmin = admin)} +/> + + v || null } } + ], + [ + { + key: 'permissions', + type: 'bit-badge', + label: 'Berechtigungen', + default: 0, + options: { available: Permissions.asOptions() } + } + ] + ]} + onSubmit={editAdmin} + bind:open={editPopupOpen} +/> diff --git a/src/app/admin/admins/Badges.svelte b/src/app/admin/admins/Badges.svelte deleted file mode 100644 index e6c268a..0000000 --- a/src/app/admin/admins/Badges.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - -
- {#if onUpdate} - - {/if} -
- {#each reactiveSet as badge (badge)} -
- {#if onUpdate} - - {/if} - {available[badge]} -
- {/each} -
-
diff --git a/src/app/admin/admins/CreateOrEditPopup.svelte b/src/app/admin/admins/CreateOrEditPopup.svelte deleted file mode 100644 index 93ae2fa..0000000 --- a/src/app/admin/admins/CreateOrEditPopup.svelte +++ /dev/null @@ -1,115 +0,0 @@ - - - setTimeout(() => onClose?.(), 300)}> - - - diff --git a/src/app/admin/admins/SidebarActions.svelte b/src/app/admin/admins/SidebarActions.svelte index 2701736..09fbfcd 100644 --- a/src/app/admin/admins/SidebarActions.svelte +++ b/src/app/admin/admins/SidebarActions.svelte @@ -1,34 +1,48 @@
-
-{#key newTeamPopupOpen} - (newTeamPopupOpen = false)} - /> -{/key} + diff --git a/src/app/admin/admins/actions.ts b/src/app/admin/admins/admins.ts similarity index 73% rename from src/app/admin/admins/actions.ts rename to src/app/admin/admins/admins.ts index 58b945e..d32a427 100644 --- a/src/app/admin/admins/actions.ts +++ b/src/app/admin/admins/admins.ts @@ -1,8 +1,15 @@ -import type { Admin } from './types.ts'; -import { actions } from 'astro:actions'; -import { admins } from './state.ts'; +import { type ActionReturnType, actions } from 'astro:actions'; +import { writable } from 'svelte/store'; import { actionErrorPopup } from '@util/action.ts'; +// types +export type Admins = Exclude['data'], undefined>['admins']; +export type Admin = Admins[0]; + +// state +export const admins = writable([]); + +// actions export async function fetchAdmins() { const { data, error } = await actions.admin.admins(); if (error) { diff --git a/src/app/admin/admins/state.ts b/src/app/admin/admins/state.ts deleted file mode 100644 index 2a28ea8..0000000 --- a/src/app/admin/admins/state.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { Admin } from './types.ts'; -import { writable } from 'svelte/store'; - -export const admins = writable([]); diff --git a/src/app/admin/admins/types.ts b/src/app/admin/admins/types.ts deleted file mode 100644 index b27e4e3..0000000 --- a/src/app/admin/admins/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { ActionReturnType, actions } from 'astro:actions'; - -export type Admins = Exclude['data'], undefined>['admins']; -export type Admin = Admins[0]; diff --git a/src/app/admin/feedback/BottomBar.svelte b/src/app/admin/feedback/BottomBar.svelte index f7f2586..e1521d2 100644 --- a/src/app/admin/feedback/BottomBar.svelte +++ b/src/app/admin/feedback/BottomBar.svelte @@ -1,7 +1,7 @@ -
- - - - # - Event - Nutzer - Datum - Inhalt - - - - {#each $feedbacks as feedback, i (feedback.id)} - (activeFeedback = feedback)}> - - - - - - - {/each} - -
{i + 1}{feedback.event}{feedback.user?.username}{dateFormat.format(new Date(feedback.lastChanged))}{feedback.content}
-
+{#snippet date(value: string)} + {dateFormat.format(new Date(value))} +{/snippet} + + (activeFeedback = feedback)} +/> diff --git a/src/app/admin/feedback/actions.ts b/src/app/admin/feedback/feedback.ts similarity index 50% rename from src/app/admin/feedback/actions.ts rename to src/app/admin/feedback/feedback.ts index 306a96c..dc25886 100644 --- a/src/app/admin/feedback/actions.ts +++ b/src/app/admin/feedback/feedback.ts @@ -1,7 +1,15 @@ -import { actions } from 'astro:actions'; -import { feedbacks } from './state.ts'; +import { type ActionReturnType, actions } from 'astro:actions'; +import { writable } from 'svelte/store'; import { actionErrorPopup } from '@util/action.ts'; +// types +export type Feedbacks = Exclude['data'], undefined>['feedbacks']; +export type Feedback = Feedbacks[0]; + +// state +export const feedbacks = writable([]); + +// actions export async function fetchFeedbacks(reporter?: string | null, reported?: string | null) { const { data, error } = await actions.feedback.feedbacks({ reporter: reporter, reported: reported }); if (error) { diff --git a/src/app/admin/feedback/state.ts b/src/app/admin/feedback/state.ts deleted file mode 100644 index 583752e..0000000 --- a/src/app/admin/feedback/state.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { writable } from 'svelte/store'; -import type { Feedbacks } from './types.ts'; - -export const feedbacks = writable([]); diff --git a/src/app/admin/feedback/types.ts b/src/app/admin/feedback/types.ts deleted file mode 100644 index ce327f9..0000000 --- a/src/app/admin/feedback/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { ActionReturnType, actions } from 'astro:actions'; - -export type Feedbacks = Exclude['data'], undefined>['feedbacks']; -export type Feedback = Feedbacks[0]; diff --git a/src/app/admin/reports/BottomBar.svelte b/src/app/admin/reports/BottomBar.svelte index 06fcd4f..5d2cfee 100644 --- a/src/app/admin/reports/BottomBar.svelte +++ b/src/app/admin/reports/BottomBar.svelte @@ -1,10 +1,10 @@ - - setTimeout(() => onClose?.(), 300)}> -