From 3b8543ff442d7b0ebd934c24962f967f10bfc59a Mon Sep 17 00:00:00 2001 From: Brian Krabach Date: Wed, 15 Apr 2026 19:19:09 -0700 Subject: [PATCH] feat: remove hidden sessions section from settings panel (task-12) Remove the Hidden Sessions checkbox list from the Sessions settings tab. The feature is superseded by the Hidden view + tile flyout (Phase 3), which is accessible via the sidebar view dropdown. Changes: - muxplex/frontend/index.html: Remove #setting-hidden-sessions div block - muxplex/frontend/app.js: Remove hidden sessions checkbox population block from openSettings() and delegated change handler from bindStaticEventListeners() - muxplex/tests/test_frontend_html.py: Remove old test_html_sessions_panel_has_hidden_sessions_container (for removed element); add test_no_hidden_sessions_checkbox_list_in_settings asserting element no longer exists - muxplex/tests/test_frontend_js.py: Remove test_bind_static_event_listeners_uses_delegated_handler_for_hidden_sessions and test_settings_hidden_sessions_uses_session_key (for removed JS code) --- muxplex/frontend/app.js | 35 --------------------------- muxplex/frontend/index.html | 4 ---- muxplex/tests/test_frontend_html.py | 26 ++++++++++---------- muxplex/tests/test_frontend_js.py | 37 ----------------------------- 4 files changed, 14 insertions(+), 88 deletions(-) diff --git a/muxplex/frontend/app.js b/muxplex/frontend/app.js index 56d614e..7049a77 100644 --- a/muxplex/frontend/app.js +++ b/muxplex/frontend/app.js @@ -2230,27 +2230,6 @@ function openSettings() { sortOrderEl.value = ss.sort_order; } - // Hidden sessions checkboxes - const hiddenSessionsEl = $('setting-hidden-sessions'); - if (hiddenSessionsEl) { - hiddenSessionsEl.innerHTML = ''; - const hiddenList = (ss && ss.hidden_sessions) || []; - (_currentSessions || []).forEach(function(s) { - const name = s.name || ''; - const sessionKey = s.sessionKey || name; - const item = document.createElement('label'); - item.className = 'settings-checkbox-item'; - const cb = document.createElement('input'); - cb.type = 'checkbox'; - cb.className = 'settings-checkbox'; - cb.value = sessionKey; - cb.checked = hiddenList.includes(sessionKey) || hiddenList.includes(name); - item.appendChild(cb); - item.appendChild(document.createTextNode(' ' + name)); - hiddenSessionsEl.appendChild(item); - }); - } - // Window size largest const windowSizeEl = $('setting-window-size-largest'); if (windowSizeEl) { @@ -2973,20 +2952,6 @@ function bindStaticEventListeners() { if (el) patchServerSetting('auto_open_created', el.checked); }); - // Hidden sessions — delegated handler on container (checkboxes are dynamic) - var hiddenSessionsContainer = $('setting-hidden-sessions'); - if (hiddenSessionsContainer) { - hiddenSessionsContainer.addEventListener('change', function(e) { - var cb = e.target.closest('input[type="checkbox"]'); - if (!cb) return; - var hidden = []; - hiddenSessionsContainer.querySelectorAll('input[type="checkbox"]').forEach(function(c) { - if (c.checked) hidden.push(c.value); - }); - patchServerSetting('hidden_sessions', hidden); - }); - } - // Notifications settings — bell sound toggle persists to server settings on($('setting-bell-sound'), 'change', function() { if (_serverSettings) _serverSettings.bellSound = this.checked; diff --git a/muxplex/frontend/index.html b/muxplex/frontend/index.html index be14adc..6e31fcf 100644 --- a/muxplex/frontend/index.html +++ b/muxplex/frontend/index.html @@ -201,10 +201,6 @@ -
- -
-