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>
111 lines
3.1 KiB
JavaScript
111 lines
3.1 KiB
JavaScript
import { createRouter, createWebHashHistory } from 'vue-router'
|
|
import { getAdminSections, getAllAdminPages } from '@/constants/admin-sections'
|
|
import { componentLoaders } from './component-loaders/index.js'
|
|
|
|
const ADMIN_DEFAULT_ROUTE = '/global/common'
|
|
|
|
function resolveComponent(page) {
|
|
if (componentLoaders[page.component]) {
|
|
return componentLoaders[page.component]
|
|
}
|
|
|
|
// Log missing component for debugging — avoids silent fallback to DeferredPage
|
|
if (page.component && page.component !== 'DeferredPage') {
|
|
console.warn(
|
|
`[Jio Route] Component "${page.component}" not found in componentLoaders for route "${page.route}". Falling back to DeferredPage.`
|
|
)
|
|
}
|
|
|
|
return componentLoaders.DeferredPage
|
|
}
|
|
|
|
function createRouteMeta(page) {
|
|
const meta = {
|
|
title: page.title,
|
|
section: page.sectionKey || '',
|
|
desc: page.desc || '',
|
|
status: page.status || 'available',
|
|
secondaryEntry: page.secondaryEntry === true,
|
|
}
|
|
|
|
if (page.compatSourceSection) {
|
|
meta.compatSourceSection = page.compatSourceSection
|
|
}
|
|
|
|
if (page.canonicalDomain) {
|
|
meta.canonicalDomain = page.canonicalDomain
|
|
}
|
|
|
|
if (page.section) {
|
|
meta.section = page.section
|
|
}
|
|
|
|
if (page.component === 'DeferredPage') {
|
|
meta.deferred = true
|
|
meta.deferredProps = {
|
|
title: page.title,
|
|
description: page.desc || '',
|
|
icon: page.iconClass || 'fa fas fa-compass',
|
|
phase: page.phase || '',
|
|
status: page.status || 'deferred',
|
|
dependsOn: page.dependsOn || [],
|
|
reason: page.reason || '',
|
|
features: page.features || [],
|
|
}
|
|
}
|
|
|
|
return meta
|
|
}
|
|
|
|
function createSectionRedirectRoutes() {
|
|
const seenPaths = new Set(['/'])
|
|
|
|
return getAdminSections()
|
|
.filter((section) => section.defaultRoute && section.route !== section.defaultRoute && !seenPaths.has(section.route))
|
|
.map((section) => {
|
|
seenPaths.add(section.route)
|
|
return {
|
|
path: section.route,
|
|
redirect: section.defaultRoute,
|
|
}
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Old SPA ops routes → native WP admin pages.
|
|
* Bookmarks under order-related paths land on NativeOpsRedirect.
|
|
* (封禁/举报 as a sidebar entry lives in constants/sections/users.js → /users/ban.)
|
|
*/
|
|
const NATIVE_OPS_REDIRECTS = [
|
|
{ path: '/users/messages', title: '消息中心', nativeAdminPath: 'users.php?page=jio_messages' },
|
|
{ path: '/users/report', title: '禁封/举报', nativeAdminPath: 'users.php?page=jio_user_ban' },
|
|
{ path: '/users/tickets', title: '工单管理', nativeAdminPath: 'users.php?page=jio_tickets' },
|
|
]
|
|
|
|
const routes = [
|
|
{ path: '/', redirect: ADMIN_DEFAULT_ROUTE },
|
|
...createSectionRedirectRoutes(),
|
|
...getAllAdminPages().map((page) => ({
|
|
path: page.route,
|
|
name: page.name,
|
|
component: resolveComponent(page),
|
|
meta: createRouteMeta(page),
|
|
})),
|
|
...NATIVE_OPS_REDIRECTS.map((item) => ({
|
|
path: item.path,
|
|
name: `NativeRedirect_${item.path.replace(/\W+/g, '_')}`,
|
|
component: componentLoaders.NativeOpsRedirect,
|
|
meta: {
|
|
title: item.title,
|
|
nativeAdminPath: item.nativeAdminPath,
|
|
status: 'redirect',
|
|
},
|
|
})),
|
|
]
|
|
|
|
export default createRouter({
|
|
history: createWebHashHistory(),
|
|
routes,
|
|
})
|
|
|