From 776bde5a729c9045000394e75212b255d6b5c7a0 Mon Sep 17 00:00:00 2001 From: Alexander Moisseev Date: Sat, 13 Dec 2025 13:40:01 +0300 Subject: [PATCH] [Minor] Refactor switch statements to object lookups --- interface/js/app/rspamd.js | 29 ++++------------------------- interface/js/app/selectors.js | 12 ++---------- interface/js/app/stats.js | 12 ++---------- 3 files changed, 8 insertions(+), 45 deletions(-) diff --git a/interface/js/app/rspamd.js b/interface/js/app/rspamd.js index 8aa288ac5d..55cfface17 100644 --- a/interface/js/app/rspamd.js +++ b/interface/js/app/rspamd.js @@ -354,17 +354,8 @@ define(["jquery", "app/common", "stickytabs", "visibility", const icon = $("#theme-icon"); icon.removeClass("fa-moon fa-sun fa-display"); - switch (theme) { - case "light": - icon.addClass("fa-sun"); - break; - case "dark": - icon.addClass("fa-moon"); - break; - default: - icon.addClass("fa-display"); - break; - } + const iconMap = {light: "fa-sun", dark: "fa-moon", auto: "fa-display"}; + icon.addClass(iconMap[theme] || "fa-display"); } (function initSettings() { @@ -523,21 +514,9 @@ define(["jquery", "app/common", "stickytabs", "visibility", $("#theme-toggle").on("click", (e) => { e.preventDefault(); const currentTheme = localStorage.getItem("theme") || "auto"; - // eslint-disable-next-line no-useless-assignment - let newTheme = null; - // Cycle through: light -> dark -> auto -> light - switch (currentTheme) { - case "light": - newTheme = "dark"; - break; - case "dark": - newTheme = "auto"; - break; - default: - newTheme = "light"; - break; - } + const themeMap = {light: "dark", dark: "auto", auto: "light"}; + const newTheme = themeMap[currentTheme] || "light"; if (window.rspamd && window.rspamd.theme) { window.rspamd.theme.applyPreference(newTheme); diff --git a/interface/js/app/selectors.js b/interface/js/app/selectors.js index 6b287d6935..637a595253 100644 --- a/interface/js/app/selectors.js +++ b/interface/js/app/selectors.js @@ -90,18 +90,10 @@ define(["jquery", "app/common"], function toggleSidebar(side) { $("#sidebar-" + side).toggleClass("collapsed"); - let contentClass = "col-lg-6"; const openSidebarsCount = $("#sidebar-left").hasClass("collapsed") + $("#sidebar-right").hasClass("collapsed"); - switch (openSidebarsCount) { - case 1: - contentClass = "col-lg-9"; - break; - case 2: - contentClass = "col-lg-12"; - break; - default: - } + const layoutMap = {1: "col-lg-9", 2: "col-lg-12"}; + const contentClass = layoutMap[openSidebarsCount] || "col-lg-6"; $("#content").removeClass("col-lg-12 col-lg-9 col-lg-6") .addClass(contentClass); } diff --git a/interface/js/app/stats.js b/interface/js/app/stats.js index a236d8d4d0..42b1803760 100644 --- a/interface/js/app/stats.js +++ b/interface/js/app/stats.js @@ -223,16 +223,8 @@ define(["jquery", "app/common", "d3pie", "d3"], function addStatfiles(server, statfiles) { $.each(statfiles, (i, statfile) => { - let cls = ""; - switch (statfile.symbol) { - case "BAYES_SPAM": - cls = "symbol-positive"; - break; - case "BAYES_HAM": - cls = "symbol-negative"; - break; - default: - } + const symbolClassMap = {BAYES_SPAM: "symbol-positive", BAYES_HAM: "symbol-negative"}; + const cls = symbolClassMap[statfile.symbol] || ""; $("#bayesTable tbody").append("" + (i === 0 ? '' + server + "" : "") + '' + statfile.symbol + "" + -- 2.47.3