pdf-quiz-generator/backend/app
Daniel 1343eb5801 Fix mobile touch, hide docs for users, timer save/restore, Nextcloud server-side
Mobile touch fix:
- Added touch-action: manipulation and -webkit-tap-highlight-color: transparent
  to .question-card .option CSS — prevents mobile browsers from interfering
  with tap events (double-tap zoom, highlight flash, delayed clicks)

Documents hidden for regular users:
- Dashboard: stats card hides Documents count for non-moderators
- Dashboard: document list section completely hidden for non-moderators
- Documents API not called for non-moderators (saves a request)

Timer improvements:
- Custom timer input on ModeSelectScreen — set any number of minutes
  for exam mode (overrides the quiz default, or add time to untimed quizzes)
- timeLeft saved to Redis progress every 1.5s (alongside answers, mode, voice)
- On resume: timer restarts from the saved remaining time
- Timer auto-submits when it reaches 0 (already worked, now also works on resume)
- Progress bar shows remaining time relative to what was left at resume

Nextcloud settings — server-side storage:
- GET /auth/me/settings — load user settings from Redis
- PUT /auth/me/settings — save settings to Redis (linked to user_id)
- SettingsPage loads Nextcloud config from server on mount
- Saves to BOTH server (cross-browser persistent) and localStorage (for UploadPage)
- Clear function wipes both server and localStorage
- Switching browsers and logging in restores Nextcloud settings

Also fixed: saved.attemptId → saved.attempt_id in ModeSelectScreen resume check

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 17:39:43 +02:00
..
models Fix quiz delete (500 error), add trash bin, quiz resume, hide/publish, remove JS dialogs 2026-04-01 04:51:41 +02:00
routers Fix mobile touch, hide docs for users, timer save/restore, Nextcloud server-side 2026-04-01 17:39:43 +02:00
schemas Add extraction modes; fix resume; hide Nextcloud/Upload for users; delete PREP 2013 questions 2026-04-01 12:43:24 +02:00
services Explanation: capture ALL content verbatim until next question 2026-04-01 13:16:43 +02:00
tasks Add extraction modes; fix resume; hide Nextcloud/Upload for users; delete PREP 2013 questions 2026-04-01 12:43:24 +02:00
utils Junction table for shared questions; verification blocking; semantic bank search; bug fixes 2026-04-01 00:55:13 +02:00
__init__.py Initial commit: PDF Quiz Generator app 2026-03-30 20:04:53 +00:00
config.py Major platform update: pgvector search, multi-provider TTS, settings page, CLI 2026-03-31 18:03:10 +02:00
database.py Major platform update: pgvector search, multi-provider TTS, settings page, CLI 2026-03-31 18:03:10 +02:00
main.py Fix quiz delete (500 error), add trash bin, quiz resume, hide/publish, remove JS dialogs 2026-04-01 04:51:41 +02:00