diff --git a/Web/Presenters/NoSpamPresenter.php b/Web/Presenters/NoSpamPresenter.php index 1560ba63..e34efa86 100644 --- a/Web/Presenters/NoSpamPresenter.php +++ b/Web/Presenters/NoSpamPresenter.php @@ -347,11 +347,18 @@ final class NoSpamPresenter extends OpenVKPresenter } if (in_array((int)$this->postParam("ban"), [2, 3])) { + $reason = mb_strlen(trim($this->postParam("ban_reason"))) > 0 ? $this->postParam("ban_reason") : ("**content-noSpamTemplate-" . $log->getId() . "**"); + $is_forever = (string) $this->postParam("is_forever") === "true"; + $unban_time = $is_forever ? 0 : (int) $this->postParam("unban_time") ?? NULL; + if ($owner) { $_id = ($owner instanceof Club ? $owner->getId() * -1 : $owner->getId()); if (!in_array($_id, $banned_ids)) { if ($owner instanceof User) { - $owner->ban("**content-noSpamTemplate-" . $log->getId() . "**", false, time() + $owner->getNewBanTime(), $this->user->id); + if (!$unban_time && !$is_forever) + $unban_time = time() + $owner->getNewBanTime(); + + $owner->ban($reason, false, $unban_time, $this->user->id); } else { $owner->ban("Подозрительная активность"); } diff --git a/Web/Presenters/templates/NoSpam/Index.xml b/Web/Presenters/templates/NoSpam/Index.xml index 746f86d5..89305c5b 100644 --- a/Web/Presenters/templates/NoSpam/Index.xml +++ b/Web/Presenters/templates/NoSpam/Index.xml @@ -106,13 +106,31 @@ Параметры блокировки: - + + + Причина: + + + + + + + + До: + + + +
+ навсегда + +
@@ -158,7 +176,6 @@ $("#noSpam-results-loader").show(); $("#noSpam-loader").show(); - let models = []; $(".model").each(function (i) { let name = $(this).val(); @@ -178,6 +195,10 @@ let ts = $("#ts").val() ? Math.floor(new Date($("#ts").val()).getTime() / 1000) : null; let te = $("#te").val() ? Math.floor(new Date($("#te").val()).getTime() / 1000) : null; let user = $("#user").val(); + let ban_reason = $("#ban-reason").val(); + let unban_time = $("#unban-time").val() ? Math.floor(new Date($("#unban-time").val()).getTime() / 1000) : null; + let is_forever = $("#is-forever").prop('checked'); + console.log(ban_reason, unban_time, is_forever); await $.ajax({ type: "POST", @@ -193,6 +214,9 @@ ts: ts, te: te, user: user, + ban_reason: ban_reason, + unban_time: unban_time, + is_forever: is_forever, hash: {=$csrfToken} }, success: (response) => { @@ -277,6 +301,17 @@ selectChange(e.target.value); }) + $("#noSpam-ban-type").change(async (e) => { + if (e.target.value > 1) { + $(".banSettings").show(); + } else { + $("#ban-reason").val(null); + $("#unban-time").val(null); + $("#is-forever").prop('checked', false); + $(".banSettings").hide(); + } + }); + $("#add-model").on("click", () => { console.log($(".model").length); $("#models-list").append(`