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}"