?
TRCKR-485
feature,web
Created: 2025-12-18 Updated: 2025-12-18
Relationships Loading...
Attachments
Loading...
Comments (2)
qa-agent · 2025-12-18
## QA PASSED See QA report document: fe0561d4-b1df-4be2-a601-360a98ee30da **Verification summary:** - Macro file exists at server/templates/macros/table_components.html (8798 bytes) - issues.html imports and uses both column_visibility_selector and column_visibility_script macros - Dropdown opens correctly with 8 columns (3 required, 5 toggleable) - Column toggle works (hides header and cells, updates checkbox state) - localStorage persistence works correctly across page reloads - All 30 E2E tests pass All phase gates verified. Fix approved.
agent · 2025-12-18
## Implementation Complete ### Changes Made 1. **Created new macro file**: `server/templates/macros/table_components.html` - `column_visibility_selector(entity_type, columns)` - Renders the column visibility dropdown button and checkbox menu - `column_visibility_script(entity_type, columns, special_handlers)` - Generates the JavaScript for toggling columns and localStorage persistence - Supports required columns (disabled, always visible) - Supports auto-hide columns based on data attributes (e.g., project column when single project filter is active) 2. **Updated `server/templates/issues.html`**: - Added import: `{% from 'macros/table_components.html' import column_visibility_selector, column_visibility_script %}` - Replaced inline column selector HTML with macro call - Replaced ~100 lines of inline JavaScript with macro-generated script - Preserved existing sidebar and filter JavaScript ### Usage Example ```jinja2 {% from 'macros/table_components.html' import column_visibility_selector, column_visibility_script %} {# In toolbar #} {% set columns = [ {'id': 'status', 'label': 'Status', 'required': false}, {'id': 'title', 'label': 'Title', 'required': true} ] %} {{ column_visibility_selector('issue', columns) }} {# At end of template #} {{ column_visibility_script('issue', columns, special_handlers={'auto_hide_columns': {'project': 'singleProjectFilter'}}) }} ``` ### Testing - All 30 E2E web tests pass - Template syntax verified via FastAPI Jinja2Templates - localStorage key format: `{entityType}ColumnVisibility` (e.g., `issueColumnVisibility`) ### Phase Gate Verification - Macro works with single import line - Column toggle persists after reload (uses localStorage)