diff --git a/README.md b/README.md
index 8a9b391..de79215 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,9 @@ cd /opt/amnezia-admin && chmod +x scripts/install.sh && sudo SKIP_DOWNLOAD=1 bas
| `COMMUNITY_UPGRADE_PITCH` | _(текст по умолчанию в коде)_ | Текст под заголовком базовой версии |
| `PANEL_FOOTER_DONATE_URL` | Как **`COMMUNITY_UPGRADE_URL`** | Ссылка «донат» в **шапке и подвале** веб‑панели (**не** добавляется на nginx‑лендинг пользователей). |
| `PANEL_FOOTER_TELEGRAM_URL` | `https://t.me/lot_andrey` | Ссылка Telegram‑спонсора / канала (там же: только панель). |
+| `PANEL_FOOTER_OZON_URL` | Ссылка на **Ozon СБП** автора (дефолт в `server.js`) | Донат через Ozon — **шапка и подвал** панели с остальными ссылками. |
| `PANEL_FOOTER_DONATE_LABEL` | `Поддержать проект` | Текст якоря доната |
+| `PANEL_FOOTER_OZON_LABEL` | `Донат · Ozon СБП` | Текст якоря Ozon |
| `PANEL_FOOTER_TELEGRAM_LABEL` | `Telegram‑канал спонсора` | Текст якоря Telegram |
| `PANEL_FOOTER_PROMO_SUBTITLE` | _(строка по умолчанию в коде)_ | Поясняющий текст в верхней полосе панели |
| `SKIP_LANDING` | `0` | `1` — без лендинга на порту 80 |
diff --git a/package.json b/package.json
index d212929..92aebbc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "amnezia-admin",
- "version": "1.2.21",
+ "version": "1.2.22",
"private": true,
"description": "amnezia_web — базовая панель AmneziaWG (FREE: просмотр и удаление клиентов; полная версия — PRO).",
"license": "MIT",
diff --git a/public/app.js b/public/app.js
index 9124e1a..1687f78 100644
--- a/public/app.js
+++ b/public/app.js
@@ -174,11 +174,15 @@ async function hydratePanelPromoFooter() {
const strip = document.getElementById("panel-promo-strip");
const sub = document.getElementById("panel-promo-subtitle");
const aDonTop = document.getElementById("panel-strip-donate");
- const sepTop = document.getElementById("panel-strip-sep");
+ const sepDO = document.getElementById("panel-strip-sep-donate-ozon");
+ const aOzonTop = document.getElementById("panel-strip-ozon");
+ const sepOT = document.getElementById("panel-strip-sep-ozon-tg");
const aTgTop = document.getElementById("panel-strip-telegram");
const gap1 = document.getElementById("footer-promo-gap1");
const aDonF = document.getElementById("footer-promo-donate");
- const sepMid = document.getElementById("footer-promo-sep-mid");
+ const fSepDO = document.getElementById("footer-promo-sep-donate-ozon");
+ const aOzonF = document.getElementById("footer-promo-ozon");
+ const fSepOT = document.getElementById("footer-promo-sep-ozon-tg");
const aTgF = document.getElementById("footer-promo-telegram");
try {
@@ -191,18 +195,25 @@ async function hydratePanelPromoFooter() {
if (sub) sub.textContent = subtitle;
const okD = wirePanelPromoAnchor(aDonTop, j.donateUrl, j.donateLabel);
+ const okO = wirePanelPromoAnchor(aOzonTop, j.ozonUrl, j.ozonLabel);
const okT = wirePanelPromoAnchor(aTgTop, j.telegramUrl, j.telegramLabel);
- if (sepTop) sepTop.classList.toggle("hidden", !(okD && okT));
+
+ if (sepDO) sepDO.classList.toggle("hidden", !(okD && (okO || okT)));
+ if (sepOT) sepOT.classList.toggle("hidden", !(okO && okT));
wirePanelPromoAnchor(aDonF, j.donateUrl, j.donateLabel);
+ wirePanelPromoAnchor(aOzonF, j.ozonUrl, j.ozonLabel);
wirePanelPromoAnchor(aTgF, j.telegramUrl, j.telegramLabel);
const footerD = aDonF && !aDonF.classList.contains("hidden");
+ const footerO = aOzonF && !aOzonF.classList.contains("hidden");
const footerT = aTgF && !aTgF.classList.contains("hidden");
- if (gap1) gap1.classList.toggle("hidden", !(footerD || footerT));
- if (sepMid) sepMid.classList.toggle("hidden", !(footerD && footerT));
- if (strip && (okD || okT)) strip.classList.remove("hidden");
+ if (gap1) gap1.classList.toggle("hidden", !(footerD || footerO || footerT));
+ if (fSepDO) fSepDO.classList.toggle("hidden", !(footerD && (footerO || footerT)));
+ if (fSepOT) fSepOT.classList.toggle("hidden", !(footerO && footerT));
+
+ if (strip && (okD || okO || okT)) strip.classList.remove("hidden");
} catch {
/* офлайн или сбой — блок остаётся скрытым */
}
diff --git a/public/index.html b/public/index.html
index 0e92d5d..611c41a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -7,7 +7,7 @@
-
+
+