Refine Jitsi report edit-mode controls

This commit is contained in:
Scott Idem
2026-05-06 12:10:41 -04:00
parent 7497bfb9f8
commit 392217e66c
2 changed files with 7 additions and 25 deletions

View File

@@ -483,8 +483,7 @@ Both modes use the same filtered data set — switching views does not reset fil
| Filter | Default | Logic |
| --- | --- | --- |
| **Real meetings only** | off | Show only sessions where `real_participant_count >= 2` OR `duration > 5 min`. Applied **after** staff exclusion (see below). |
| **Min. Participants** | 0 | Minimum `real_participant_count` to display a session. |
| **Min. Participants** | 2 | Minimum `real_participant_count` to display a session. Used as the only size filter. |
| **Room Name** | edit mode only | Case-insensitive substring match against `room_name`. Hidden unless AE global edit mode is on. |
| **From / To** | last 60 days / today | Date range applied to `start_time`. "To" date includes the full end of day. |

View File

@@ -200,15 +200,13 @@ let meetings_enriched = $derived<MeetingReportEnriched[]>(
let group_by_room = $state(true);
// --- Filter state ---
let filter_real_only = $state(false);
let filter_min_participants = $state(0);
let filter_min_participants = $state(2);
let filter_room_name = $state('');
let filter_date_from = $state(default_filter_date_from);
let filter_date_to = $state(default_filter_date_to);
let filters_are_modified = $derived(
filter_real_only ||
filter_min_participants !== 0 ||
filter_min_participants !== 2 ||
(filter_room_name !== '' && $ae_loc.edit_mode) ||
show_excluded_uuids ||
show_all_meetings ||
@@ -217,8 +215,7 @@ let filters_are_modified = $derived(
);
function reset_filters() {
filter_real_only = false;
filter_min_participants = 0;
filter_min_participants = 2;
filter_room_name = '';
show_excluded_uuids = false;
show_all_meetings = false;
@@ -258,10 +255,6 @@ let meetings_filtered = $derived.by(() => {
return false;
}
}
if (filter_real_only) {
const dur_secs = parse_duration_seconds(m.final_duration);
if (m.real_participant_count < 2 && dur_secs <= 300) return false;
}
if (m.real_participant_count < filter_min_participants) return false;
if ($ae_loc.edit_mode && filter_room_name) {
if (
@@ -478,8 +471,8 @@ function export_json() {
</div>
</div>
<!-- Jitsi URL Builder — trusted_access only -->
{#if $ae_loc.trusted_access}
<!-- Jitsi URL Builder — edit mode only -->
{#if $ae_loc.edit_mode && $ae_loc.trusted_access}
<div
class="bg-surface-100-900 border-surface-200-800 overflow-hidden rounded-xl border">
<button
@@ -507,16 +500,6 @@ function export_json() {
<!-- Filter bar -->
<div
class="bg-surface-100-900 border-surface-200-800 flex flex-row flex-wrap items-end gap-3 rounded-xl border p-3">
<!-- Real meetings only toggle -->
<label class="flex cursor-pointer items-center gap-2 self-end pb-1.5">
<input
type="checkbox"
bind:checked={filter_real_only}
class="checkbox checkbox-sm" />
<span class="text-sm font-medium whitespace-nowrap"
>Real meetings only</span>
</label>
<div class="bg-surface-200-800 hidden h-8 w-px self-end sm:block"></div>
{#if $ae_loc.edit_mode}
<label class="flex cursor-pointer items-center gap-2 self-end pb-1.5">
<input
@@ -600,7 +583,7 @@ function export_json() {
{/if}
</div>
{#if exclude_uuids.length > 0 || known_meetings.length > 0}
{#if $ae_loc.edit_mode && (exclude_uuids.length > 0 || known_meetings.length > 0)}
<div class="bg-surface-100-900 border-surface-200-800 rounded-xl border p-3">
<div class="mb-2 text-xs tracking-wide uppercase opacity-50">
Active Exclusions