Operator: 'same with the delete button. and add' — i.e. Add / Delete
(and reorder) still full-reloaded. The generic data-tag-form
submit-EVENT interception is unreliable in the field; the explicit
click handlers (focus/drag) work. Root fix instead of patching each
button: one capture-phase CLICK handler (onTagFormClick) on every
submit control inside form[data-tag-form].
- onTagFormClick preventDefault()s so the native submit never starts
(no reload, no double-handling), runs the delete confirm via
data-confirm, routes reorder -> doReorder (in-place swap), everything
else (create/add, delete, attach/detach, apply/dismiss suggestion)
-> submitForm.
- Removed inline onclick="return confirm()" from shop_tags.j2 AND the
JS appendTagRow builder — it fought the interception; now data-confirm.
- submit listener kept only as the Enter-key fallback. Standalone
wireReorderButtons folded into onTagFormClick. Dead escapeJs removed.
- Tests: +test_ajax_delete_tag_returns_json,
+test_bulk_tagger_delete_uses_data_confirm_not_inline_onclick,
+test_ajax_reorder_arrow_returns_json_and_moves. 1131 passed.
Docs: mps-24.md Phase 2.8b.