/** * 消息管理后台页(users.php?page=aksrt_messages)的「发送系统消息」弹窗。 * - 页头按钮 [data-aksrt-dialog-open] 打开对应 ; * - 关闭按钮 / 点击遮罩关闭;发送失败回跳时(data-aksrt-dialog-autoopen)自动打开; * - 提交后禁用发送按钮防重复提交。 * 标记由 src/Admin/Native/UsersMenusMessages.php 与 NativeUi::button_dialog() 输出。 */ (function () { 'use strict'; document.querySelectorAll('[data-aksrt-dialog-open]').forEach(function (button) { var dialog = document.getElementById(button.getAttribute('data-aksrt-dialog-open')); if (!dialog || typeof dialog.showModal !== 'function') { button.hidden = true; return; } var form = dialog.querySelector('form'); var submit = dialog.querySelector('[data-aksrt-dialog-submit]'); function open() { if (submit) submit.disabled = false; dialog.showModal(); var first = dialog.querySelector('textarea:not([disabled]), input:not([type="hidden"]):not([type="radio"])'); if (first) first.focus(); } button.addEventListener('click', open); dialog.querySelectorAll('[data-aksrt-dialog-close]').forEach(function (close) { close.addEventListener('click', function () { dialog.close(); }); }); // 点击遮罩(dialog 自身而非内容区)关闭。 dialog.addEventListener('click', function (event) { if (event.target === dialog) dialog.close(); }); if (form && submit) { form.addEventListener('submit', function () { submit.disabled = true; }); } if (dialog.hasAttribute('data-aksrt-dialog-autoopen')) open(); }); })();