Commit Graph
16818 Commits
Author SHA1 Message Date
kolaente 98015f0d5f test(filters): cover picking and removing an assignee in simple mode 2026-11-07 18:12:31 +01:00
kolaente c389c1027c test(filters): update unknown label remove selector
EditLabels names its remove button differently.
2026-11-07 18:12:31 +01:00
kolaente d9fc028ad2 refactor(filters): use FormField for filter search input
Reuse the shared form field instead of hand-built label and input.
2026-11-07 18:12:31 +01:00
kolaente 6f848f2570 refactor(filters): reuse ProjectSearch for simple filter projects
Address review comment: reuse the existing project select, extended with multiple selection.
2026-11-07 18:12:31 +01:00
kolaente 0db2651a29 refactor(filters): reuse EditAssignees in simple filter form
Address review comment: reuse the existing assignee search. EditAssignees works without a task like EditLabels and falls back to global user search without a project.
2026-11-07 18:12:31 +01:00
kolaente 271e3c288f refactor(filters): reuse EditLabels in simple filter form
Address review comment: reuse the existing label select instead of a new one.
2026-11-07 18:12:31 +01:00
kolaente 6f4d39ec10 fix(filters): style simple filter date clear as icon button beside picker
Address review comment: clear button needs a different style than the date button and sits to its right.
2026-11-07 18:12:31 +01:00
kolaente 912c5e296d test(filters): open default my open tasks filter in simple mode
Pins that opening does not rewrite the stored filter text.
2026-11-07 18:12:31 +01:00
kolaente d7f5f64a36 test(filters): cover equivalent simple filter syntax 2026-11-07 18:12:31 +01:00
kolaente a8097a3e65 fix(filters): open equivalent = and project_id queries in simple mode
The default My Open Tasks filter uses assignees = <username>, which Simple rejected. Single-value = for labels, assignees and project and the project_id alias behave identically in the backend, so they are normalised before the canonical check.
2026-11-07 18:12:31 +01:00
kolaente e663262886 test(filters): cover unticking overdue after typing now as the end 2026-11-07 18:12:31 +01:00
kolaente 837d5b257b fix(filters): drop due filter when unticking overdue with to set to now
Typing now as the end with overdue on means overdue only; unticking it produced an empty due_date > now && due_date < now range.
2026-11-07 18:12:31 +01:00
kolaente 333759e9a6 test(filters): cover overdue until label and unticking overdue
Pin the relabelled picker and the range kept when unticking overdue.
2026-11-07 18:12:31 +01:00
kolaente 59ada5f447 fix(filters): show until date when overdue tasks are included
Address review decision: relabel the picker instead of showing a From date the overdue query ignores. Unticking overdue without a known From now keeps the range from now on.
2026-11-07 18:12:31 +01:00
kolaente 26f96c785c refactor(filters): model simple due filter as a discriminated union
Address review decision: make invalid due states (ignored from, empty from) unrepresentable.
2026-11-07 18:12:31 +01:00
kolaente 3212eb9628 test(filters): extract openFilters helper in simple filter spec
Address pr-swarm finding: popup-open click repeated four times.
2026-11-07 18:12:31 +01:00
kolaente 4d27d911a7 test(filters): cover saving search text with enter on saved filters
Address pr-swarm finding: the Enter fix had no test.
2026-11-07 18:12:31 +01:00
kolaente 3af50f4997 test(filters): start search clearing test from a searched url
Address pr-swarm finding: the first half repeated project-view-list coverage.
2026-11-07 18:12:31 +01:00
kolaente c25ce5d6ac test(filters): pin that closing the popup does not apply advanced queries
Address pr-swarm finding: the URL check passed instantly after fill and the rest duplicated filter-persistence coverage.
2026-11-07 18:12:31 +01:00
kolaente 97d3aceb7c test(filters): cover advanced popup apply, search clearing and typing
Address pr-swarm finding: round-1 behaviour changes had no regression tests.
2026-11-07 18:12:31 +01:00
kolaente 40a98b0c7f fix(views): name bucket filter editors after their bucket
Address pr-swarm finding: view and bucket filter tablists all shared one name.
2026-11-07 18:12:31 +01:00
kolaente 1ba2404409 test(filters): keep one rejection row per simple filter parse path
Address pr-swarm finding: rows still shared parse branches.
2026-11-07 18:12:31 +01:00
kolaente 1c69ff12f0 fix(filters): keep backslash usernames out of simple filter queries
Address pr-swarm finding: the backend treats a backslash as an escape, breaking the whole filter.
2026-11-07 18:12:31 +01:00
kolaente c662310265 refactor(filters): validate date math with parseDateMath
Address pr-swarm finding: the local regex rejected valid units like now/Q.
2026-11-07 18:12:31 +01:00
kolaente d0776e1047 fix(filters): parse picker dates with createDateFromString
Address pr-swarm finding: Safari can't parse YYYY-MM-DD HH:mm with new Date().
2026-11-07 18:12:31 +01:00
kolaente c4805251f2 refactor(filters): normalise pseudo project ids once in filter editor
Address pr-swarm finding: the positive project id check was duplicated in Filters and ViewEditForm.
2026-11-07 18:12:31 +01:00
kolaente e3a8e28477 fix(filters): apply search text on enter
Address pr-swarm finding: Enter submitted the saved filter form before the search blur fired.
2026-11-07 18:12:31 +01:00
kolaente 039849ab8e refactor(filters): drop unused blur branch from filter change
Address pr-swarm finding: nothing emits blur anymore.
2026-11-07 18:12:31 +01:00
kolaente 8d327656e6 fix(filters): keep advanced input text while typing on saved filter pages
Address pr-swarm finding: moving search out of the advanced input reset the editor on every keystroke when plain text was redirected to s. The advanced input owns filter and search again; advanced edits clear s.
2026-11-07 18:12:31 +01:00
kolaente 879cea3da4 test(filters): move imports above beforeEach in autocomplete spec
Address pr-swarm finding: beforeEach sat between imports.
2026-11-07 18:12:31 +01:00
kolaente 7e410f223b test(filters): reuse shared LabelFactory in simple filter spec
Address pr-swarm finding: local LabelFactory duplicated tests/factories/labels.ts.
2026-11-07 18:12:31 +01:00
kolaente 24bd545838 fix(multiselect): stop animating input width on first selection
Address pr-swarm finding: the width transition wrapped the input mid-animation and made the filter popup jump.
2026-11-07 18:12:31 +01:00
kolaente d25caaa2a2 refactor(filters): reuse realProjects in project filter select
Address pr-swarm finding: project select rebuilt realProjects by hand.
2026-11-07 18:12:31 +01:00
kolaente 1efc13ff95 fix(views): pass only real project ids to view filter editor
Address pr-swarm finding: negative saved-filter project id hid the project select and broke assignee search.
2026-11-07 18:12:31 +01:00
kolaente b8b6cd1947 fix(views): drop stale search text when saving view filter
Address pr-swarm finding: view saved with invisible s alongside a new filter.
2026-11-07 18:12:31 +01:00
kolaente 8895940669 fix(views): give view and bucket filter editors distinct names
Address pr-swarm finding: orphaned label for=filter and identical tablist names.
2026-11-07 18:12:31 +01:00
kolaente 6a79bf6d79 fix(filters): keep focus after clearing to simple mode
Address pr-swarm finding: focus fell to body after Clear and use Simple.
2026-11-07 18:12:31 +01:00
kolaente 0de9fbe3f0 fix(filters): show search field in both filter modes
Address pr-swarm finding: search text could not be seen or cleared from Advanced mode.
2026-11-07 18:12:31 +01:00
kolaente adbce0ce7c fix(filters): apply advanced popup queries only on show results
Address pr-swarm finding: focusout applied half-typed queries, e.g. when clicking an autocomplete suggestion.
2026-11-07 18:12:31 +01:00
kolaente 2b7e84367c fix(filters): associate simple filter field labels with their controls
Address pr-swarm finding: field titles were bare divs not tied to controls.
2026-11-07 18:12:31 +01:00
kolaente c95458836e fix(filters): show stored custom due range in picker format
Address pr-swarm finding: custom range showed raw UTC ISO after remount.
2026-11-07 18:12:30 +01:00
kolaente b058df69c1 refactor(filters): reuse setDates for clearing the simple due date
Address pr-swarm finding: inline clear handler duplicated setDates.
2026-11-07 18:12:30 +01:00
kolaente 0e92536b51 refactor(filters): check date math directly in simple filter form
Address pr-swarm finding: serializeDate ran the full parser on a fake clause.
2026-11-07 18:12:30 +01:00
kolaente de05777735 refactor(filters): share empty simple filter and simplify editor mode init
Address pr-swarm finding: initialized flag, unreachable fallback and repeated fromQuery('')!.
2026-11-07 18:12:30 +01:00
kolaente 40925ef94a test(filters): keep one rejection case per simple filter parse branch
Address pr-swarm finding: rejection list permutation sprawl.
2026-11-07 18:12:30 +01:00
kolaente 19027e9d63 refactor(filters): drop fromQuery guards covered by canonical check
Address pr-swarm finding: redundant guards in fromQuery.
2026-11-07 18:12:30 +01:00
kolaente c2244d1f44 fix(filters): keep unsafe assignee names out of simple filter queries
Address pr-swarm finding: the backend filter preprocessing ignores quotes, so JSON-quoted usernames containing &|() could inject extra clauses.
2026-11-07 18:12:30 +01:00
kolaente ec70eab77f test(views): drop ViewEditForm label-loading tests that only exercise mocks
Address pr-swarm finding: ViewEditForm no longer uses useLabels/useProjects.
2026-11-07 18:12:30 +01:00
kolaente 713955b08f test(filters): drop FilterEditor unit tests duplicated by e2e
Address pr-swarm finding: FilterEditor.test.ts repeats simple-filter.spec.ts coverage.
2026-11-07 18:12:30 +01:00
kolaente fb3e20c9f0 test(filters): select advanced mode in filtered search regression 2026-11-07 18:12:30 +01:00