Commit Graph

12 Commits

Author SHA1 Message Date
Dries Peeters 9b7aa3a938 security: Add CSRF token protection to all POST forms" -m " Complete CSRF protection implementation across the entire application. Fixed 31 HTML forms and 4 JavaScript dynamic form generators that were missing CSRF tokens.
Affected modules: Projects, Clients, Tasks, Invoices, Comments, Admin, Search

- All HTML forms now include csrf_token hidden input
- JavaScript forms retrieve token from meta tag in base.html
- API endpoints properly exempted for JSON operations
- 58 POST forms + 4 dynamic JS forms now protected

Security impact: HIGH - Closes critical CSRF vulnerability
Files modified: 20 templates
2025-10-11 09:01:58 +02:00
Dries Peeters 7fbac9378f feat(ui): per-page assets, global confirm modal, mobile FAB, a11y; invoices UX
- Remove global jQuery/DataTables/Chart.js from base; load per-page where used
- Add “Skip to content” link and set main content id for accessibility
- Add reusable confirm modal with Promise API; refactor clients/invoices to use it
- Add mobile “Log Time” floating action button (FAB)
- Extract inline styles into app/static/ui.css (invoices, project view); tidy project list CSS
- Invoices list: add status filter chips, mobile-friendly data-labels; move scripts to extra_js
- Add per-page Chart.js includes for reports and project view
- Improve performance (less global JS) and consistency without altering behavior

Note: Theme/density navbar buttons intentionally excluded per request.
2025-10-06 14:14:09 +02:00
Dries Peeters 7525b44702 feat: Modernize UI with consistent styling system and enhanced UX
• Enhanced CSS variable system with comprehensive color palettes (50-900 scales)
• Implemented modern glass morphism effects with backdrop-blur throughout
• Added smooth animations and micro-interactions for better user feedback
• Created reusable component system with modern styling patterns
• Improved mobile experience with better touch interactions and responsive design
• Enhanced dark theme with better contrast ratios and visual hierarchy
• Updated navbar to use square corners and fixed dark mode styling issues
• Applied consistent styling patterns from clients page across all templates
• Added comprehensive theme template for future customizations
• Maintained existing blue color scheme while modernizing visual appearance
• Optimized CSS architecture with global styling patterns and reduced duplication
• Enhanced accessibility with proper focus states and WCAG compliance
• Improved button system with gradients, animations, and consistent interactions

Files modified:
- app/static/base.css: Enhanced with modern styling system
- app/static/mobile.css: Improved mobile experience and touch interactions
- app/static/theme-template.css: Comprehensive theme export template
- app/templates/_components.html: Modernized reusable components
- Multiple template files: Applied consistent styling patterns
- Documentation: Added comprehensive guides and summaries

Breaking changes: None - all existing functionality preserved
2025-09-19 14:48:12 +02:00
Dries Peeters 5bb109a98e feat: enhance UI/UX across application with improved styling and mobile responsiveness
- Update Kanban board: remove alert system, clean up styling and JavaScript
- Enhance task management: add collapsible filters, improve button layouts
- Improve mobile responsiveness: standardize colors, spacing, and component styling
- Modernize CSS: implement CSS custom properties for consistent theming
- Update templates: standardize button styling and layout across all pages
- Refactor invoice interface: improve form layouts and visual consistency
- Enhance admin pages: better spacing and mobile-friendly designs

This update provides a more cohesive and modern user experience across
desktop and mobile devices with improved accessibility and visual consistency.
2025-09-16 20:28:00 +02:00
Dries Peeters 016fe5ead0 feat(ui): refresh templates and dashboards; improve admin and error pages
- Update global layout and styles: `app/templates/base.html`, `app/static/base.css`
- Modernize analytics dashboards (web + mobile)
- Revamp auth pages: login, profile, edit profile
- Refresh error pages: 400/403/404/500 and generic
- Polish main dashboard and search
- Enhance tasks views: create/edit/view, kanban, my/overdue
- Update clients, projects, invoices, and reports pages
- Refine timer pages (timer/edit/manual_entry)
- Tweak admin routes and templates
- Update license server util and integration docs
- Refresh README and help/about content

Notes:
- UI-focused changes; no database migrations included.
2025-09-12 10:03:40 +02:00
Dries Peeters 69f9f1140d feat(i18n): add translations, locale switcher, and user language preference
- Integrate Flask-Babel and i18n utilities; initialize in app factory
- Add `preferred_language` to `User` with Alembic migration (011_add_user_preferred_language)
- Add `babel.cfg` and `scripts/extract_translations.py`
- Add `translations/` for en, de, fr, it, nl, fi
- Update templates to use `_()` and add language picker in navbar/profile
- Respect locale in routes and context processors; persist user preference
- Update requirements and Docker/Docker entrypoint for Babel/gettext support
- Minor copy and style adjustments across pages

Migration: run `alembic upgrade head`
2025-09-11 23:08:41 +02:00
Dries Peeters 7486037307 feat: local SQLite test env, UI fixes, and DB migrations
- UI/UX: Refine layouts and responsive styles; fix task and timer views; update
  shared components and dashboard templates
  - Updates across `app/templates/**`, `templates/**`, `app/static/base.css`,
    and `app/static/mobile.css`
- Backend: Route cleanups and minor fixes for admin, auth, invoices, and timer
  - Touches `app/routes/admin.py`, `app/routes/auth.py`, `app/routes/api.py`,
    `app/routes/invoices.py`, `app/routes/timer.py`
- DevOps: Improve Docker setup and add local testing workflow
  - Update `Dockerfile`, `docker/start-fixed.py`
  - Add `docker-compose.local-test.yml`, `.env.local-test`, start scripts
- Docs: Update `README.md` and add `docs/LOCAL_TESTING_WITH_SQLITE.md`
- Utilities: Adjust CLI and PDF generator behavior

Database (Alembic) migrations:
- 005_add_missing_columns.py
- 006_add_logo_and_task_timestamps.py
- 007_add_invoice_and_more_settings_columns.py
- 008_align_invoices_and_settings_more.py
- 009_add_invoice_created_by.py
- 010_enforce_single_active_timer.py

BREAKING CHANGE: Only one active timer per user is now enforced.

Note: Apply database migrations after deploy (e.g., `alembic upgrade head`).
2025-09-10 11:49:49 +02:00
Dries Peeters 1ab0122cc7 Major CSS overhaul: Enhanced UI/UX with modern animations and perfect dark mode
Features:
- Added shimmer effects and micro-interactions across all components
- Implemented gradient backgrounds and enhanced visual hierarchy
- Created smooth hover animations with cubic-bezier transitions
- Enhanced markdown editor with professional styling and dark mode support
- Improved task cards with animated progress bars and status badges
- Added responsive design optimizations for mobile devices

 Technical improvements:
- Consolidated and optimized CSS across 6 template files
- Implemented consistent design system with unified color palette
- Added hardware-accelerated animations for 60fps performance
- Enhanced accessibility with proper focus states and contrast ratios
- Created modular CSS architecture with clear organization

 Dark mode enhancements:
- Complete dark theme support across all modified components
- Smooth theme switching with no visual glitches
- Enhanced contrast and readability in dark mode
- Consistent color palette and gradient adaptations

 Responsive design:
- Mobile-optimized touch interactions and spacing
- Unified breakpoint behavior across all pages
- Enhanced button sizes and hover states for mobile

Files modified:
- templates/clients/list.html - Enhanced client list with animated badges and cards
- templates/clients/view.html - Improved client details with shimmer effects
- app/templates/tasks/edit.html - Professional markdown editor styling
- app/templates/tasks/create.html - Enhanced task creation form
- app/templates/tasks/list.html - Modern task cards with animations
- templates/projects/view.html - Consistent project task styling

This commit transforms the TimeTracker into a modern, professional application with exceptional user experience in both light and dark modes.
2025-09-08 12:09:58 +02:00
Dries Peeters 66919c96b2 feat(ui): dark mode fixes and Log Time UX aligned with invoices
Make user dropdown fully dark; fix hover/divider; remove white overlay
Mobile dropdown respects dark vars; improve navbar-collapse bg/z-index
Improve action button grouping/contrast across pages
Add dark-mode variants for badges, lists, pagination, utilities
Refresh Log Time page: card header, mini-cards for Start/End, unified labels
Group Save/Clear actions; Back remains secondary
Per-user theme preference: model column + migration (003) + POST /auth/profile/theme
Base loads user theme (fallback to local/system); remove admin theme selector
2025-09-05 10:04:49 +02:00
Dries Peeters 3376874ba0 feat(ui): unify page headers across app; add Buy Me a Coffee link
- Create and use shared page_header macro for consistent info headers
- Apply new header styling to:
  - Dashboard, Projects, Clients, Invoices (removed filter dropdown), Reports, Timer (manual)
  - System Info, Admin Users (list + form)
  - Profile, Edit Profile
  - Tasks (list, my tasks, overdue)
  - Analytics (desktop + mobile)
  - About, Help
- Add shared header/badge utilities in base.css for consistent spacing and badges
- Align summary cards and table/button styles with admin dashboard
- Footer: add “Buy me a coffee” link (https://buymeacoffee.com/DryTrix)
2025-09-04 09:52:09 +02:00
Dries Peeters 64543d1550 fix(tasks,ui): correct Task View dropdown behavior and unify filter UI
- Ensure Task View dropdown shows correct options and preserves selected state
- Normalize dropdown/filter markup across tasks, clients, projects, reports, timer
- Update routes to pass/handle filter params and template context
- Align styles for dropdown spacing/alignment; improve mobile behavior
- Keep base layout consistent for shared components
2025-09-03 14:17:57 +02:00
Dries Peeters 8a378b7078 feat(clients,license,db): add client management, enhanced DB init, and tests
- Clients: add model, routes, and templates
  - app/models/client.py
  - app/routes/clients.py
  - templates/clients/{create,edit,list,view}.html
  - docs/CLIENT_MANAGEMENT_README.md
- Database: add enhanced init/verify scripts, migrations, and docs
  - docker/{init-database-enhanced.py,start-enhanced.py,verify-database.py}
  - docs/ENHANCED_DATABASE_STARTUP.md
  - migrations/{add_analytics_column.sql,add_analytics_setting.py,migrate_to_client_model.py}
- Scripts: add version manager and docker network test helpers
  - scripts/version-manager.{bat,ps1,py,sh}
  - scripts/test-docker-network.{bat,sh}
  - docs/VERSION_MANAGEMENT.md
- UI: tweak base stylesheet
  - app/static/base.css
- Tests: add client system test
  - test_client_system.py
2025-09-01 11:34:45 +02:00