mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-14 04:02:26 +00:00
fix(kanban): filter dashboard board by selected tenant
This commit is contained in:
parent
f4de3810ef
commit
162ad3dd16
2 changed files with 19 additions and 1 deletions
3
plugins/kanban/dashboard/dist/index.js
vendored
3
plugins/kanban/dashboard/dist/index.js
vendored
|
|
@ -511,6 +511,7 @@
|
||||||
if (!boardData) return null;
|
if (!boardData) return null;
|
||||||
const q = search.trim().toLowerCase();
|
const q = search.trim().toLowerCase();
|
||||||
const filterTask = function (t) {
|
const filterTask = function (t) {
|
||||||
|
if (tenantFilter && t.tenant !== tenantFilter) return false;
|
||||||
if (assigneeFilter && t.assignee !== assigneeFilter) return false;
|
if (assigneeFilter && t.assignee !== assigneeFilter) return false;
|
||||||
if (q) {
|
if (q) {
|
||||||
const hay = `${t.id} ${t.title || ""} ${t.assignee || ""} ${t.tenant || ""}`.toLowerCase();
|
const hay = `${t.id} ${t.title || ""} ${t.assignee || ""} ${t.tenant || ""}`.toLowerCase();
|
||||||
|
|
@ -523,7 +524,7 @@
|
||||||
return Object.assign({}, col, { tasks: col.tasks.filter(filterTask) });
|
return Object.assign({}, col, { tasks: col.tasks.filter(filterTask) });
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}, [boardData, assigneeFilter, search]);
|
}, [boardData, tenantFilter, assigneeFilter, search]);
|
||||||
|
|
||||||
// --- actions ------------------------------------------------------------
|
// --- actions ------------------------------------------------------------
|
||||||
const moveTask = useCallback(function (taskId, newStatus) {
|
const moveTask = useCallback(function (taskId, newStatus) {
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,23 @@ def test_dashboard_select_filters_use_sdk_value_change_handler():
|
||||||
assert "selectChangeHandler(props.setAssigneeFilter)" in js
|
assert "selectChangeHandler(props.setAssigneeFilter)" in js
|
||||||
|
|
||||||
|
|
||||||
|
def test_dashboard_client_side_filtering_includes_tenant_filter():
|
||||||
|
"""The rendered board must also filter by tenant.
|
||||||
|
|
||||||
|
The API request includes ``?tenant=...``, but the dashboard also filters the
|
||||||
|
locally cached board for search/assignee changes. Without checking
|
||||||
|
``tenantFilter`` here, switching tenants can leave stale cards visible until a
|
||||||
|
full reload finishes.
|
||||||
|
"""
|
||||||
|
|
||||||
|
repo_root = Path(__file__).resolve().parents[2]
|
||||||
|
bundle = repo_root / "plugins" / "kanban" / "dashboard" / "dist" / "index.js"
|
||||||
|
js = bundle.read_text()
|
||||||
|
|
||||||
|
assert "if (tenantFilter && t.tenant !== tenantFilter) return false;" in js
|
||||||
|
assert "[boardData, tenantFilter, assigneeFilter, search]" in js
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# GET /tasks/:id returns body + comments + events + links
|
# GET /tasks/:id returns body + comments + events + links
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue