724 lines
34 KiB
HTML
724 lines
34 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta
|
||
name="viewport"
|
||
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"
|
||
/>
|
||
<title>Manage Center</title>
|
||
<link
|
||
rel="stylesheet"
|
||
href="../../common/theme.css?v=20260709-skeleton-mascot"
|
||
/>
|
||
<link rel="stylesheet" href="../common/center.css?v=20260608" />
|
||
<link rel="stylesheet" href="./style.css?v=20260708-manager-actions" />
|
||
</head>
|
||
|
||
<body>
|
||
<div class="manager-center" aria-label="Manage Center">
|
||
<div class="hero-bg" aria-hidden="true"></div>
|
||
|
||
<nav class="title-bar">
|
||
<button
|
||
class="back-button"
|
||
id="backButton"
|
||
type="button"
|
||
aria-label="Back"
|
||
data-i18n-aria="manager_center.back"
|
||
>
|
||
<svg viewBox="0 0 32 32" aria-hidden="true">
|
||
<path
|
||
d="M20.3 6.8a2 2 0 0 1 0 2.8L14 15.9c-.1.1-.1.2 0 .3l6.3 6.3a2 2 0 1 1-2.8 2.8L9.8 17.6a2.3 2.3 0 0 1 0-3.2l7.7-7.7a2 2 0 0 1 2.8.1Z"
|
||
/>
|
||
</svg>
|
||
</button>
|
||
<h1 data-i18n="manager_center.title">Manage Center</h1>
|
||
<div class="language-switcher">
|
||
<button
|
||
class="language-button"
|
||
type="button"
|
||
aria-label="Change language"
|
||
aria-expanded="false"
|
||
data-language-toggle
|
||
data-i18n-aria="manager_center.change_language"
|
||
>
|
||
<svg viewBox="0 0 32 32" aria-hidden="true">
|
||
<path
|
||
d="M16 11.2a4.8 4.8 0 1 0 0 9.6 4.8 4.8 0 0 0 0-9.6Z"
|
||
/>
|
||
<path
|
||
d="M26.2 17.7v-3.4l-3.2-.7a8 8 0 0 0-.8-1.9l1.8-2.8-2.4-2.4-2.8 1.8c-.6-.3-1.2-.6-1.9-.8L16.3 4h-3.4l-.7 3.5c-.7.2-1.3.5-1.9.8L7.5 6.5 5.1 8.9l1.8 2.8c-.3.6-.6 1.2-.8 1.9l-3.3.7v3.4l3.3.7c.2.7.5 1.3.8 1.9l-1.8 2.8 2.4 2.4 2.8-1.8c.6.3 1.2.6 1.9.8l.7 3.5h3.4l.7-3.5c.7-.2 1.3-.5 1.9-.8l2.8 1.8 2.4-2.4-1.8-2.8c.3-.6.6-1.2.8-1.9l3.2-.7Z"
|
||
/>
|
||
</svg>
|
||
</button>
|
||
<div class="language-menu" data-language-menu hidden>
|
||
<button type="button" data-lang-option="en">EN</button>
|
||
<button type="button" data-lang-option="ar">AR</button>
|
||
<button type="button" data-lang-option="tr">TR</button>
|
||
<button type="button" data-lang-option="es">ES</button>
|
||
<button type="button" data-lang-option="zh">ZH</button>
|
||
<button type="button" data-lang-option="id">ID</button>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<main class="content">
|
||
<section class="card manager-profile-card">
|
||
<div class="manager-avatar-shell">
|
||
<img
|
||
class="manager-avatar-image"
|
||
id="managerAvatar"
|
||
src=""
|
||
alt=""
|
||
hidden
|
||
/>
|
||
<div
|
||
class="manager-avatar-fallback"
|
||
id="managerAvatarFallback"
|
||
aria-hidden="true"
|
||
></div>
|
||
</div>
|
||
<div class="manager-profile-copy">
|
||
<strong id="managerName"></strong>
|
||
<span class="manager-role-badge">
|
||
<svg viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="m5 9 4 4 3-7 3 7 4-4-2 9H7Z" />
|
||
</svg>
|
||
<span data-i18n="manager_center.role_manager"
|
||
>Manager</span
|
||
>
|
||
</span>
|
||
<span class="manager-id-line">
|
||
<span>ID:</span>
|
||
<span id="managerDisplayId"></span>
|
||
<button
|
||
class="manager-copy-button"
|
||
type="button"
|
||
aria-label="Copy manager ID"
|
||
data-i18n-aria="manager_center.copy_id"
|
||
>
|
||
<svg viewBox="0 0 24 24" aria-hidden="true">
|
||
<path
|
||
d="M8.5 7.2h9.1c1.2 0 2.2 1 2.2 2.2v9.1c0 1.2-1 2.2-2.2 2.2H8.5c-1.2 0-2.2-1-2.2-2.2V9.4c0-1.2 1-2.2 2.2-2.2Z"
|
||
/>
|
||
<path
|
||
d="M5.2 3.3h8.7c1 0 1.8.8 1.8 1.8v.8H7.8c-1.6 0-2.9 1.3-2.9 2.9v7.9H4c-1 0-1.8-.8-1.8-1.8V6.3c0-1.7 1.3-3 3-3Z"
|
||
/>
|
||
</svg>
|
||
</button>
|
||
</span>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="manager-kpi-grid" aria-label="Manager summary">
|
||
<article class="card manager-kpi-card kpi-wallet">
|
||
<span class="manager-kpi-icon" aria-hidden="true">
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="M8 13.5h18.2a4.2 4.2 0 0 1 4.2 4.2v10.6H8Z"
|
||
/>
|
||
<path d="M8.2 12.8 23.8 7l2.2 6.5Z" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="M24 19.5h6.4v5.4H24a2.7 2.7 0 0 1 0-5.4Z"
|
||
/>
|
||
<circle
|
||
class="icon-dot"
|
||
cx="24.3"
|
||
cy="22.2"
|
||
r="1.1"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<div class="manager-kpi-copy">
|
||
<span data-i18n="manager_center.this_month"
|
||
>This Month</span
|
||
>
|
||
<strong id="managerThisMonthSalary"></strong>
|
||
<em data-i18n="manager_center.team_salary"
|
||
>Team Salary</em
|
||
>
|
||
</div>
|
||
<i class="manager-bars" aria-hidden="true"></i>
|
||
</article>
|
||
|
||
<article class="card manager-kpi-card kpi-report">
|
||
<span class="manager-kpi-icon" aria-hidden="true">
|
||
<svg viewBox="0 0 36 36">
|
||
<path d="M9.5 5.5h15.4l4.6 4.6v20.4h-20Z" />
|
||
<path class="icon-cutout" d="M24 6.5v5h5Z" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="M15 15h9v2.2h-9ZM15 20h6.8v2.2H15Z"
|
||
/>
|
||
<path
|
||
class="icon-cutout"
|
||
d="m15.3 27.3 3.4-3.4 2.9 2.8 5-7 1.9 1.4-6.6 9.1-3.1-3-2.1 2.1Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<div class="manager-kpi-copy">
|
||
<span data-i18n="manager_center.last_month"
|
||
>Last Month</span
|
||
>
|
||
<strong id="managerLastMonthSalary"></strong>
|
||
<em data-i18n="manager_center.team_salary"
|
||
>Team Salary</em
|
||
>
|
||
</div>
|
||
<i class="manager-bars" aria-hidden="true"></i>
|
||
</article>
|
||
|
||
<article class="card manager-kpi-card kpi-hosts">
|
||
<span class="manager-kpi-icon" aria-hidden="true">
|
||
<svg viewBox="0 0 36 36">
|
||
<circle cx="13.4" cy="12.3" r="5.5" />
|
||
<path
|
||
d="M4.8 30.5c1.3-6.4 4.2-9.6 8.6-9.6s7.3 3.2 8.6 9.6Z"
|
||
/>
|
||
<circle cx="24.7" cy="12.7" r="4.8" />
|
||
<path
|
||
d="M21.4 30.5c1.1-5.4 3.5-8.1 7.2-8.1 3 0 5.1 2 6.4 6.1v2Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<div class="manager-kpi-copy">
|
||
<span data-i18n="manager_center.active_hosts"
|
||
>Active Hosts</span
|
||
>
|
||
<strong id="managerActiveHosts"></strong>
|
||
<em data-i18n="manager_center.total_active"
|
||
>Total Active</em
|
||
>
|
||
</div>
|
||
<i class="manager-bars" aria-hidden="true"></i>
|
||
</article>
|
||
|
||
<article class="card manager-kpi-card kpi-growth">
|
||
<span class="manager-kpi-icon" aria-hidden="true">
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="M7.5 25.5 15.3 17.7l4.4 4.3 8.1-11h3.4v3.4L20.2 29 15.4 24.2 10 29.5Z"
|
||
/>
|
||
<path d="M23.2 9.6h8v8h-3v-5h-5Z" />
|
||
</svg>
|
||
</span>
|
||
<div class="manager-kpi-copy">
|
||
<span data-i18n="manager_center.growth"
|
||
>Growth</span
|
||
>
|
||
<strong id="managerGrowth"></strong>
|
||
<em data-i18n="manager_center.vs_last_month"
|
||
>vs Last Month</em
|
||
>
|
||
</div>
|
||
<i class="manager-bars" aria-hidden="true"></i>
|
||
</article>
|
||
</section>
|
||
|
||
<!-- <section class="card manager-assets-card">
|
||
<button class="manager-asset-item" type="button">
|
||
<span
|
||
class="manager-asset-icon wallet"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path d="M7 12h18.5a4 4 0 0 1 4 4v12H7Z" />
|
||
<path d="M7.4 11.4 24.5 7l1.9 5Z" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="M23.4 18.3h6.1v5.6h-6.1a2.8 2.8 0 0 1 0-5.6Z"
|
||
/>
|
||
<circle
|
||
class="icon-dot"
|
||
cx="23.8"
|
||
cy="21.1"
|
||
r="1"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span>
|
||
<strong data-i18n="manager_center.wallet"
|
||
>Wallet</strong
|
||
>
|
||
<em id="managerWallet"></em>
|
||
</span>
|
||
<i aria-hidden="true">›</i>
|
||
</button>
|
||
<button class="manager-asset-item" type="button">
|
||
<span
|
||
class="manager-asset-icon bank"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path d="M6 11h24v16H6Z" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="M6 15h24v3H6ZM10 22h7v2.4h-7Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span>
|
||
<strong data-i18n="manager_center.bank_cards"
|
||
>Bank Cards</strong
|
||
>
|
||
<em id="managerBankCards"></em>
|
||
</span>
|
||
<i aria-hidden="true">›</i>
|
||
</button>
|
||
</section> -->
|
||
|
||
<section class="card manager-actions-card">
|
||
<!-- 操作入口按 overview.permissions 显隐:renderActionPermissions 按 data-action 对应的权限位隐藏未授权入口 -->
|
||
<div class="manager-action-grid" aria-label="Manager tools">
|
||
<button
|
||
class="manager-action-item action-send-frame"
|
||
type="button"
|
||
data-action="send-frame"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="M9 4.5h18A4.5 4.5 0 0 1 31.5 9v18a4.5 4.5 0 0 1-4.5 4.5H9A4.5 4.5 0 0 1 4.5 27V9A4.5 4.5 0 0 1 9 4.5Z"
|
||
/>
|
||
<circle
|
||
class="icon-cutout"
|
||
cx="18"
|
||
cy="14.6"
|
||
r="4.8"
|
||
/>
|
||
<path
|
||
class="icon-cutout"
|
||
d="M10.4 28c1.2-5.1 3.8-7.6 7.6-7.6s6.4 2.5 7.6 7.6Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.send_frame"
|
||
>Send Frame</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-send-car"
|
||
type="button"
|
||
data-action="send-car"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="m6.1 16 2.2-6a3.2 3.2 0 0 1 3-2.1h13.4a3.2 3.2 0 0 1 3 2.1l2.2 6c1.6.5 2.7 1.8 2.7 3.5v6.1a1.8 1.8 0 0 1-1.8 1.8h-1.6a1.8 1.8 0 0 1-1.8-1.8v-1.1H8.6v1.1a1.8 1.8 0 0 1-1.8 1.8H5.2a1.8 1.8 0 0 1-1.8-1.8v-6.1c0-1.7 1.1-3 2.7-3.5Z"
|
||
/>
|
||
<path
|
||
class="icon-cutout"
|
||
d="m9.4 15.3 1.5-4.3c.2-.6.8-1 1.4-1h11.4c.6 0 1.2.4 1.4 1l1.5 4.3Z"
|
||
/>
|
||
<circle
|
||
class="icon-cutout"
|
||
cx="9.9"
|
||
cy="20.3"
|
||
r="1.7"
|
||
/>
|
||
<circle
|
||
class="icon-cutout"
|
||
cx="26.1"
|
||
cy="20.3"
|
||
r="1.7"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.send_car"
|
||
>Send Car</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-send-badge"
|
||
type="button"
|
||
data-action="send-badge"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="m12.6 20.9-2.8 10 5.3-2.3 2.9 3.9 2.9-3.9 5.3 2.3-2.8-10Z"
|
||
/>
|
||
<circle cx="18" cy="13.4" r="9.4" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="m18 8.4 1.6 3.1 3.4.5-2.5 2.4.6 3.4-3.1-1.6-3.1 1.6.6-3.4-2.5-2.4 3.4-.5Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.send_badge"
|
||
>Send Badge</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-send-vip"
|
||
type="button"
|
||
data-action="send-vip"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="m4.8 11.4 6.4 4.9L18 7.6l6.8 8.7 6.4-4.9-2.6 14.3a2.6 2.6 0 0 1-2.6 2.1H10a2.6 2.6 0 0 1-2.6-2.1Z"
|
||
/>
|
||
<circle
|
||
class="icon-cutout"
|
||
cx="18"
|
||
cy="21.4"
|
||
r="2"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.send_vip"
|
||
>Send VIP</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-update-level"
|
||
type="button"
|
||
data-action="update-user-level"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path d="M5.5 29.5V20h5.4v9.5Z" />
|
||
<path d="M15.3 29.5V13.8h5.4v15.7Z" />
|
||
<path d="M25.1 29.5V7.5h5.4v22Z" />
|
||
<path
|
||
d="M6.2 13.2 12.9 6.5H8.5V3.7h9v9h-2.8V8.5l-6.6 6.6Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.user_level"
|
||
>User Level</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-bd"
|
||
type="button"
|
||
data-action="add-bd-leader"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<circle cx="15" cy="11.5" r="6" />
|
||
<path
|
||
d="M5.5 30.5c1.4-7.1 4.6-10.6 9.5-10.6 4.2 0 7.1 2.5 8.8 7.5v3.1Z"
|
||
/>
|
||
<circle cx="27" cy="24.8" r="5.8" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="M26 20.8h2v3h3v2h-3v3h-2v-3h-3v-2h3Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.bd_leader"
|
||
>BD Leader</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-invite-admin"
|
||
type="button"
|
||
data-action="add-admin"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<circle cx="15" cy="11.5" r="6" />
|
||
<path
|
||
d="M5.5 30.5c1.4-7.1 4.6-10.6 9.5-10.6s8.1 3.5 9.5 10.6Z"
|
||
/>
|
||
<circle cx="26.5" cy="22.8" r="5.4" />
|
||
<path
|
||
class="icon-cutout"
|
||
d="m26.5 19.3 1 2 2.2.3-1.6 1.5.4 2.2-2-1-2 1 .4-2.2-1.6-1.5 2.2-.3Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.admin">Admin</span>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-super"
|
||
type="button"
|
||
data-action="add-superadmin"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<path
|
||
d="M18 5 29 10v8.2c0 7-4.3 10.8-11 13.3-6.7-2.5-11-6.3-11-13.3V10Z"
|
||
/>
|
||
<path
|
||
class="icon-cutout"
|
||
d="m18 11 1.8 3.6 4 .6-2.9 2.8.7 4-3.6-1.9-3.6 1.9.7-4-2.9-2.8 4-.6Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.super_admin"
|
||
>Super Admin</span
|
||
>
|
||
</button>
|
||
<button
|
||
class="manager-action-item action-block-users"
|
||
type="button"
|
||
data-action="block-user"
|
||
>
|
||
<span
|
||
class="manager-action-icon"
|
||
aria-hidden="true"
|
||
>
|
||
<svg viewBox="0 0 36 36">
|
||
<circle cx="16" cy="11.5" r="5.8" />
|
||
<path
|
||
d="M7.2 28.8c1.3-6.9 4.2-10.3 8.8-10.3s7.5 3.4 8.8 10.3Z"
|
||
/>
|
||
<circle
|
||
class="icon-cutout"
|
||
cx="26"
|
||
cy="23.5"
|
||
r="7.4"
|
||
/>
|
||
<path
|
||
d="M21.4 18.9a7.4 7.4 0 0 1 9.2 9.2Z"
|
||
/>
|
||
</svg>
|
||
</span>
|
||
<span data-i18n="manager_center.block_users"
|
||
>Block Users</span
|
||
>
|
||
</button>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<div
|
||
class="block-modal level-modal"
|
||
id="levelModal"
|
||
aria-hidden="true"
|
||
hidden
|
||
>
|
||
<button
|
||
class="block-backdrop"
|
||
id="levelBackdrop"
|
||
type="button"
|
||
aria-label="Close update level dialog"
|
||
></button>
|
||
<section
|
||
class="block-dialog"
|
||
role="dialog"
|
||
aria-modal="true"
|
||
aria-labelledby="levelDialogTitle"
|
||
>
|
||
<div class="block-dialog-header">
|
||
<h2 id="levelDialogTitle">Update User Level</h2>
|
||
<button
|
||
class="block-close"
|
||
id="levelCloseButton"
|
||
type="button"
|
||
aria-label="Close"
|
||
>
|
||
<svg viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="M6 6l12 12M18 6 6 18" />
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
|
||
<div class="block-dialog-body">
|
||
<div class="block-field">
|
||
<label for="levelSearchInput">User ID</label>
|
||
<div class="block-search-row">
|
||
<input
|
||
id="levelSearchInput"
|
||
type="text"
|
||
inputmode="numeric"
|
||
autocomplete="off"
|
||
placeholder="Enter user ID"
|
||
/>
|
||
<button id="levelSearchButton" type="button">
|
||
Search
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
class="block-search-result"
|
||
id="levelSearchResult"
|
||
aria-live="polite"
|
||
></div>
|
||
|
||
<div class="level-panel" id="levelPanel" hidden>
|
||
<div class="block-section-title">
|
||
Select user level
|
||
</div>
|
||
<div
|
||
class="level-grid"
|
||
id="levelGrid"
|
||
aria-label="Select user level"
|
||
></div>
|
||
<button
|
||
class="confirm-level-button"
|
||
id="confirmLevelButton"
|
||
type="button"
|
||
disabled
|
||
>
|
||
Confirm Update
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
|
||
<div class="block-modal" id="blockModal" aria-hidden="true" hidden>
|
||
<button
|
||
class="block-backdrop"
|
||
id="blockBackdrop"
|
||
type="button"
|
||
aria-label="Close block user dialog"
|
||
></button>
|
||
<section
|
||
class="block-dialog"
|
||
role="dialog"
|
||
aria-modal="true"
|
||
aria-labelledby="blockDialogTitle"
|
||
>
|
||
<div class="block-dialog-header">
|
||
<h2 id="blockDialogTitle">Block User</h2>
|
||
<button
|
||
class="block-close"
|
||
id="blockCloseButton"
|
||
type="button"
|
||
aria-label="Close"
|
||
>
|
||
<svg viewBox="0 0 24 24" aria-hidden="true">
|
||
<path d="M6 6l12 12M18 6 6 18" />
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
|
||
<div class="block-dialog-body">
|
||
<div class="block-field">
|
||
<label for="blockSearchInput">User ID</label>
|
||
<div class="block-search-row">
|
||
<input
|
||
id="blockSearchInput"
|
||
type="text"
|
||
inputmode="numeric"
|
||
autocomplete="off"
|
||
placeholder="Enter user ID"
|
||
/>
|
||
<button id="blockSearchButton" type="button">
|
||
Search
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
class="block-search-result"
|
||
id="blockSearchResult"
|
||
aria-live="polite"
|
||
></div>
|
||
|
||
<div
|
||
class="block-duration-panel"
|
||
id="blockDurationPanel"
|
||
hidden
|
||
>
|
||
<div class="block-section-title">
|
||
Select block duration
|
||
</div>
|
||
<div class="duration-grid" id="durationGrid">
|
||
<button
|
||
type="button"
|
||
data-duration-ms="3600000"
|
||
data-duration-label="1 hour"
|
||
>
|
||
1 hour
|
||
</button>
|
||
<button
|
||
type="button"
|
||
data-duration-ms="86400000"
|
||
data-duration-label="1 day"
|
||
>
|
||
1 day
|
||
</button>
|
||
<button
|
||
type="button"
|
||
data-duration-ms="604800000"
|
||
data-duration-label="7 days"
|
||
>
|
||
7 days
|
||
</button>
|
||
<button
|
||
type="button"
|
||
data-duration-ms="2592000000"
|
||
data-duration-label="30 days"
|
||
>
|
||
30 days
|
||
</button>
|
||
<button
|
||
type="button"
|
||
data-duration-ms="0"
|
||
data-duration-label="Permanent"
|
||
>
|
||
Permanent
|
||
</button>
|
||
</div>
|
||
<button
|
||
class="confirm-block-button"
|
||
id="confirmBlockButton"
|
||
type="button"
|
||
disabled
|
||
>
|
||
Confirm Block
|
||
</button>
|
||
</div>
|
||
|
||
<div class="block-list-header">
|
||
<div class="block-section-title">Blocked Users</div>
|
||
<div class="block-list-count" id="blockListCount">
|
||
0
|
||
</div>
|
||
</div>
|
||
<div
|
||
class="blocked-list"
|
||
id="blockedList"
|
||
aria-live="polite"
|
||
></div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
|
||
<div class="home-indicator" aria-hidden="true"></div>
|
||
</div>
|
||
|
||
<script src="../../common/toast.js"></script>
|
||
<script src="../../common/loading.js?v=20260709-lalu-loading"></script>
|
||
<script src="../../common/skeleton.js?v=20260709-skeleton-mascot"></script>
|
||
<script src="../../common/api.js?v=20260710-manager-resource-pages"></script>
|
||
<script src="../../common/params.js?v=20260608-manager-real"></script>
|
||
<script src="../../common/jsbridge.js"></script>
|
||
<script src="../../common/i18n.js?v=20260608"></script>
|
||
<script src="./script.js?v=20260710-manager-resource-pages"></script>
|
||
</body>
|
||
</html>
|