Skip to content

History / Ticket Folder Pane

Revisions

  • The folder said 99 and the list showed 96: bug write-up, and the pages it makes stale Ed asked for the counts-vs-list gap fixed rather than caveated, so the two folder pane pages no longer describe a live bug and the fix gets its own write-up. Folder-Counts-Did-Not-Match-The-List.md - a Bugs-Resolved page, following the house structure: what you saw, what was actually wrong, how it was fixed, the files, and how it was proved. There was no issue number because it was found while building #73, so it is credited that way - the same treatment the Watchtower row already uses. The write-up carries three things worth keeping: - it was TWO unrelated faults adding to one symptom, and each was about half the gap. Merged-away tickets were still counted; and the list was built starting from email messages, so a ticket with no email was counted everywhere, listed nowhere and openable by no route at all. - the list excluded merged tickets only BY ACCIDENT - a merge moves the emails and the list was built from emails. A behaviour that is right by accident holds only until somebody changes what it was accidentally relying on. - the regression it nearly shipped with: giving the ticket-opening query one join that restricts to the initial email is right for a ticket-id lookup and wrong for an email-id one, which carries the latest message. It would have fixed three tickets and broken opening every ticket ever replied to. When a fix changes a shared query, test the case it was ALREADY handling. Ticket-Folder-Pane.md - the warning is replaced by what is now true, plus two new bullets (merged tickets are not counted; a ticket with no email still shows). Ticket-Folder-Pane-Developer-Guide.md - section 8 rewritten from "known bug" to the fix and the four details that travel with the inversion; the $ttSql snippet in section 2 now shows the merged exclusion; sample numbers updated to post-fix. Bugs-Resolved gains a row, the sidebar an entry. Every link and every named source file verified.

    @edmozley edmozley committed Aug 20, 2026
  • The ticket folder pane: user page and developer guide Two pages for the left-hand panel of the inbox, prompted by GH #73. Ticket-Folder-Pane.md - the user page. The grouping toggle, what expands and what the counts mean, all four fixed folders, and a full table of what dragging onto each kind of row actually changes. The section worth having is Unassigned: it means "no department" when grouped by department and "nobody working on it" when grouped by analyst, which are genuinely different sets (62 vs 54 on a real install), so the numbers change when you flip the toggle and that surprises people. Also states the known counts-vs-list discrepancy plainly rather than letting somebody discover it and assume the counts are broken. Ticket-Folder-Pane-Developer-Guide.md - not just the SQL, per Ed's ask: - the single counts request, and the rule that every breakdown reuses the WHERE clause of the total it sits under - which is what makes children sum to parents instead of drifting apart; - `currentFilter` as the one object driving the pane, the four places a new view has to be wired into, and why updateActiveFolderClasses() exists at all (re-rendering to move a highlight kills the CSS grid-row transition); - toggleFolder() and the three different ways a folder is identified - All Tickets and Unassigned have no id, so `${kind}_${id}` yields 'dept_undefined' and silently expands nothing; - the grouping toggle: a pure re-render with no round trip, because both structures are always sent, plus the per-analyst preference; - the loadEmails() race and the token that fixes it, including how it was found - an intermittent test failure I had already dismissed once as a flaky harness; - the drag-and-drop payload table and the principle behind it: a drop must mean exactly what the row means and no more, which is why a status under All Tickets sets the status alone; - the counts-vs-list bug with a repro query and why it is its own job; - how to test it, since there is no PHP suite: drive the real page, assert against the API rather than the folder count, and always ship a negative control. Sidebar updated under Tickets. Every internal link and every named source file verified to resolve.

    @edmozley edmozley committed Aug 20, 2026