+
+
diff --git a/dashboard/src/data/events.ts b/dashboard/src/data/events.ts
index 063f95ac1..9ca7175c1 100644
--- a/dashboard/src/data/events.ts
+++ b/dashboard/src/data/events.ts
@@ -71,6 +71,9 @@ export function eventDetail(event: string) {
*/
export const updateEvent = useDoctype>("Buzz Event").setValue
+/** Turns the banner countdown on or off, apart from the page's own Save. */
+export const setShowCountdown = useDoctype>("Buzz Event").setValue
+
/** Moves an event between in person and virtual, apart from the page's own Save. */
export const convertEvent = useDoctype>("Buzz Event").setValue
diff --git a/dashboard/src/pages/manage/events/EventDetails.vue b/dashboard/src/pages/manage/events/EventDetails.vue
index 5c58150d0..483b18189 100644
--- a/dashboard/src/pages/manage/events/EventDetails.vue
+++ b/dashboard/src/pages/manage/events/EventDetails.vue
@@ -5,8 +5,10 @@ import { Editor, EditorContent, EditorFixedMenu } from "frappe-ui/editor"
import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from "vue"
import { useRoute } from "vue-router"
+import BannerCountdown from "@/components/dashboard/events/BannerCountdown.vue"
import EventArchivedAlert from "@/components/dashboard/events/EventArchivedAlert.vue"
import EventBanner from "@/components/dashboard/events/EventBanner.vue"
+import EventDetailsActions from "@/components/dashboard/events/EventDetailsActions.vue"
import EventDetailsSkeleton from "@/components/dashboard/events/EventDetailsSkeleton.vue"
import EventHosts from "@/components/dashboard/events/EventHosts.vue"
import EventLinks from "@/components/dashboard/events/EventLinks.vue"
@@ -17,6 +19,7 @@ import EventSchedule from "@/components/dashboard/events/EventSchedule.vue"
import { useFormDraft } from "@/composables/useFormDraft"
import { eventDetail, updateEvent } from "@/data/events"
import { session } from "@/data/session"
+import PageWithSidebar from "@/layouts/PageWithSidebar.vue"
import type { EventDetail, EventExternalLink } from "@/types"
import { isEndBeforeStart } from "@/utils/eventDates"
import { matches } from "@/utils/formDraft"
@@ -28,6 +31,14 @@ const eventId = route.params.eventId as string
const event = eventDetail(eventId)
+// Saved on its own by the sidebar switch, outside the form and its Save.
+const showCountdown = ref(false)
+watch(
+ () => event.data?.show_countdown,
+ (show) => (showCountdown.value = !!show),
+ { immediate: true },
+)
+
type EventForm = ReturnType
// The form the page edits, and the copy it is compared against to know it is dirty.
@@ -208,14 +219,22 @@ async function save() {
enter-active-class="transition-opacity duration-200 ease-out motion-reduce:transition-none"
enter-from-class="opacity-0"
>
-