From 4e17fe04d0d5632bdd4a64e2fc9ce28554c4ab8a Mon Sep 17 00:00:00 2001 From: ReturnFI <151555003+ReturnFI@users.noreply.github.com> Date: Fri, 7 Nov 2025 07:38:14 +0000 Subject: [PATCH] feat(webui): Add IP limiter clean button to settings page --- core/scripts/webpanel/assets/js/settings.js | 17 +++++++++++++++++ core/scripts/webpanel/templates/settings.html | 2 ++ 2 files changed, 19 insertions(+) diff --git a/core/scripts/webpanel/assets/js/settings.js b/core/scripts/webpanel/assets/js/settings.js index b818fa9..7fc3780 100644 --- a/core/scripts/webpanel/assets/js/settings.js +++ b/core/scripts/webpanel/assets/js/settings.js @@ -27,6 +27,7 @@ $(document).ready(function () { restore: contentSection.dataset.restoreUrl, startIpLimit: contentSection.dataset.startIpLimitUrl, stopIpLimit: contentSection.dataset.stopIpLimitUrl, + cleanIpLimit: contentSection.dataset.cleanIpLimitUrl, configIpLimit: contentSection.dataset.configIpLimitUrl, statusWarp: contentSection.dataset.statusWarpUrl, installWarp: contentSection.dataset.installWarpUrl, @@ -493,6 +494,7 @@ $(document).ready(function () { if (isRunning) { $("#ip_limit_start").hide(); $("#ip_limit_stop").show(); + $("#ip_limit_clean").show(); $configTabLi.show(); fetchIpLimitConfig(); if ($ipLimitServiceForm.find(".alert-info").length === 0) { @@ -501,6 +503,7 @@ $(document).ready(function () { } else { $("#ip_limit_start").show(); $("#ip_limit_stop").hide(); + $("#ip_limit_clean").hide(); $configTabLi.hide(); if ($('#ip-limit-config-tab').hasClass('active')) { $('#ip-limit-service-tab').tab('show'); @@ -876,6 +879,19 @@ $(document).ready(function () { }); } + function cleanIPLimit() { + confirmAction("clean the IP Limit database and unblock all IPs", function () { + sendRequest( + API_URLS.cleanIpLimit, + "POST", + null, + "IP Limit database cleaned successfully!", + "#ip_limit_clean", + true + ); + }); + } + function configIPLimit() { if (!validateForm('ip_limit_config_form')) return; const blockDuration = $("#block_duration").val(); @@ -987,6 +1003,7 @@ $(document).ready(function () { $("#upload_backup").on("click", uploadBackup); $("#ip_limit_start").on("click", startIPLimit); $("#ip_limit_stop").on("click", stopIPLimit); + $("#ip_limit_clean").on("click", cleanIPLimit); $("#ip_limit_change_config").on("click", configIPLimit); $("#decoy_setup").on("click", setupDecoy); $("#decoy_stop").on("click", stopDecoy); diff --git a/core/scripts/webpanel/templates/settings.html b/core/scripts/webpanel/templates/settings.html index 613b8ef..ff95b4f 100644 --- a/core/scripts/webpanel/templates/settings.html +++ b/core/scripts/webpanel/templates/settings.html @@ -39,6 +39,7 @@ data-restore-url="{{ url_for('restore_api') }}" data-start-ip-limit-url="{{ url_for('start_ip_limit_api') }}" data-stop-ip-limit-url="{{ url_for('stop_ip_limit_api') }}" + data-clean-ip-limit-url="{{ url_for('clean_ip_limit_api') }}" data-config-ip-limit-url="{{ url_for('config_ip_limit_api') }}" data-status-warp-url="{{ url_for('status_warp') }}" data-install-warp-url="{{ url_for('install_warp') }}" @@ -404,6 +405,7 @@ Start +