5 Commits

Author SHA1 Message Date
d078b2f50b Merge master and ldap-writeback: added LDAP optional mode, refactored templates and JavaScript modules 2025-11-20 09:00:55 +03:00
fb49f4e2b6 refactor(js): Extract calendar widget to separate module
- Created calendarWidget.js (1002 lines)
- Reduced rightbar_calendar.html from 996 to 237 lines (76% reduction)
- Supports: FullCalendar integration, company/department calendars, recurring events
- Features: week list view, event CRUD, color picker, responsive design
- Export initCalendarWidget() function for reusability
- Updated components/index.js to export calendar widget (v1.1.0)
2025-10-28 10:59:05 +03:00
8c1e4f17a0 refactor: Extract teamWheel component (Phase 4 start)
- Created static/js/components/teamWheel.js (329 lines)
- Replaced 207-line inline script in department_scripts.html with ES6 module import
- Features: auto-scroll, manual control (mouse/touch/wheel), member focus, fallback
- All 12 tests passing
2025-10-28 09:28:06 +03:00
3e1e618a62 feat: create reusable ListFilter component (Phase 2.2)
- Created static/js/components/listFilter.js:
  * Universal list filtering component with search support
  * Replaces duplicated applyFilter() functions found in 7 templates
  * Features:
    - Configurable match functions (default or custom)
    - Debounced search input for performance
    - Support for data-attribute matching
    - Support for selector-based matching
    - Optional empty state message
    - Optional clear button
    - Flexible hiding methods (display/class)

- Updated static/js/components/index.js:
  * Exports ListFilter and helper functions
  * Added createDataAttrMatcher() helper
  * Added createSelectorMatcher() helper

Component ready for use in templates to replace inline applyFilter() implementations.

Tests: All 12 static file tests passing ✅

Next: Replace applyFilter() usage in templates with ListFilter component
2025-10-28 08:40:25 +03:00
303fd54d17 feat: setup refactoring infrastructure (Phase 0)
- Created static file structure:
  * static/css/components/ - reusable CSS components
  * static/css/pages/ - page-specific styles
  * static/js/utils/ - utility functions
  * static/js/components/ - interactive components

- Created infrastructure files:
  * static/css/variables.css - CSS custom properties
  * static/css/components/index.css - CSS entry point
  * static/js/utils/index.js - JS utilities entry point
  * static/js/components/index.js - JS components entry point

- Added comprehensive tests:
  * tests/test_static_files.py - 12 tests for structure, syntax, encoding

- Updated .gitignore:
  * Added staticfiles/ to ignore list
  * Clarified that static/ sources are tracked

- Added REFACTORING_PLAN.md:
  * New strategy: extract CSS/JS before HTML decomposition
  * Documented lessons learned from previous attempts
  * Defined phases 0-6 for systematic refactoring
2025-10-28 08:29:43 +03:00