-
🚀 feat: add enabled/disabled channel filtering & optimize type-based pagination (#1289) · 13fd901dWHAT’S NEW • Backend – Introduced `parseStatusFilter` helper to normalize `status` query across handlers. – `GET /api/channel` & `GET /api/channel/search` now accept `status=enabled|disabled` to return only enabled or disabled channels. – Tag-mode branch respects both `statusFilter` and `typeFilter`; SQL paths trimmed to one query + one lightweight `GROUP BY` for `type_counts`. • Frontend (`ChannelsTable.js`) – Added “Status Filter” `<Select>` (All / Enabled / Disabled) with localStorage persistence. – All data-loading and search requests now always append `type` (when not “all”) and `status` params, so filtering & pagination are handled entirely server-side. – Removed client-side post-filtering for type, preventing short pages and reducing CPU work. – Tabs’ type counts stay in sync via backend-provided `type_counts`. IMPROVEMENTS • Eliminated duplicated status-parsing logic; single source of truth eases future extension. • Reduced redundant queries, improved consistency of counts in UI. • Secured key leakage with `Omit("key")` unchanged; no perf regressions observed. Closes #1289t0ng7u committed