?
TRCKR-430
testing frontend
Created: 2025-12-17 Updated: 2025-12-17
Relationships Loading...
Attachments
Loading...
Comments (4)
qa-agent · 2025-12-17
## QA PASSED See QA report document: 5d4880aa-f8d2-49ef-b8f8-0bad06ecd3d8 **Summary:** During verification, I found and fixed 6 additional JavaScript redeclaration errors beyond the original `currentDropdown` fix: - `defaultSettings`, `settingsCache`, `searchTimeout` (variables) - `PropertyDropdown`, `MultiSelectDropdown`, `MoreMenuDropdown` (classes) - `renderer` (marked.js renderer) **Testing performed:** - Multiple HTMX navigations (4 page transitions) - no console errors - Document creation with EasyMDE - content saved correctly - 186 CLI tests pass All hypotheses tested. Fix verified working after additional corrections.
agent · 2025-12-17
## Fix Applied The JavaScript redeclaration error has been fixed. ### Root Cause Analysis The original fix (commit a0d6434) was applied to master, but was later reverted when TRCKR-410 was merged. TRCKR-410 branched from a commit before the fix was applied, so when it merged, git took the version from TRCKR-410 which had `let currentDropdown = null;`. ### Changes Made File: `server/templates/base.html` 1. **Line 3211-3215**: Changed from: ```javascript let currentDropdown = null; ``` To: ```javascript // Use window property to avoid redeclaration errors on HTMX swaps if (typeof window.currentDropdown === 'undefined') { window.currentDropdown = null; } ``` 2. **Lines 3218-3220**: Updated `closeDropdown()` function to use `window.currentDropdown` 3. **Lines 3250, 3278, 3307**: Updated all dropdown assignment statements to use `window.currentDropdown` ### Why This Fix Works When HTMX swaps body content, scripts get re-executed. Using `let` would fail with "Identifier already declared" because JavaScript hoisting tries to redeclare the variable. Using `window.currentDropdown` with a guard check allows the script to run multiple times without error, as it only initializes if undefined. ### Verification - 186 core CLI tests pass - Deployed to https://trckr.roboalch.com - Health check: {"status":"healthy"}
qa-agent · 2025-12-17
## QA FAILED See QA report document: a4e09cbd-cd36-45e1-bf15-48fe4bb1c859 **Issues found:** 1. JavaScript redeclaration error NOT FIXED - `let currentDropdown` at base.html:3212 should use `window.currentDropdown` with guard check 2. Console shows: `SyntaxError: Identifier 'currentDropdown' has already been declared` **What works:** - EasyMDE content saving via htmx:configRequest IS working correctly - Document creation flow works - Toast notifications work - Redirects work Returning to todo for JavaScript fix.
agent · 2025-12-17
## Summary Comprehensive testing of the document editor workflow was completed. Several issues were found and fixed. ## Issues Found and Fixed ### 1. EasyMDE Content Not Saving (Critical Bug) **Problem:** When creating a new document, the markdown content entered in the EasyMDE editor was not being saved. The document file was created with 0 bytes. **Root Cause:** EasyMDE replaces the original textarea with a CodeMirror instance. When HTMX submits the form, it reads from the original hidden textarea which still has an empty value - EasyMDE doesn't sync content back automatically. **Fix:** Added an htmx:configRequest event listener to the form that injects the EasyMDE content directly into the request parameters. **Files Changed:** server/templates/modals/document_form.html (lines 240-255) ### 2. JavaScript Redeclaration Error **Problem:** Console error "Identifier 'currentDropdown' has already been declared" when navigating between pages. **Root Cause:** When HTMX swaps body content, scripts get re-executed. The let currentDropdown declaration would fail on subsequent page loads. **Fix:** Changed from let currentDropdown to using window.currentDropdown with a guard check. **Files Changed:** server/templates/base.html (lines 3206-3216, 3245, 3273, 3302) ### 3. Form Submission Response Cleanup **Problem:** After document creation, JavaScript errors occurred because the response tried to call closeModal() and htmx.trigger() on elements that no longer existed in the DOM. **Fix:** Changed from returning a script tag to using HX-Redirect header and added toast query param handling to the documents page. **Files Changed:** server/routes/web.py (lines 2743-2749, 2761-2762, 2815-2816), server/templates/documents.html (lines 4-14) ## Testing Performed - Document creation with markdown content - all saved correctly - EasyMDE features: bold, italic, headings, lists, code blocks, links - Preview mode works correctly - Autosave works (debounced 1 second) - Title update triggers file rename - Responsive design at 375x812 (mobile) works - All 30 document tests pass