feat: drawer witness flag inline-edit (T72.3)
Memories grow per-flag witness checkboxes (you / host / guest) that
auto-submit on change via HTMX. The new POST route emits a manual_edit
event with target_kind=memory_witness and a {flag, value} payload;
prior_value mirrors the same shape so an inverse edit restores the
flag. The drawer's recent-memories query now selects the three
witness columns alongside the existing fields so the template can
render checkbox state without a second query per row.
This commit is contained in:
@@ -347,6 +347,23 @@
|
||||
<input type="hidden" name="pinned" value="{{ 0 if m.pinned else 1 }}">
|
||||
<button type="submit">{{ 'Unpin' if m.pinned else 'Pin' }}</button>
|
||||
</form>
|
||||
<div class="witness-row">
|
||||
{% for flag in ['you', 'host', 'guest'] %}
|
||||
{% set witnessed = m['witness_' ~ flag] %}
|
||||
<form class="inline-edit"
|
||||
hx-post="/chats/{{ chat.id }}/drawer/memory/witness"
|
||||
hx-target="#drawer" hx-swap="innerHTML">
|
||||
<input type="hidden" name="memory_id" value="{{ m.id }}">
|
||||
<input type="hidden" name="flag" value="{{ flag }}">
|
||||
<input type="hidden" name="new_value" value="{{ 0 if witnessed else 1 }}">
|
||||
<label>
|
||||
<input type="checkbox" {% if witnessed %}checked{% endif %}
|
||||
onchange="this.form.requestSubmit()">
|
||||
{{ flag }}
|
||||
</label>
|
||||
</form>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<details>
|
||||
<summary>Edit POV summary</summary>
|
||||
<form class="inline-edit"
|
||||
|
||||
Reference in New Issue
Block a user