←
TRCKR-485
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)