feat(admin): Phase 6 sub-commit 2 — remove .user-panel overlay

Now that the deep pages (sub-commit 1) work, retire the legacy
.user-panel inline overlay entirely.

* admin.html: removed <div class="user-panel" id="user-panel"> block
  inside #tab-users, removed dead .user-panel* CSS (kept .btn-close
  for any external use).
* users.js: removed openUserPanel / closeUserPanel / reloadUserPanel
  and their closure state (activeTr, activeUserRole). User row onclick
  switched from openUserPanel(...) → AdminRouter.navigate('#users/N').
  clearUserHistory / toggleBanUser / confirmDeleteUser / openEditUserModal
  / openUserPermsModal / doSet/doReset* all refactored to use the
  getActiveUid() helper (reads window.activeUid, set by user-detail.init)
  + reloadDetailAndList() helper (refreshes deep page + list together).
* sessions.js: row click + eye-button switched from toggleDrawer(id)
  → gotoSession(id) → AdminRouter.navigate('#sessions/N'). Removed
  toggleDrawer + renderDrawer functions (~60L) and openDrawerId state.
  Inline drawer markup removed from the row template.

Verified node --check on all touched JS. ast-index confirms zero
remaining usages of openUserPanel / closeUserPanel / reloadUserPanel /
toggleDrawer across the repo.

This completes Phase 6 and the admin-redesign feature.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-17 00:08:13 +03:00
parent bd3020067b
commit 3f89030b6e
6 changed files with 138 additions and 224 deletions
+3 -25
View File
@@ -159,12 +159,8 @@
.pct-mid { color: var(--amber); }
.pct-lo { color: var(--pink); }
/* user panel */
.user-panel { background: var(--surface); backdrop-filter: var(--blur); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 32px; box-shadow: var(--shadow); display: none; }
.user-panel.visible { display: block; }
.user-panel-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.user-panel-name { font-family: 'Unbounded', sans-serif; font-size: 1.1rem; font-weight: 800; }
.user-panel-email { font-size: 0.92rem; color: var(--text-3); margin-top: 3px; }
/* Legacy .user-panel overlay was removed in Phase 6 — the deep page
(#users/:id) replaces it. .btn-close kept for use elsewhere if any. */
.btn-close { padding: 8px 18px; border: 1.5px solid var(--border-h); border-radius: var(--r-pill); background: transparent; font-family: 'Manrope', sans-serif; font-size: 0.88rem; font-weight: 600; color: var(--text-3); cursor: pointer; transition: all var(--tr); }
.btn-close:hover { border-color: var(--pink); color: var(--pink); }
.sess-list { display: flex; flex-direction: column; gap: 12px; }
@@ -579,10 +575,6 @@
.q-modal-title { font-size: 0.9rem; margin-bottom: 20px; }
.form-row-2, .form-row-3 { grid-template-columns: 1fr; }
/* User panel */
.user-panel { padding: 18px 14px; }
.user-panel-header { flex-wrap: wrap; gap: 10px; }
/* Session drawer */
.sess-drawer-inner { padding: 16px 12px; }
.drawer-header { gap: 10px; }
@@ -1126,21 +1118,7 @@
</table>
</div>
<div id="users-pagination" class="pgn-bar" style="display:none"></div>
<div class="user-panel" id="user-panel">
<div class="user-panel-header">
<div><div class="user-panel-name" id="up-name"></div><div class="user-panel-email" id="up-email"></div></div>
<div style="display:flex;gap:8px;align-items:center">
<button class="btn-edit-q" id="up-edit-btn" onclick="openEditUserModal()" style="display:none"><i data-lucide="pencil" style="width:13px;height:13px;vertical-align:-2px"></i> Изменить</button>
<button class="btn-edit-q" id="up-perms-btn" onclick="openUserPermsModal()" style="display:none"><i data-lucide="shield" style="width:13px;height:13px;vertical-align:-2px"></i> Права</button>
<button class="btn-del-q" id="up-clear-btn" onclick="clearUserHistory()" style="display:none"><i data-lucide="trash-2" style="width:13px;height:13px;vertical-align:-2px"></i> История</button>
<button class="btn-del-q" id="up-ban-btn" onclick="toggleBanUser()" style="display:none"><i data-lucide="ban" style="width:13px;height:13px;vertical-align:-2px"></i> <span id="up-ban-label">Заблокировать</span></button>
<button class="btn-del-q" id="up-delete-btn" onclick="confirmDeleteUser()" style="display:none;background:rgba(239,68,68,.12);color:#EF4444;border-color:rgba(239,68,68,.25)"><i data-lucide="user-x" style="width:13px;height:13px;vertical-align:-2px"></i> Удалить</button>
<button class="btn-close" onclick="closeUserPanel()"><i data-lucide="x" style="width:13px;height:13px;vertical-align:-2px"></i> Закрыть</button>
</div>
</div>
<div class="section-title">История тестов</div>
<div id="up-sessions"><div class="spinner"></div></div>
</div>
<!-- Phase 6: legacy .user-panel overlay removed; deep page renders into #tab-user-detail above. -->
</div>
<!-- ── Deep page: user detail (#users/:id) — populated by user-detail.js ── -->