diff --git a/public/images/meet-icons/chat.svg b/public/images/meet-icons/chat.svg new file mode 100644 index 0000000..f76b49c --- /dev/null +++ b/public/images/meet-icons/chat.svg @@ -0,0 +1,2 @@ + + diff --git a/public/images/meet-icons/close-breakout.svg b/public/images/meet-icons/close-breakout.svg new file mode 100644 index 0000000..c028f2f --- /dev/null +++ b/public/images/meet-icons/close-breakout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/meet-icons/lock.svg b/public/images/meet-icons/lock.svg new file mode 100644 index 0000000..0ee6026 --- /dev/null +++ b/public/images/meet-icons/lock.svg @@ -0,0 +1,2 @@ + + diff --git a/public/images/meet-icons/react.svg b/public/images/meet-icons/react.svg new file mode 100644 index 0000000..5562a9e --- /dev/null +++ b/public/images/meet-icons/react.svg @@ -0,0 +1,2 @@ + + diff --git a/public/images/meet-icons/share.svg b/public/images/meet-icons/share.svg new file mode 100644 index 0000000..a1b699f --- /dev/null +++ b/public/images/meet-icons/share.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/meet-icons/start-breakout.svg b/public/images/meet-icons/start-breakout.svg new file mode 100644 index 0000000..71f2517 --- /dev/null +++ b/public/images/meet-icons/start-breakout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/meet-icons/upload-file.svg b/public/images/meet-icons/upload-file.svg index e2f7351..55a0bf3 100644 --- a/public/images/meet-icons/upload-file.svg +++ b/public/images/meet-icons/upload-file.svg @@ -1,4 +1,2 @@ - - - + diff --git a/resources/js/meet-room.js b/resources/js/meet-room.js index 642708c..bb84fa8 100644 --- a/resources/js/meet-room.js +++ b/resources/js/meet-room.js @@ -31,6 +31,9 @@ function meetRoom() { chatInput: '', shareOpen: false, shareCopied: false, + breakoutModalOpen: false, + breakoutCount: '4', + endMeetingConfirmOpen: false, joinUrl: '', passcode: '', roomTitle: '', @@ -446,18 +449,54 @@ function meetRoom() { async createBreakouts() { if (!this.isHost || !this.config.breakoutsCreateUrl) return; - const count = parseInt(prompt('Number of breakout rooms?', '4') || '0', 10); - if (!count) return; + this.breakoutCount = '4'; + this.breakoutModalOpen = true; + this.featuresOpen = false; + }, + + async submitBreakouts() { + if (!this.isHost || !this.config.breakoutsCreateUrl) return; + + const count = parseInt(this.breakoutCount, 10); + if (!count || count < 1) return; + await fetch(this.config.breakoutsCreateUrl, { method: 'POST', headers: this.headers(), body: JSON.stringify({ count }), }); + + this.breakoutModalOpen = false; }, async closeBreakouts() { if (!this.isHost || !this.config.breakoutsCloseUrl) return; await fetch(this.config.breakoutsCloseUrl, { method: 'POST', headers: this.headers() }); + this.featuresOpen = false; + }, + + openUploadPicker() { + document.getElementById('meet-file-input')?.click(); + this.featuresOpen = false; + }, + + async toggleRecordingFromMenu() { + await this.toggleRecording(); + this.featuresOpen = false; + }, + + async toggleLockFromMenu() { + await this.toggleLock(); + this.featuresOpen = false; + }, + + openEndMeetingConfirm() { + this.endMeetingConfirmOpen = true; + }, + + submitEndMeeting() { + document.getElementById('meet-end-form')?.requestSubmit(); + this.endMeetingConfirmOpen = false; }, async uploadFile(event) { diff --git a/resources/views/components/meet/room/menu-item.blade.php b/resources/views/components/meet/room/menu-item.blade.php new file mode 100644 index 0000000..cfc4db6 --- /dev/null +++ b/resources/views/components/meet/room/menu-item.blade.php @@ -0,0 +1,17 @@ +@props(['icon' => null, 'title', 'subtitle' => null]) + + diff --git a/resources/views/meet/room/show.blade.php b/resources/views/meet/room/show.blade.php index a2c0fbe..e655739 100644 --- a/resources/views/meet/room/show.blade.php +++ b/resources/views/meet/room/show.blade.php @@ -63,7 +63,7 @@ REC @@ -110,7 +110,7 @@ @@ -187,7 +187,7 @@ - - @if ($participant->isHost()) - - - @endif @if ($participant->isHost()) -
+ + @csrf -
@endif @@ -261,27 +244,37 @@
+ + @if ($participant->isHost()) - - + + + + @endif
@@ -308,6 +301,43 @@

+ +
+
+

Start breakout rooms

+

How many breakout rooms should be created?

+
+
+ + +
+
+ + +
+
+
+
+ +
+
+

End meeting for everyone?

+

All participants will be disconnected and the session will close.

+
+ + +
+
+