diff --git a/Web/Presenters/AdminPresenter.php b/Web/Presenters/AdminPresenter.php index 808c64aa..4dea28d1 100644 --- a/Web/Presenters/AdminPresenter.php +++ b/Web/Presenters/AdminPresenter.php @@ -94,4 +94,14 @@ final class AdminPresenter extends OpenVKPresenter $user->ban($this->queryParam("reason")); exit(json_encode([ "reason" => $this->queryParam("reason") ])); } + + function renderQuickWarn(int $id): void + { + $user = $this->users->get($id); + if(!$user) + exit(json_encode([ "error" => "User does not exist" ])); + + $user->adminNotify("⚠️ " . $this->queryParam("message")); + exit(json_encode([ "message" => $this->queryParam("message") ])); + } } diff --git a/Web/Presenters/templates/User/View.xml b/Web/Presenters/templates/User/View.xml index 3b884011..f9f46276 100644 --- a/Web/Presenters/templates/User/View.xml +++ b/Web/Presenters/templates/User/View.xml @@ -76,6 +76,9 @@ Забанить пользователя + + Предупредить пользователя + {/if} {var subStatus = $user->getSubscriptionStatus($thisUser)} @@ -456,7 +459,7 @@ function banUser() { uBanMsgTxt = "Вы собираетесь забанить пользователя " + {$user->getCanonicalName()} + "."; uBanMsgTxt += "
Предупреждение: Это действие удалит все подписки пользователя и отпишет всех от него."; - uBanMsgTxt += "

Причина бана: " + uBanMsgTxt += "

Причина бана: " MessageBox("Забанить " + {$user->getFirstName()}, uBanMsgTxt, ["Подтвердить", "Отмена"], [ (function() { @@ -472,7 +475,29 @@ xhr.send(null); }), Function.noop - ]) + ]); + } + + function warnUser() { + uBanMsgTxt = "Вы собираетесь предупредить пользователя " + {$user->getCanonicalName()} + "."; + uBanMsgTxt += "
Мы отправим уведомление пользователю в личные сообщения от имени аккаунта администратора."; + uBanMsgTxt += "

Текст предупреждения: " + + MessageBox("Выдать предупреждение " + {$user->getFirstName()}, uBanMsgTxt, ["Подтвердить", "Отмена"], [ + (function() { + res = document.querySelector("#uWarnMsgInput").value; + xhr = new XMLHttpRequest(); + xhr.open("GET", "/admin/warn.pl/" + {$user->getId()} + "?message=" + res, true); + xhr.onload = (function() { + if(xhr.responseText.indexOf("message") === -1) + MessageBox("Ошибка", "Не удалось отправить предупреждение...", ["OK"], [Function.noop]); + else + MessageBox("Операция успешна", "Предупреждение отправлено", ["OK"], [Function.noop]); + }); + xhr.send(null); + }), + Function.noop + ]); } diff --git a/Web/routes.yml b/Web/routes.yml index 8d1c440f..86bea16e 100644 --- a/Web/routes.yml +++ b/Web/routes.yml @@ -193,6 +193,8 @@ routes: handler: "Admin->club" - url: "/admin/ban.pl/{num}" handler: "Admin->quickBan" + - url: "/admin/warn.pl/{num}" + handler: "Admin->quickWarn" - url: "/sandbox_cocksex" handler: "About->sandbox" - url: "/{?shortCode}"