diff --git a/.gitignore b/.gitignore
index ce242a7..c6450e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,5 +23,8 @@ tmp/
.DS_Store
Thumbs.db
+# --- Playwright test artifacts ---
+.playwright-mcp/
+
# --- Internal audit (not for commit) ---
SECURITY_AUDIT.md
diff --git a/.playwright-mcp/page-2026-09-09T05-41-29-429Z.yml b/.playwright-mcp/page-2026-09-09T05-41-29-429Z.yml
deleted file mode 100644
index 33a3d9f..0000000
--- a/.playwright-mcp/page-2026-09-09T05-41-29-429Z.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-- generic [ref=f1e2]:
- - heading "Админ-панель" [level=1] [ref=f1e3]
- - textbox "Пароль" [ref=f1e4]
- - button "Войти" [ref=f1e5] [cursor=pointer]
- - link "На главную" [ref=f1e7] [cursor=pointer]:
- - /url: /
\ No newline at end of file
diff --git a/.playwright-mcp/page-2026-09-09T05-43-31-505Z.yml b/.playwright-mcp/page-2026-09-09T05-43-31-505Z.yml
deleted file mode 100644
index 8a5290f..0000000
--- a/.playwright-mcp/page-2026-09-09T05-43-31-505Z.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-- generic [ref=f3e2]:
- - heading "Админ-панель" [level=1] [ref=f3e3]
- - textbox "Пароль" [active] [ref=f3e4]
- - button "Войти" [ref=f3e5] [cursor=pointer]
- - link "На главную" [ref=f3e7] [cursor=pointer]:
- - /url: /
\ No newline at end of file
diff --git a/public/admin.html b/public/admin.html
index b8320aa..31a5e3e 100644
--- a/public/admin.html
+++ b/public/admin.html
@@ -3,7 +3,7 @@
Админ-панель
-
+
diff --git a/public/admin.js b/public/admin.js
index 5e88d09..cd5c2b6 100644
--- a/public/admin.js
+++ b/public/admin.js
@@ -42,7 +42,7 @@ function buildSidebar(active) {
`;
}
@@ -137,14 +137,32 @@ function copyText(text) {
function renderPager(el, page, totalPages, onPage) {
if (!el) return;
if (totalPages <= 1) { el.innerHTML = ''; return; }
- let html = ``;
+ let html = ``;
for (let i = 1; i <= totalPages; i++) {
if (totalPages > 9 && i > 2 && i < totalPages - 1 && Math.abs(i - page) > 2) {
if (i === 3) html += ``;
continue;
}
- html += ``;
+ html += ``;
}
- html += ``;
+ html += ``;
el.innerHTML = html;
-}
\ No newline at end of file
+ el._onPage = onPage;
+ el._page = page;
+ if (!el._bound) {
+ el._bound = true;
+ el.addEventListener('click', e => {
+ const btn = e.target.closest('button');
+ if (!btn || btn.disabled) return;
+ const p = btn.dataset.page ? parseInt(btn.dataset.page, 10) : el._page + parseInt(btn.dataset.nav, 10);
+ if (el._onPage) el._onPage(p);
+ });
+ }
+}
+
+document.addEventListener('click', e => {
+ const imgEl = e.target.closest('[data-img]');
+ if (imgEl) { e.preventDefault(); showImg(imgEl.dataset.img); return; }
+ const out = e.target.closest('[data-action="logout"]');
+ if (out) { e.preventDefault(); doLogout(); }
+});
\ No newline at end of file
diff --git a/public/audit.html b/public/audit.html
index 24ddd6d..036a769 100644
--- a/public/audit.html
+++ b/public/audit.html
@@ -17,7 +17,7 @@
-
+
@@ -39,77 +39,6 @@
-
+