Add time-based day progress bar to dashboards
Replaces block-count progress with a wall-clock progress bar driven by configurable day start/end hours on each schedule template. - ScheduleTemplate: add day_start_time / day_end_time (TIME, nullable) - Startup migration: idempotent ALTER TABLE for existing DBs - Dashboard snapshot: includes day_start_time / day_end_time from template - Admin → Schedules: time pickers in block editor to set day hours - Dashboard view: time-based progress bar with start/current/end labels - TV view: full-width day progress strip between header and main content Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,8 @@ export const useScheduleStore = defineStore('schedule', () => {
|
||||
const isPaused = ref(false)
|
||||
const blockStartedAt = ref(null) // Date.now() ms when current counting period started
|
||||
const blockElapsedOffset = ref(0) // seconds already elapsed before blockStartedAt
|
||||
const dayStartTime = ref(null) // "HH:MM:SS" string or null
|
||||
const dayEndTime = ref(null) // "HH:MM:SS" string or null
|
||||
|
||||
const currentBlock = computed(() =>
|
||||
session.value?.current_block_id
|
||||
@@ -28,6 +30,8 @@ export const useScheduleStore = defineStore('schedule', () => {
|
||||
completedBlockIds.value = snapshot.completed_block_ids || []
|
||||
isPaused.value = false
|
||||
if (snapshot.child) child.value = snapshot.child
|
||||
dayStartTime.value = snapshot.day_start_time || null
|
||||
dayEndTime.value = snapshot.day_end_time || null
|
||||
// Restore elapsed time from server-computed value
|
||||
const serverElapsed = snapshot.block_elapsed_seconds || 0
|
||||
if (snapshot.session?.current_block_id && serverElapsed > 0) {
|
||||
@@ -111,6 +115,8 @@ export const useScheduleStore = defineStore('schedule', () => {
|
||||
isPaused,
|
||||
blockStartedAt,
|
||||
blockElapsedOffset,
|
||||
dayStartTime,
|
||||
dayEndTime,
|
||||
currentBlock,
|
||||
progressPercent,
|
||||
applySnapshot,
|
||||
|
||||
Reference in New Issue
Block a user