feat: add view mode and scope selectors to Display settings tab

Task: task-14 Settings dialog — view mode selector and scope toggle
This commit is contained in:
Brian Krabach
2026-03-31 00:40:51 -07:00
parent b2ff3613de
commit 200137a995
2 changed files with 37 additions and 0 deletions
+22
View File
@@ -1332,6 +1332,10 @@ function openSettings() {
if (hoverDelayEl) hoverDelayEl.value = String(settings.hoverPreviewDelay); if (hoverDelayEl) hoverDelayEl.value = String(settings.hoverPreviewDelay);
const gridColumnsEl = $('setting-grid-columns'); const gridColumnsEl = $('setting-grid-columns');
if (gridColumnsEl) gridColumnsEl.value = String(settings.gridColumns); if (gridColumnsEl) gridColumnsEl.value = String(settings.gridColumns);
const viewModeEl = $('setting-view-mode');
if (viewModeEl) viewModeEl.value = loadGridViewMode();
const viewScopeEl = $('setting-view-scope');
if (viewScopeEl) viewScopeEl.value = settings.viewPreferenceScope || 'local';
// Populate Notifications tab from display settings // Populate Notifications tab from display settings
const bellSoundEl = $('setting-bell-sound'); const bellSoundEl = $('setting-bell-sound');
@@ -1784,6 +1788,24 @@ function bindStaticEventListeners() {
on($('setting-font-size'), 'change', onDisplaySettingChange); on($('setting-font-size'), 'change', onDisplaySettingChange);
on($('setting-hover-delay'), 'change', onDisplaySettingChange); on($('setting-hover-delay'), 'change', onDisplaySettingChange);
on($('setting-grid-columns'), 'change', onDisplaySettingChange); on($('setting-grid-columns'), 'change', onDisplaySettingChange);
on($('setting-view-mode'), 'change', function() {
var el = $('setting-view-mode');
if (el) {
saveGridViewMode(el.value);
renderGrid(_currentSessions || []);
}
});
on($('setting-view-scope'), 'change', function() {
var el = $('setting-view-scope');
if (!el) return;
var newScope = el.value;
var currentMode = _gridViewMode;
var ds = loadDisplaySettings();
ds.viewPreferenceScope = newScope;
saveDisplaySettings(ds);
// Migrate current mode to new scope
saveGridViewMode(currentMode);
});
// Sessions settings — bind change events for server-side persistence // Sessions settings — bind change events for server-side persistence
on($('setting-default-session'), 'change', function() { on($('setting-default-session'), 'change', function() {
+15
View File
@@ -121,6 +121,21 @@
<option value="4">4</option> <option value="4">4</option>
</select> </select>
</div> </div>
<div class="settings-field">
<label class="settings-label" for="setting-view-mode">View Mode</label>
<select id="setting-view-mode" class="settings-select">
<option value="flat">Flat</option>
<option value="grouped">Grouped</option>
<option value="filtered">Filtered</option>
</select>
</div>
<div class="settings-field">
<label class="settings-label" for="setting-view-scope">View Scope</label>
<select id="setting-view-scope" class="settings-select">
<option value="local">Local</option>
<option value="server">Server</option>
</select>
</div>
</div> </div>
<div class="settings-panel hidden" data-tab="sessions"> <div class="settings-panel hidden" data-tab="sessions">
<div class="settings-field"> <div class="settings-field">