fix(admin): expand the ticket process form inline without duplicating the row

Restore the reference-theme direction: processing happens inline in the
filtered list, not on a separate page. The actual defect was the same
ticket being rendered twice (list row + form) while the bare <form><table>
inside <tbody> got foster-parented by the browser, displacing the extra
row info below the submit button. Now the processing ticket renders only
as the form, wrapped in a valid <tr><td colspan=6>, and every other row
renders normally.
This commit is contained in:
2026-09-20 15:23:08 +08:00
parent 09cff17d72
commit 0a958644b8
2 changed files with 18 additions and 27 deletions
@@ -179,10 +179,11 @@ test('native ban page mirrors the reference theme layout', () => {
assert.match(tickets, /name="action" value="' \. esc_attr\(\$kind === 'report' \? 'aksrt_users_update_report' : 'aksrt_users_process_appeal'\)/)
assert.match(usersMenus, /admin_post_aksrt_users_update_report/)
assert.match(usersMenus, /admin_post_aksrt_users_process_appeal/)
// 独立处理视图:action=process 时只渲染目标工单的处理表单(提前 return),
// 列表循环不得再注入表单——无效 <tr> 嵌套曾把工单列表挤到“确认提交”下方。
assert.match(tickets, /if \(\$process_action === 'process'\) \{[\s\S]*?render_ticket_process_form\(\$processing, \$action_url\)[\s\S]*?return;/)
assert.doesNotMatch(tickets, /foreach \(\$tickets as \$row\) \{\s*\$this->render_ticket_row[\s\S]{0,400}?render_ticket_process_form/)
// 内联处理视图(参考主题方向):被处理工单以 colspan=6 合法单元格展开
// 表单,且不再渲染其列表行——此前 row + 表单重复展示同一工单信息,
// 表单裸嵌 tbody 被 foster-parent 后多余行信息错位到“确认提交”下方。
assert.match(tickets, /<tr><td colspan="6">';\s*\$this->render_ticket_process_form/)
assert.match(tickets, /if \(\$is_processing\) \{[\s\S]*?render_ticket_process_form\(\$row, \$action_url\)[\s\S]*?\} else \{\s*\$this->render_ticket_row/)
// 分页对齐参考主题 zibpay_admin_pagenavi(每页 20 条)
assert.match(tickets, /TICKETS_PER_PAGE = 20/)