Release 2025-05-25-ELtG
This commit is contained in:
@@ -143,9 +143,9 @@ if (toggleResult?.error) {
|
||||
}
|
||||
---
|
||||
|
||||
<BaseLayout pageTitle="Announcement Management" widthClassName="max-w-screen-xl">
|
||||
<BaseLayout pageTitle="Announcements" widthClassName="max-w-screen-xl">
|
||||
<div class="mb-6 flex flex-col sm:flex-row sm:items-center sm:justify-between">
|
||||
<h1 class="font-title text-2xl font-bold text-white">Announcement Management</h1>
|
||||
<h1 class="font-title text-2xl font-bold text-white">Announcements</h1>
|
||||
<div class="mt-2 flex items-center gap-4 sm:mt-0">
|
||||
<span class="text-sm text-zinc-400">{announcements.length} announcements</span>
|
||||
</div>
|
||||
@@ -193,12 +193,17 @@ if (toggleResult?.error) {
|
||||
<option value="active" selected={filters.status === 'active'}>Active</option>
|
||||
<option value="inactive" selected={filters.status === 'inactive'}>Inactive</option>
|
||||
</select>
|
||||
<button
|
||||
<Button
|
||||
as="button"
|
||||
type="submit"
|
||||
class="inline-flex items-center rounded-r-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none"
|
||||
>
|
||||
<Icon name="ri:search-2-line" class="h-4 w-4" />
|
||||
</button>
|
||||
color="info"
|
||||
variant="solid"
|
||||
size="md"
|
||||
iconOnly
|
||||
icon="ri:search-2-line"
|
||||
label="Search"
|
||||
class="rounded-l-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -206,13 +211,16 @@ if (toggleResult?.error) {
|
||||
|
||||
<!-- Create New Announcement Form -->
|
||||
<div class="mb-6">
|
||||
<button
|
||||
<Button
|
||||
as="button"
|
||||
id="toggle-new-announcement-form"
|
||||
class="mb-4 inline-flex items-center rounded-md bg-green-600 px-4 py-2 text-sm font-medium text-white hover:bg-green-700 focus:ring-2 focus:ring-green-500 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none"
|
||||
>
|
||||
<Icon name="ri:add-line" class="mr-1 h-4 w-4" />
|
||||
Create New Announcement
|
||||
</button>
|
||||
color="success"
|
||||
variant="solid"
|
||||
size="md"
|
||||
icon="ri:add-line"
|
||||
label="Create"
|
||||
class="mb-4"
|
||||
/>
|
||||
|
||||
<div
|
||||
id="new-announcement-form"
|
||||
@@ -306,13 +314,16 @@ if (toggleResult?.error) {
|
||||
|
||||
<div class="pt-4">
|
||||
<InputSubmitButton label="Create Announcement" icon="ri:save-line" hideCancel />
|
||||
<button
|
||||
<Button
|
||||
as="button"
|
||||
type="button"
|
||||
id="cancel-create"
|
||||
class="ml-2 inline-flex items-center rounded-md border border-zinc-600 bg-zinc-800 px-4 py-2 text-sm font-medium text-zinc-300 hover:bg-zinc-700 focus:ring-2 focus:ring-zinc-500 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
color="gray"
|
||||
variant="faded"
|
||||
size="md"
|
||||
label="Cancel"
|
||||
class="ml-2"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -339,19 +350,24 @@ if (toggleResult?.error) {
|
||||
<form method="POST" action={actions.admin.announcement.delete} id="delete-form">
|
||||
<input type="hidden" name="id" id="delete-id" />
|
||||
<div class="flex justify-end gap-2">
|
||||
<button
|
||||
<Button
|
||||
as="button"
|
||||
type="button"
|
||||
class="close-modal inline-flex items-center rounded-md border border-zinc-600 bg-zinc-800 px-4 py-2 text-sm font-medium text-zinc-300 hover:bg-zinc-700 focus:ring-2 focus:ring-zinc-500 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none"
|
||||
>
|
||||
Cancel
|
||||
</button>
|
||||
<button
|
||||
class="close-modal"
|
||||
color="gray"
|
||||
variant="faded"
|
||||
size="md"
|
||||
label="Cancel"
|
||||
/>
|
||||
<Button
|
||||
as="button"
|
||||
type="submit"
|
||||
class="inline-flex items-center rounded-md bg-red-600 px-4 py-2 text-sm font-medium text-white hover:bg-red-700 focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:outline-none"
|
||||
>
|
||||
<Icon name="ri:delete-bin-line" class="mr-1 h-4 w-4" />
|
||||
Delete
|
||||
</button>
|
||||
color="danger"
|
||||
variant="solid"
|
||||
size="md"
|
||||
icon="ri:delete-bin-line"
|
||||
label="Delete"
|
||||
/>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -497,60 +513,64 @@ if (toggleResult?.error) {
|
||||
</td>
|
||||
<td class="px-4 py-3">
|
||||
<div class="flex justify-center gap-2">
|
||||
<Tooltip
|
||||
as="button"
|
||||
type="button"
|
||||
data-id={announcement.id}
|
||||
class="edit-button inline-flex items-center rounded-md border border-blue-500/50 bg-blue-500/20 px-1 py-1 text-xs text-blue-400 transition-colors hover:bg-blue-500/30"
|
||||
text="Edit"
|
||||
onclick={`document.getElementById('edit-announcement-form-${announcement.id}').classList.toggle('hidden')`}
|
||||
>
|
||||
<Icon name="ri:edit-line" class="size-4" />
|
||||
<Tooltip text="Edit">
|
||||
<Button
|
||||
as="button"
|
||||
type="button"
|
||||
data-id={announcement.id}
|
||||
class="edit-button"
|
||||
color="info"
|
||||
variant="faded"
|
||||
size="sm"
|
||||
iconOnly
|
||||
icon="ri:edit-line"
|
||||
label="Edit"
|
||||
onclick={`document.getElementById('edit-announcement-form-${announcement.id}').classList.toggle('hidden')`}
|
||||
/>
|
||||
</Tooltip>
|
||||
|
||||
<form
|
||||
method="POST"
|
||||
action={actions.admin.announcement.toggleActive}
|
||||
class="inline-block"
|
||||
data-confirm={`Are you sure you want to ${announcement.isActive ? 'deactivate' : 'activate'} this announcement?`}
|
||||
>
|
||||
<input type="hidden" name="id" value={announcement.id} />
|
||||
<input type="hidden" name="isActive" value={String(!announcement.isActive)} />
|
||||
<button
|
||||
type="submit"
|
||||
class={`rounded-md border px-1 py-1 text-xs transition-colors ${
|
||||
announcement.isActive
|
||||
? 'border-yellow-500/50 bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/30'
|
||||
: 'border-green-500/50 bg-green-500/20 text-green-400 hover:bg-green-500/30'
|
||||
}`}
|
||||
<Tooltip text={announcement.isActive ? 'Deactivate' : 'Activate'}>
|
||||
<form
|
||||
method="POST"
|
||||
action={actions.admin.announcement.toggleActive}
|
||||
class="inline-block"
|
||||
data-confirm={`Are you sure you want to ${announcement.isActive ? 'deactivate' : 'activate'} this announcement?`}
|
||||
>
|
||||
<Tooltip text={announcement.isActive ? 'Deactivate' : 'Activate'}>
|
||||
<Icon
|
||||
name={
|
||||
announcement.isActive ? 'ri:pause-circle-line' : 'ri:play-circle-line'
|
||||
}
|
||||
class="size-4"
|
||||
/>
|
||||
</Tooltip>
|
||||
</button>
|
||||
</form>
|
||||
<input type="hidden" name="id" value={announcement.id} />
|
||||
<input type="hidden" name="isActive" value={String(!announcement.isActive)} />
|
||||
<Button
|
||||
as="button"
|
||||
type="submit"
|
||||
color={announcement.isActive ? 'warning' : 'success'}
|
||||
variant="faded"
|
||||
size="sm"
|
||||
iconOnly
|
||||
icon={announcement.isActive ? 'ri:pause-circle-line' : 'ri:play-circle-line'}
|
||||
label={announcement.isActive ? 'Deactivate' : 'Activate'}
|
||||
/>
|
||||
</form>
|
||||
</Tooltip>
|
||||
|
||||
<form
|
||||
method="POST"
|
||||
action={actions.admin.announcement.delete}
|
||||
class="inline-block"
|
||||
data-confirm="Are you sure you want to delete this announcement?"
|
||||
>
|
||||
<input type="hidden" name="id" value={announcement.id} />
|
||||
<button
|
||||
type="submit"
|
||||
class="rounded-md border border-red-500/50 bg-red-500/20 px-1 py-1 text-xs text-red-400 transition-colors hover:bg-red-500/30"
|
||||
<Tooltip text="Delete">
|
||||
<form
|
||||
method="POST"
|
||||
action={actions.admin.announcement.delete}
|
||||
class="inline-block"
|
||||
data-confirm="Are you sure you want to delete this announcement?"
|
||||
>
|
||||
<Tooltip text="Delete">
|
||||
<Icon name="ri:delete-bin-line" class="size-4" />
|
||||
</Tooltip>
|
||||
</button>
|
||||
</form>
|
||||
<input type="hidden" name="id" value={announcement.id} />
|
||||
<Button
|
||||
as="button"
|
||||
type="submit"
|
||||
color="danger"
|
||||
variant="faded"
|
||||
size="sm"
|
||||
iconOnly
|
||||
icon="ri:delete-bin-line"
|
||||
label="Delete"
|
||||
/>
|
||||
</form>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -648,9 +668,12 @@ if (toggleResult?.error) {
|
||||
<div class="pt-4">
|
||||
<InputSubmitButton label="Save Changes" icon="ri:save-line" hideCancel />
|
||||
<Button
|
||||
as="button"
|
||||
type="button"
|
||||
label="Cancel"
|
||||
color="gray"
|
||||
variant="faded"
|
||||
size="md"
|
||||
onclick={`document.getElementById('edit-announcement-form-${announcement.id}').classList.toggle('hidden')`}
|
||||
class="ml-2"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user