Add Done button, tablet controls, super admin management, midnight strike reset, and activity log improvements
- Done button snaps block to full duration, marks complete, logs "Marked Done by User"; Reset after Done fully un-completes the block - Session action buttons stretch full-width and double height for tablet tapping - Super admin: reset password, disable/enable accounts, delete user (with cascade), last active date per user's timezone - Disabled account login returns specific error message instead of generic invalid credentials - Users can change own password from Admin → Settings - Strikes reset automatically at midnight in user's configured timezone (lazy reset on page load) - Break timer state fully restored when navigating away and back to dashboard - Timer no longer auto-starts on navigation if it wasn't running before - Implicit pause guard: no duplicate pause events when switching already-paused blocks or starting a break - Block selection events removed from activity log; all event types have human-readable labels - House emoji favicon via inline SVG data URI - README updated to reflect all changes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,11 @@
|
||||
<option value="resume">↺ Resumed</option>
|
||||
<option value="complete">✓ Completed</option>
|
||||
<option value="skip">⟶ Skipped</option>
|
||||
<option value="reset">↩ Reset</option>
|
||||
<option value="break_start">☕ Break started</option>
|
||||
<option value="break_pause">⏸ Break paused</option>
|
||||
<option value="break_resume">↺ Break resumed</option>
|
||||
<option value="break_reset">↩ Break reset</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="edit-field">
|
||||
@@ -199,6 +204,11 @@ const EVENT_META = {
|
||||
resume: { icon: '↺', label: 'Resumed' },
|
||||
complete: { icon: '✓', label: 'Completed' },
|
||||
skip: { icon: '⟶', label: 'Skipped' },
|
||||
reset: { icon: '↩', label: 'Reset' },
|
||||
break_start: { icon: '☕', label: 'Break started' },
|
||||
break_pause: { icon: '⏸', label: 'Break paused' },
|
||||
break_resume: { icon: '↺', label: 'Break resumed' },
|
||||
break_reset: { icon: '↩', label: 'Break reset' },
|
||||
}
|
||||
|
||||
function eventIcon(entry) {
|
||||
@@ -217,6 +227,7 @@ function eventLabel(entry) {
|
||||
: `Strike removed (${entry.new_strikes}/3)`
|
||||
}
|
||||
if (entry.event_type === 'complete' && !entry.block_label) return 'Day ended'
|
||||
if (entry.event_type === 'complete' && entry.block_label) return `Marked Done by User — ${entry.block_label}`
|
||||
const action = EVENT_META[entry.event_type]?.label || entry.event_type
|
||||
return entry.block_label ? `${action} — ${entry.block_label}` : action
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user