refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.
Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)
Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
(dropped 3 stale entries, added the 17 missing ones)
Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
when it is empty
Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.
Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5b16bc6e15
commit
35bb96e82f
997 files changed
+28216
-28188
No files matched your search
@@ -288,27 +288,27 @@ function addTemplate(rootElement, document, id, child) {
|
||||
}
|
||||
|
||||
function makeCloseButton(document) {
|
||||
return makeElement(document, 'button', { type: 'button', 'data-aksrt-dialog-close': '' }, '关闭');
|
||||
return makeElement(document, 'button', { type: 'button', 'data-jio-dialog-close': '' }, '关闭');
|
||||
}
|
||||
|
||||
function makeDetailFrame(document, text = '<img src=x onerror=alert(1)>') {
|
||||
const form = makeElement(document, 'form', { method: 'post', class: 'aksrt-verify-dialog__frame', 'data-aksrt-verify-review': '' });
|
||||
const head = makeElement(document, 'header', { class: 'aksrt-verify-dialog__head' });
|
||||
head.appendChild(makeElement(document, 'h2', { id: 'aksrt-verify-dialog-title' }, '认证资料审核'));
|
||||
head.appendChild(makeElement(document, 'p', { id: 'aksrt-verify-dialog-description' }, '核对申请人与所提交的材料。'));
|
||||
const form = makeElement(document, 'form', { method: 'post', class: 'jio-verify-dialog__frame', 'data-jio-verify-review': '' });
|
||||
const head = makeElement(document, 'header', { class: 'jio-verify-dialog__head' });
|
||||
head.appendChild(makeElement(document, 'h2', { id: 'jio-verify-dialog-title' }, '认证资料审核'));
|
||||
head.appendChild(makeElement(document, 'p', { id: 'jio-verify-dialog-description' }, '核对申请人与所提交的材料。'));
|
||||
head.appendChild(makeCloseButton(document));
|
||||
form.appendChild(head);
|
||||
|
||||
const body = makeElement(document, 'div', { class: 'aksrt-verify-dialog__body' });
|
||||
body.appendChild(makeElement(document, 'div', { class: 'aksrt-verify-applicant' }, '申请人 17'));
|
||||
const meta = makeElement(document, 'dl', { class: 'aksrt-verify-meta' });
|
||||
const body = makeElement(document, 'div', { class: 'jio-verify-dialog__body' });
|
||||
body.appendChild(makeElement(document, 'div', { class: 'jio-verify-applicant' }, '申请人 17'));
|
||||
const meta = makeElement(document, 'dl', { class: 'jio-verify-meta' });
|
||||
meta.appendChild(makeElement(document, 'div', {}, '用户资料'));
|
||||
body.appendChild(meta);
|
||||
const section = makeElement(document, 'section', { class: 'aksrt-verify-section' });
|
||||
const section = makeElement(document, 'section', { class: 'jio-verify-section' });
|
||||
section.appendChild(makeElement(document, 'h3', {}, '申请说明'));
|
||||
section.appendChild(makeElement(document, 'div', { class: 'aksrt-verify-copy' }, text));
|
||||
section.appendChild(makeElement(document, 'div', { class: 'jio-verify-copy' }, text));
|
||||
body.appendChild(section);
|
||||
const evidence = makeElement(document, 'ul', { class: 'aksrt-verify-evidence' });
|
||||
const evidence = makeElement(document, 'ul', { class: 'jio-verify-evidence' });
|
||||
const evidenceItem = makeElement(document, 'li');
|
||||
const evidenceLink = makeElement(document, 'a', { href: 'https://example.test/evidence.jpg' });
|
||||
evidenceLink.appendChild(makeElement(document, 'img', { src: 'https://example.test/thumb.jpg', alt: '证件材料' }));
|
||||
@@ -317,8 +317,8 @@ function makeDetailFrame(document, text = '<img src=x onerror=alert(1)>') {
|
||||
evidence.appendChild(evidenceItem);
|
||||
body.appendChild(evidence);
|
||||
|
||||
const review = makeElement(document, 'section', { class: 'aksrt-verify-review' });
|
||||
const decisions = makeElement(document, 'fieldset', { class: 'aksrt-verify-decisions' });
|
||||
const review = makeElement(document, 'section', { class: 'jio-verify-review' });
|
||||
const decisions = makeElement(document, 'fieldset', { class: 'jio-verify-decisions' });
|
||||
decisions.appendChild(makeElement(document, 'legend', {}, '审核结果'));
|
||||
for (const [value, label] of [['verified', '通过'], ['rejected', '拒绝']]) {
|
||||
const choice = makeElement(document, 'label');
|
||||
@@ -329,12 +329,12 @@ function makeDetailFrame(document, text = '<img src=x onerror=alert(1)>') {
|
||||
}
|
||||
review.appendChild(decisions);
|
||||
|
||||
const profile = makeElement(document, 'fieldset', { class: 'aksrt-verify-profile', 'data-aksrt-verify-profile': '', hidden: '', disabled: '' });
|
||||
const nameField = makeElement(document, 'label', { class: 'aksrt-native-field' });
|
||||
const profile = makeElement(document, 'fieldset', { class: 'jio-verify-profile', 'data-jio-verify-profile': '', hidden: '', disabled: '' });
|
||||
const nameField = makeElement(document, 'label', { class: 'jio-native-field' });
|
||||
nameField.appendChild(makeElement(document, 'span', {}, '认证名称'));
|
||||
nameField.appendChild(makeElement(document, 'input', { type: 'text', name: 'name', maxlength: '64', required: '', value: 'Existing profile name', 'data-required-error': '请填写认证名称' }));
|
||||
profile.appendChild(nameField);
|
||||
const descriptionField = makeElement(document, 'label', { class: 'aksrt-native-field' });
|
||||
const descriptionField = makeElement(document, 'label', { class: 'jio-native-field' });
|
||||
descriptionField.appendChild(makeElement(document, 'span', {}, '认证说明'));
|
||||
const description = makeElement(document, 'textarea', { name: 'description' });
|
||||
description.value = 'Existing profile description';
|
||||
@@ -342,15 +342,15 @@ function makeDetailFrame(document, text = '<img src=x onerror=alert(1)>') {
|
||||
profile.appendChild(descriptionField);
|
||||
review.appendChild(profile);
|
||||
|
||||
const noteLabel = makeElement(document, 'label', { class: 'aksrt-native-field' });
|
||||
noteLabel.appendChild(makeElement(document, 'span', { 'data-aksrt-verify-note-label': '', 'data-optional': '处理留言(选填)', 'data-required': '拒绝原因(必填)' }, '处理留言(选填)'));
|
||||
const noteLabel = makeElement(document, 'label', { class: 'jio-native-field' });
|
||||
noteLabel.appendChild(makeElement(document, 'span', { 'data-jio-verify-note-label': '', 'data-optional': '处理留言(选填)', 'data-required': '拒绝原因(必填)' }, '处理留言(选填)'));
|
||||
noteLabel.appendChild(makeElement(document, 'textarea', { name: 'note', 'data-required-error': '请填写拒绝原因' }));
|
||||
review.appendChild(noteLabel);
|
||||
body.appendChild(review);
|
||||
form.appendChild(body);
|
||||
|
||||
const foot = makeElement(document, 'footer', { class: 'aksrt-verify-dialog__foot' });
|
||||
foot.appendChild(makeElement(document, 'button', { type: 'submit', class: 'button button-primary', 'data-aksrt-verify-submit': '', 'data-idle-label': '请选择审核结果', 'data-approve-label': '确认通过', 'data-reject-label': '确认拒绝', 'data-busy-label': '正在提交…', disabled: '' }, '请选择审核结果'));
|
||||
const foot = makeElement(document, 'footer', { class: 'jio-verify-dialog__foot' });
|
||||
foot.appendChild(makeElement(document, 'button', { type: 'submit', class: 'button button-primary', 'data-jio-verify-submit': '', 'data-idle-label': '请选择审核结果', 'data-approve-label': '确认通过', 'data-reject-label': '确认拒绝', 'data-busy-label': '正在提交…', disabled: '' }, '请选择审核结果'));
|
||||
form.appendChild(foot);
|
||||
|
||||
form.appendChild(makeElement(document, 'input', { type: 'hidden', name: '_wpnonce', value: 'nonce-17' }));
|
||||
@@ -360,17 +360,17 @@ function makeDetailFrame(document, text = '<img src=x onerror=alert(1)>') {
|
||||
}
|
||||
|
||||
function makeDeleteFrame(document) {
|
||||
const form = makeElement(document, 'form', { method: 'post', class: 'aksrt-verify-dialog__frame', 'data-aksrt-verify-delete-form': '' });
|
||||
const head = makeElement(document, 'header', { class: 'aksrt-verify-dialog__head' });
|
||||
head.appendChild(makeElement(document, 'h2', { id: 'aksrt-verify-dialog-title' }, '删除认证记录'));
|
||||
head.appendChild(makeElement(document, 'p', { id: 'aksrt-verify-dialog-description' }, '请确认后再继续。'));
|
||||
const form = makeElement(document, 'form', { method: 'post', class: 'jio-verify-dialog__frame', 'data-jio-verify-delete-form': '' });
|
||||
const head = makeElement(document, 'header', { class: 'jio-verify-dialog__head' });
|
||||
head.appendChild(makeElement(document, 'h2', { id: 'jio-verify-dialog-title' }, '删除认证记录'));
|
||||
head.appendChild(makeElement(document, 'p', { id: 'jio-verify-dialog-description' }, '请确认后再继续。'));
|
||||
head.appendChild(makeCloseButton(document));
|
||||
form.appendChild(head);
|
||||
const body = makeElement(document, 'div', { class: 'aksrt-verify-dialog__body' });
|
||||
body.appendChild(makeElement(document, 'div', { class: 'aksrt-native-callout is-danger' }, '删除不可撤销,只删除记录、材料与事件,不撤销已完成的认证。'));
|
||||
const body = makeElement(document, 'div', { class: 'jio-verify-dialog__body' });
|
||||
body.appendChild(makeElement(document, 'div', { class: 'jio-native-callout is-danger' }, '删除不可撤销,只删除记录、材料与事件,不撤销已完成的认证。'));
|
||||
form.appendChild(body);
|
||||
const foot = makeElement(document, 'footer', { class: 'aksrt-verify-dialog__foot' });
|
||||
foot.appendChild(makeElement(document, 'button', { type: 'submit', 'data-aksrt-verify-submit': '', 'data-idle-label': '确认删除', 'data-busy-label': '正在提交…' }, '确认删除'));
|
||||
const foot = makeElement(document, 'footer', { class: 'jio-verify-dialog__foot' });
|
||||
foot.appendChild(makeElement(document, 'button', { type: 'submit', 'data-jio-verify-submit': '', 'data-idle-label': '确认删除', 'data-busy-label': '正在提交…' }, '确认删除'));
|
||||
form.appendChild(foot);
|
||||
form.appendChild(makeElement(document, 'input', { type: 'hidden', name: '_wpnonce', value: 'delete-nonce-17' }));
|
||||
form.appendChild(makeElement(document, 'input', { type: 'hidden', name: 'application_uuid', value: 'delete-uuid-17' }));
|
||||
@@ -378,34 +378,34 @@ function makeDeleteFrame(document) {
|
||||
}
|
||||
|
||||
function makeReadonlyFrame(document) {
|
||||
const frame = makeElement(document, 'div', { class: 'aksrt-verify-dialog__frame' });
|
||||
const head = makeElement(document, 'header', { class: 'aksrt-verify-dialog__head' });
|
||||
head.appendChild(makeElement(document, 'h2', { id: 'aksrt-verify-dialog-title' }, '认证记录详情'));
|
||||
head.appendChild(makeElement(document, 'p', { id: 'aksrt-verify-dialog-description' }, '此记录仅供查看。'));
|
||||
const frame = makeElement(document, 'div', { class: 'jio-verify-dialog__frame' });
|
||||
const head = makeElement(document, 'header', { class: 'jio-verify-dialog__head' });
|
||||
head.appendChild(makeElement(document, 'h2', { id: 'jio-verify-dialog-title' }, '认证记录详情'));
|
||||
head.appendChild(makeElement(document, 'p', { id: 'jio-verify-dialog-description' }, '此记录仅供查看。'));
|
||||
head.appendChild(makeCloseButton(document));
|
||||
frame.appendChild(head);
|
||||
frame.appendChild(makeElement(document, 'div', { class: 'aksrt-verify-dialog__body' }, '只读内容'));
|
||||
frame.appendChild(makeElement(document, 'footer', { class: 'aksrt-verify-dialog__foot' }));
|
||||
frame.appendChild(makeElement(document, 'div', { class: 'jio-verify-dialog__body' }, '只读内容'));
|
||||
frame.appendChild(makeElement(document, 'footer', { class: 'jio-verify-dialog__foot' }));
|
||||
return frame;
|
||||
}
|
||||
|
||||
function setup() {
|
||||
const document = new FakeDocument();
|
||||
const rootElement = makeElement(document, 'main', { class: 'aksrt-verify-page' });
|
||||
const view17 = makeElement(document, 'button', { type: 'button', 'data-aksrt-verify-view': '17', 'aria-controls': 'aksrt-verify-dialog' }, '查看审核');
|
||||
const view18 = makeElement(document, 'button', { type: 'button', 'data-aksrt-verify-view': '18', 'aria-controls': 'aksrt-verify-dialog' }, '查看只读记录');
|
||||
const delete17 = makeElement(document, 'button', { type: 'button', 'data-aksrt-verify-delete': '17', 'aria-controls': 'aksrt-verify-dialog' }, '删除');
|
||||
const rootElement = makeElement(document, 'main', { class: 'jio-verify-page' });
|
||||
const view17 = makeElement(document, 'button', { type: 'button', 'data-jio-verify-view': '17', 'aria-controls': 'jio-verify-dialog' }, '查看审核');
|
||||
const view18 = makeElement(document, 'button', { type: 'button', 'data-jio-verify-view': '18', 'aria-controls': 'jio-verify-dialog' }, '查看只读记录');
|
||||
const delete17 = makeElement(document, 'button', { type: 'button', 'data-jio-verify-delete': '17', 'aria-controls': 'jio-verify-dialog' }, '删除');
|
||||
rootElement.appendChild(view17);
|
||||
rootElement.appendChild(view18);
|
||||
rootElement.appendChild(delete17);
|
||||
const detailTemplate = addTemplate(rootElement, document, 'aksrt-verify-detail-17', makeDetailFrame(document));
|
||||
const readonlyTemplate = addTemplate(rootElement, document, 'aksrt-verify-detail-18', makeReadonlyFrame(document));
|
||||
const deleteTemplate = addTemplate(rootElement, document, 'aksrt-verify-delete-17', makeDeleteFrame(document));
|
||||
const detailTemplate = addTemplate(rootElement, document, 'jio-verify-detail-17', makeDetailFrame(document));
|
||||
const readonlyTemplate = addTemplate(rootElement, document, 'jio-verify-detail-18', makeReadonlyFrame(document));
|
||||
const deleteTemplate = addTemplate(rootElement, document, 'jio-verify-delete-17', makeDeleteFrame(document));
|
||||
const dialog = makeElement(document, 'dialog', {
|
||||
id: 'aksrt-verify-dialog',
|
||||
class: 'aksrt-verify-dialog',
|
||||
'aria-labelledby': 'aksrt-verify-dialog-title',
|
||||
'aria-describedby': 'aksrt-verify-dialog-description',
|
||||
id: 'jio-verify-dialog',
|
||||
class: 'jio-verify-dialog',
|
||||
'aria-labelledby': 'jio-verify-dialog-title',
|
||||
'aria-describedby': 'jio-verify-dialog-description',
|
||||
});
|
||||
document.body.appendChild(rootElement);
|
||||
document.body.appendChild(dialog);
|
||||
@@ -434,12 +434,12 @@ function fire(element, type, options = {}) { return element.dispatchEvent(new Fa
|
||||
function reviewParts(form) {
|
||||
return {
|
||||
radios: form.querySelectorAll('input[name="status"]'),
|
||||
profile: form.querySelector('[data-aksrt-verify-profile]'),
|
||||
profile: form.querySelector('[data-jio-verify-profile]'),
|
||||
name: form.querySelector('input[name="name"]'),
|
||||
description: form.querySelector('textarea[name="description"]'),
|
||||
note: form.querySelector('textarea[name="note"]'),
|
||||
noteLabel: form.querySelector('[data-aksrt-verify-note-label]'),
|
||||
submit: form.querySelector('[data-aksrt-verify-submit]'),
|
||||
noteLabel: form.querySelector('[data-jio-verify-note-label]'),
|
||||
submit: form.querySelector('[data-jio-verify-submit]'),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -447,14 +447,14 @@ test('details and deletion clone only their own inert templates; no markup parsi
|
||||
const app = setup();
|
||||
assert.equal(app.dialog.children.length, 0, 'the shared dialog starts empty');
|
||||
|
||||
const sourceForm = app.detailTemplate.content.querySelector('form[data-aksrt-verify-review]');
|
||||
const sourceForm = app.detailTemplate.content.querySelector('form[data-jio-verify-review]');
|
||||
open(app.view17);
|
||||
const firstForm = app.dialog.querySelector('form[data-aksrt-verify-review]');
|
||||
const firstForm = app.dialog.querySelector('form[data-jio-verify-review]');
|
||||
assert.ok(firstForm);
|
||||
assert.notEqual(firstForm, sourceForm, 'dialog content is a deep clone, not the inert template node');
|
||||
assert.equal(app.dialog.querySelectorAll('script').length, 0);
|
||||
assert.match(app.dialog.querySelector('.aksrt-verify-copy').textContent, /<img src=x onerror=alert\(1\)>/);
|
||||
assert.equal(app.dialog.querySelector('.aksrt-verify-copy').querySelector('img'), null, 'untrusted copy stays text');
|
||||
assert.match(app.dialog.querySelector('.jio-verify-copy').textContent, /<img src=x onerror=alert\(1\)>/);
|
||||
assert.equal(app.dialog.querySelector('.jio-verify-copy').querySelector('img'), null, 'untrusted copy stays text');
|
||||
|
||||
const parts = reviewParts(firstForm);
|
||||
assert.equal(parts.name.value, 'Existing profile name', 'the clone keeps server-prefilled profile data');
|
||||
@@ -465,25 +465,25 @@ test('details and deletion clone only their own inert templates; no markup parsi
|
||||
assert.equal(parts.submit.textContent, '确认拒绝');
|
||||
assert.equal(sourceForm.querySelector('textarea[name="note"]').value, '', 'editing the clone does not mutate the template');
|
||||
|
||||
app.dialog.querySelector('[data-aksrt-dialog-close]').click();
|
||||
app.dialog.querySelector('[data-jio-dialog-close]').click();
|
||||
assert.equal(app.dialog.children.length, 0, 'closing removes every cloned node');
|
||||
assert.equal(app.document.activeElement, app.view17, 'close restores focus to the opener');
|
||||
open(app.view17);
|
||||
const secondForm = app.dialog.querySelector('form[data-aksrt-verify-review]');
|
||||
const secondForm = app.dialog.querySelector('form[data-jio-verify-review]');
|
||||
assert.notEqual(secondForm, firstForm, 'each open builds a fresh clone');
|
||||
assert.equal(reviewParts(secondForm).radios.some((radio) => radio.checked), false);
|
||||
assert.equal(reviewParts(secondForm).note.value, '', 'the previous note is not retained');
|
||||
assert.equal(reviewParts(secondForm).name.value, 'Existing profile name', 'fresh clones preserve server-provided profile defaults');
|
||||
|
||||
app.dialog.querySelector('[data-aksrt-dialog-close]').click();
|
||||
app.dialog.querySelector('[data-jio-dialog-close]').click();
|
||||
open(app.delete17);
|
||||
const deleteForm = app.dialog.querySelector('form[data-aksrt-verify-delete-form]');
|
||||
const sourceDeleteForm = app.deleteTemplate.content.querySelector('form[data-aksrt-verify-delete-form]');
|
||||
const deleteForm = app.dialog.querySelector('form[data-jio-verify-delete-form]');
|
||||
const sourceDeleteForm = app.deleteTemplate.content.querySelector('form[data-jio-verify-delete-form]');
|
||||
assert.ok(deleteForm);
|
||||
assert.notEqual(deleteForm, sourceDeleteForm, 'deletion actions also clone their own inert template');
|
||||
assert.equal(app.dialog.querySelector('form[data-aksrt-verify-review]'), null);
|
||||
assert.equal(app.dialog.querySelector('.aksrt-native-callout.is-danger').textContent.includes('不撤销已完成的认证'), true);
|
||||
assert.equal(app.dialog.querySelector('[data-aksrt-verify-submit]').textContent, '确认删除');
|
||||
assert.equal(app.dialog.querySelector('form[data-jio-verify-review]'), null);
|
||||
assert.equal(app.dialog.querySelector('.jio-native-callout.is-danger').textContent.includes('不撤销已完成的认证'), true);
|
||||
assert.equal(app.dialog.querySelector('[data-jio-verify-submit]').textContent, '确认删除');
|
||||
assert.equal(app.dialog.querySelectorAll('input[name="status"]').length, 0);
|
||||
});
|
||||
|
||||
@@ -515,7 +515,7 @@ test('cancel, Escape, and backdrop close the dialog; backdrop must begin and end
|
||||
test('review starts unselected and cannot submit before a decision', () => {
|
||||
const app = setup();
|
||||
open(app.view17);
|
||||
const form = app.dialog.querySelector('form[data-aksrt-verify-review]');
|
||||
const form = app.dialog.querySelector('form[data-jio-verify-review]');
|
||||
const parts = reviewParts(form);
|
||||
assert.equal(parts.radios.some((radio) => radio.checked), false);
|
||||
assert.equal(parts.submit.disabled, true);
|
||||
@@ -533,7 +533,7 @@ test('review starts unselected and cannot submit before a decision', () => {
|
||||
test('approve reveals and enables profile fields; trimmed name validation and successful hidden fields are preserved', () => {
|
||||
const app = setup();
|
||||
open(app.view17);
|
||||
const form = app.dialog.querySelector('form[data-aksrt-verify-review]');
|
||||
const form = app.dialog.querySelector('form[data-jio-verify-review]');
|
||||
const parts = reviewParts(form);
|
||||
parts.radios[0].checked = true;
|
||||
fire(parts.radios[0], 'change');
|
||||
@@ -587,7 +587,7 @@ test('approve reveals and enables profile fields; trimmed name validation and su
|
||||
test('reject hides profile fields, requires a trimmed reason, and applies danger action state', () => {
|
||||
const app = setup();
|
||||
open(app.view17);
|
||||
const form = app.dialog.querySelector('form[data-aksrt-verify-review]');
|
||||
const form = app.dialog.querySelector('form[data-jio-verify-review]');
|
||||
const parts = reviewParts(form);
|
||||
parts.radios[1].checked = true;
|
||||
fire(parts.radios[1], 'change');
|
||||
@@ -618,9 +618,9 @@ test('reject hides profile fields, requires a trimmed reason, and applies danger
|
||||
test('delete submits without confirm, blocks repeat/close while busy, and pageshow restores actions and scroll lock', () => {
|
||||
const app = setup();
|
||||
open(app.delete17);
|
||||
const form = app.dialog.querySelector('form[data-aksrt-verify-delete-form]');
|
||||
const submitButton = form.querySelector('[data-aksrt-verify-submit]');
|
||||
const closeButton = form.querySelector('[data-aksrt-dialog-close]');
|
||||
const form = app.dialog.querySelector('form[data-jio-verify-delete-form]');
|
||||
const submitButton = form.querySelector('[data-jio-verify-submit]');
|
||||
const closeButton = form.querySelector('[data-jio-dialog-close]');
|
||||
const first = submit(form);
|
||||
assert.equal(first.defaultPrevented, false);
|
||||
assert.equal(form.dataset.submitting, '1');
|
||||
@@ -631,7 +631,7 @@ test('delete submits without confirm, blocks repeat/close while busy, and pagesh
|
||||
assert.equal(form.querySelector('[name="application_uuid"]').value, 'delete-uuid-17');
|
||||
assert.equal(form.querySelector('[name="_wpnonce"]').disabled, false);
|
||||
assert.equal(form.querySelector('[name="application_uuid"]').disabled, false);
|
||||
assert.equal(app.document.documentElement.classList.contains('aksrt-verify-modal-open'), true);
|
||||
assert.equal(app.document.documentElement.classList.contains('jio-verify-modal-open'), true);
|
||||
|
||||
assert.equal(submit(form).defaultPrevented, true, 'duplicate delete submission is blocked');
|
||||
const escape = new FakeEvent('keydown', { key: 'Escape', bubbles: false });
|
||||
@@ -654,21 +654,21 @@ test('delete submits without confirm, blocks repeat/close while busy, and pagesh
|
||||
assert.equal(closeButton.disabled, false);
|
||||
assert.equal(submitButton.textContent, '确认删除');
|
||||
assert.equal(app.dialog.open, true);
|
||||
assert.equal(app.document.documentElement.classList.contains('aksrt-verify-modal-open'), true, 'an open dialog retains the scroll lock');
|
||||
assert.equal(app.document.documentElement.classList.contains('jio-verify-modal-open'), true, 'an open dialog retains the scroll lock');
|
||||
|
||||
app.dialog.querySelector('[data-aksrt-dialog-close]').click();
|
||||
assert.equal(app.document.documentElement.classList.contains('aksrt-verify-modal-open'), false);
|
||||
app.dialog.querySelector('[data-jio-dialog-close]').click();
|
||||
assert.equal(app.document.documentElement.classList.contains('jio-verify-modal-open'), false);
|
||||
app.window.dispatchEvent(new FakeEvent('pageshow'));
|
||||
assert.equal(app.document.documentElement.classList.contains('aksrt-verify-modal-open'), false, 'closed pageshow state is unlocked');
|
||||
assert.equal(app.document.documentElement.classList.contains('jio-verify-modal-open'), false, 'closed pageshow state is unlocked');
|
||||
});
|
||||
|
||||
test('read-only detail has no review submit behavior', () => {
|
||||
const app = setup();
|
||||
open(app.view18);
|
||||
assert.ok(app.dialog.querySelector('.aksrt-verify-dialog__frame'));
|
||||
assert.ok(app.dialog.querySelector('.jio-verify-dialog__frame'));
|
||||
assert.equal(app.dialog.querySelector('form'), null);
|
||||
assert.equal(app.dialog.querySelector('[data-aksrt-verify-submit]'), null);
|
||||
assert.equal(app.dialog.querySelector('[data-jio-verify-submit]'), null);
|
||||
assert.match(app.dialog.textContent, /此记录仅供查看/);
|
||||
app.dialog.querySelector('[data-aksrt-dialog-close]').click();
|
||||
app.dialog.querySelector('[data-jio-dialog-close]').click();
|
||||
assert.equal(app.dialog.children.length, 0);
|
||||
});
|
||||
Reference in new issue
Block a user