From 9b5d8ac9b1e486abf1e8cec17e4285e10595a732 Mon Sep 17 00:00:00 2001 From: Andreas Wrede Date: Mon, 11 May 2026 07:38:56 -0400 Subject: [PATCH] fix: replace channel checkboxes in Users table with multi-select The per-user notification channel selector in the admin settings Users section was a column of checkboxes; replaced with a - - {% for ch in all_channel_names %} - - {% endfor %} + + @@ -847,7 +847,7 @@ full_name: row.querySelector('.user-full-name').value, avatar: row.querySelector('.user-avatar').value, admin: row.querySelector('.user-admin').checked, - notification_channels: [...row.querySelectorAll('.user-ch:checked')].map(cb => cb.value), + notification_channels: [...(row.querySelector('.user-ch-select')?.selectedOptions || [])].map(o => o.value), }; const pw = row.querySelector('.user-password').value; if (pw) entry.password = pw; @@ -861,7 +861,7 @@ full_name: row.querySelector('.user-full-name').value, avatar: row.querySelector('.user-avatar').value, admin: row.querySelector('.user-admin').checked, - notification_channels: [...row.querySelectorAll('.user-ch:checked')].map(cb => cb.value), + notification_channels: [...(row.querySelector('.user-ch-select')?.selectedOptions || [])].map(o => o.value), }; const pw = row.querySelector('.user-password').value; if (pw) entry.password = pw; @@ -974,9 +974,8 @@ function addUserRow() { const tbody = document.getElementById('users-tbody'); - const chHtml = _allChannels.map(ch => - `` - ).join(''); + const opts = _allChannels.map(ch => ``).join(''); + const chHtml = ``; const row = document.createElement('tr'); row.setAttribute('data-new-user', 'true'); row.innerHTML = `