Compare commits
2 changed files with 8 additions and 17 deletions
|
|
@ -77,12 +77,10 @@ the history row shape).
|
||||||
**M1ND H4S QU3STI0NS** — pending `ask` calls waiting on the
|
**M1ND H4S QU3STI0NS** — pending `ask` calls waiting on the
|
||||||
operator, with amber pulsing border. Anatomy of each card:
|
operator, with amber pulsing border. Anatomy of each card:
|
||||||
|
|
||||||
- **Filter chips** — `all · N`, `@operator · N`, `@peer · N`,
|
- **Filter chips** — `all · N`, `@operator`, `@peer`, plus one
|
||||||
plus one chip per participant name (`@asker · N` / `@target · N`).
|
chip per participant name (`@asker` / `@target`). Clicking a
|
||||||
Every chip shows its own count so the operator can see the
|
chip narrows the visible list; selection persists in
|
||||||
distribution at a glance. Clicking a chip narrows the visible
|
localStorage so a tab switch doesn't lose the filter.
|
||||||
list; selection persists in localStorage so a tab switch doesn't
|
|
||||||
lose the filter.
|
|
||||||
- **Question card** — timestamp · asker → target · body text
|
- **Question card** — timestamp · asker → target · body text
|
||||||
(with file-path links). Operator-targeted questions (`target =
|
(with file-path links). Operator-targeted questions (`target =
|
||||||
null`) show `▸ ANSW3R`; peer-targeted questions (`target =
|
null`) show `▸ ANSW3R`; peer-targeted questions (`target =
|
||||||
|
|
|
||||||
|
|
@ -1863,20 +1863,13 @@ window.marked = marked;
|
||||||
b.addEventListener('click', () => setQuestionsFilter(value));
|
b.addEventListener('click', () => setQuestionsFilter(value));
|
||||||
return b;
|
return b;
|
||||||
};
|
};
|
||||||
// Count pending questions per filter value so each chip shows its
|
|
||||||
// own hit count — the operator can see "operator · 2 / peer · 3"
|
|
||||||
// at a glance without clicking through each tab.
|
|
||||||
const operatorCount = allPending.filter((q) => !q.target).length;
|
|
||||||
const peerCount = allPending.filter((q) => !!q.target).length;
|
|
||||||
const agentCount = (name) => allPending.filter(
|
|
||||||
(q) => q.asker === name || q.target === name).length;
|
|
||||||
filterRow.append(
|
filterRow.append(
|
||||||
mkChip('all', `all · ${allPending.length}`),
|
mkChip('all', `all · ${allPending.length}`),
|
||||||
mkChip('operator', `@operator · ${operatorCount}`),
|
mkChip('operator', '@operator'),
|
||||||
mkChip('peer', `@peer · ${peerCount}`),
|
mkChip('peer', '@peer'),
|
||||||
);
|
);
|
||||||
for (const name of Array.from(participants).sort()) {
|
for (const name of Array.from(participants).sort()) {
|
||||||
filterRow.append(mkChip('agent:' + name, `@${name} · ${agentCount(name)}`));
|
filterRow.append(mkChip('agent:' + name, '@' + name));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Evict resolved/cancelled questions from the row cache.
|
// Evict resolved/cancelled questions from the row cache.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue