This commit is contained in:
Felix Schlusche
2025-10-23 01:12:59 +02:00
parent c8c2a800bb
commit 2804b3eaa4
12 changed files with 875 additions and 324 deletions

51
public/js/state.js Normal file
View File

@@ -0,0 +1,51 @@
/**
* Global application state
*/
// Modal state
export let currentEditingId = null;
export let datePicker = null;
export let startTimePicker = null;
export let endTimePicker = null;
export let filterFromPicker = null;
export let filterToPicker = null;
// Timer state
export let timerInterval = null;
export let timerStartTime = null;
export let timerPausedDuration = 0; // Total paused time in seconds
export let isPaused = false;
export let pauseTimeout = null;
export let currentEntryId = null; // ID of today's entry being timed
// Current month display state
export let displayYear = new Date().getFullYear();
export let displayMonth = new Date().getMonth(); // 0-11
// Bulk edit state
export let bulkEditMode = false;
export let selectedEntries = new Set();
// Setters for state mutations
export function setCurrentEditingId(id) { currentEditingId = id; }
export function setDatePicker(picker) { datePicker = picker; }
export function setStartTimePicker(picker) { startTimePicker = picker; }
export function setEndTimePicker(picker) { endTimePicker = picker; }
export function setFilterFromPicker(picker) { filterFromPicker = picker; }
export function setFilterToPicker(picker) { filterToPicker = picker; }
export function setTimerInterval(interval) { timerInterval = interval; }
export function setTimerStartTime(time) { timerStartTime = time; }
export function setTimerPausedDuration(duration) { timerPausedDuration = duration; }
export function setIsPaused(paused) { isPaused = paused; }
export function setPauseTimeout(timeout) { pauseTimeout = timeout; }
export function setCurrentEntryId(id) { currentEntryId = id; }
export function setDisplayYear(year) { displayYear = year; }
export function setDisplayMonth(month) { displayMonth = month; }
export function setBulkEditMode(mode) { bulkEditMode = mode; }
export function clearSelectedEntries() { selectedEntries.clear(); }
export function addSelectedEntry(id) { selectedEntries.add(id); }
export function removeSelectedEntry(id) { selectedEntries.delete(id); }
export function hasSelectedEntry(id) { return selectedEntries.has(id); }