From 17dd7107ee0a9cd4a15567b3ecc37d91398b3da3 Mon Sep 17 00:00:00 2001 From: isaacclad Date: Thu, 2 Jul 2026 00:13:50 +0000 Subject: [PATCH] Always show Programme in the live room More menu. Use programme.svg for conferences and webinars on mobile and desktop; the panel stays available with an empty state when Events has not linked a lineup yet. Co-authored-by: Cursor --- public/images/meet-icons/programme.svg | 2 + resources/js/meet-room.js | 6 ++ .../meet/room/partials/meet-icon.blade.php | 1 + .../room/partials/programme-panel.blade.php | 3 +- resources/views/meet/room/show.blade.php | 58 +++++------ tests/Feature/MeetWebTest.php | 98 ++++++++++++++++++- 6 files changed, 130 insertions(+), 38 deletions(-) create mode 100644 public/images/meet-icons/programme.svg diff --git a/public/images/meet-icons/programme.svg b/public/images/meet-icons/programme.svg new file mode 100644 index 0000000..12c008d --- /dev/null +++ b/public/images/meet-icons/programme.svg @@ -0,0 +1,2 @@ + + diff --git a/resources/js/meet-room.js b/resources/js/meet-room.js index 620e5c2..aeb084f 100644 --- a/resources/js/meet-room.js +++ b/resources/js/meet-room.js @@ -48,6 +48,7 @@ function meetRoom() { waitingCount: 0, isWebinar: false, isConference: false, + sessionNounLabel: '', isGreenRoom: false, goingLive: false, presenterRefs: [], @@ -148,6 +149,7 @@ function meetRoom() { this.inBreakout = el.dataset.inBreakout === '1'; this.isWebinar = el.dataset.isWebinar === '1'; this.isConference = el.dataset.isConference === '1'; + this.sessionNounLabel = el.dataset.sessionNoun || ''; this.isGreenRoom = el.dataset.isGreenRoom === '1'; this.audioOnly = el.dataset.audioOnly === '1'; this.isSpace = el.dataset.isSpace === '1'; @@ -2082,6 +2084,10 @@ function meetRoom() { }, sessionNoun() { + if (this.sessionNounLabel) { + return this.sessionNounLabel; + } + return this.isConference ? 'conference' : 'meeting'; }, diff --git a/resources/views/meet/room/partials/meet-icon.blade.php b/resources/views/meet/room/partials/meet-icon.blade.php index 39bfb8d..eace17f 100644 --- a/resources/views/meet/room/partials/meet-icon.blade.php +++ b/resources/views/meet/room/partials/meet-icon.blade.php @@ -17,6 +17,7 @@ 'share', 'start-breakout', 'upload-file', + 'programme', ]; $iconName = in_array($icon, $allowed, true) ? $icon : null; $iconPath = $iconName ? public_path('images/meet-icons/'.$iconName.'.svg') : null; diff --git a/resources/views/meet/room/partials/programme-panel.blade.php b/resources/views/meet/room/partials/programme-panel.blade.php index 25796bb..84de961 100644 --- a/resources/views/meet/room/partials/programme-panel.blade.php +++ b/resources/views/meet/room/partials/programme-panel.blade.php @@ -1,6 +1,7 @@ @php $programme = $programmeSnapshot ?? null; $linkedItems = $linkedProgrammeItems ?? []; + $sessionNoun = $sessionNoun ?? 'session'; @endphp @if(is_array($programme) && ! empty($programme['days'])) @@ -62,5 +63,5 @@ @endforeach @else -

No programme linked to this conference yet.

+

No programme linked to this {{ $sessionNoun }} yet.

@endif diff --git a/resources/views/meet/room/show.blade.php b/resources/views/meet/room/show.blade.php index 3e4c36a..dffc0a2 100644 --- a/resources/views/meet/room/show.blade.php +++ b/resources/views/meet/room/show.blade.php @@ -25,9 +25,12 @@ 'avatar_url' => $roomHostUser?->avatarUrl(), ]; $isConferenceSession = $isConference ?? false; - $sessionNoun = $isConferenceSession ? 'conference' : 'meeting'; - $sessionNounTitle = $isConferenceSession ? 'Conference' : 'Meeting'; - $hasProgramme = is_array($programmeSnapshot ?? null) && ! empty(($programmeSnapshot ?? [])['days']); + $sessionNoun = match (true) { + $isConferenceSession => 'conference', + $room->isWebinar() => 'webinar', + default => 'meeting', + }; + $sessionNounTitle = ucfirst($sessionNoun); @endphp + +