You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Patch: Library search & imports filtering (v5.0.1 follow-up)
Imports
Title search now works: GET /api/stats accepts a search query param; get_confirmed_entries() filters with LOWER(title) LIKE (substring, case-insensitive). The UI sends importsSearch on refresh.
Imports · CF Score · Exclusions
Search box + clear: Replaced x-model.debounce + immediate @input refresh (stale value) with x-model + @input.debounce on refresh, matching Library History. Typing and clearing the field now match what the server returns.
Docs
CHANGELOG (v5.0.1), CONTRIBUTING (/api/stats params), and entries.py module notes updated.
No DB migrations; restart / redeploy to pick up changes.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ All notable changes to Nudgarr are documented here.
11
11
-**Library History:**`GET /api/state/items` now applies `type` (Cutoff Unmet, Backlog, CF Score) and `search` (case-insensitive title substring). `get_search_history()` in `db/history.py` implements filters; Cutoff Unmet matches DB values `Cutoff`, `Cutoff Unmet`, and empty legacy `sweep_type`. History title search uses immediate `x-model` with debounced refresh so the request uses the typed text.
12
12
-**CF Score table:** Column sort (`sort` / `dir`) and title `search` are applied in SQL; `total` for pagination is a filtered count via `count_cf_score_entries()`. **Instance filter** dropdown uses `app|normalised_url` (`cfKey` on each `allInstances` row) to match `arr_instance_id` in `cf_score_entries` (same format as `cf_score_syncer._make_instance_id`), fixing per-instance filter when not on “All Instances”.
13
13
-**Library Exclusions:** Sortable columns (title, search count, excluded date); **Unexclude** uses the green `.btn.ok` style; `unexcludeItem` refreshes the filtered paginated list.
14
-
-**Library Imports:** Turnaround column is sortable (uses numeric `turnaround_days`).
14
+
-**Library Imports:** Turnaround column is sortable (uses numeric `turnaround_days`). Title **`search`** query param wired through `GET /api/stats` to `get_confirmed_entries()`. Imports / CF Score / Exclusions title fields use immediate `x-model` with **`@input.debounce`** on refresh (not debounced `x-model` with immediate `@input`) so typing and clearing the search box match the data Nudgarr fetches.
15
15
-**Default panel:**`VALID_TABS` in `constants.py` includes v5 panels `library` and `pipelines` (and keeps legacy `history`, `imports`, `cf-scores`) so saving Advanced “Default Panel” validates correctly.
16
16
-**Docs:**`CONTRIBUTING.md` documents History/CF query params and `allInstances``key` vs `cfKey`.
17
17
-**Tests:**`tests/test_config_validation.py` asserts `library` and `pipelines` as valid `default_tab`; `tests/test_frontend_structure.py` raises the `app.js` line ceiling to match current file size.
0 commit comments