Pārlūkot izejas kodu

Added paththrow meeting to Vue.

Kain_Stropov 5 gadi atpakaļ
vecāks
revīzija
ee9ff32b40

+ 4 - 0
app/HttpModels/LobbyModel.php

@@ -8,6 +8,7 @@ class LobbyModel {
     public $name;
     public $isStrangerAccessible;
     public $isClientAccessible;
+    public $meetings = [];
 
     public function __construct(Lobby $lobby)
     {
@@ -15,5 +16,8 @@ class LobbyModel {
         $this->name = $lobby->name;
         $this->isStrangerAccessible = $lobby->is_stranger_accessible;
         $this->isClientAccessible = $lobby->is_client_accessible;
+        foreach ($lobby->meetings()->where('meeting.is_active',true)->get() as $meeting) {
+            $this->meetings[] = new MeetingModel($meeting);
+        }
     }
 }

+ 14 - 0
app/HttpModels/MeetingModel.php

@@ -0,0 +1,14 @@
+<?php
+namespace App\HttpModels;
+
+use App\Models\Meeting;
+
+class MeetingModel {
+    public $uid;
+    public $name;
+    
+    public function __construct(Meeting $meeting) {
+        $this->uid = $meeting->uid;
+        $this->name = $meeting->title;
+    }
+}

+ 2 - 3
app/HttpModels/ProModel.php

@@ -9,7 +9,7 @@ class ProModel {
     public $type;
     public $avatarFile;
     public $is_active_and_visible;
-    public $lobbies;
+    public $lobbies = [];
 
     public function __construct(Pro $pro)
     {
@@ -18,8 +18,7 @@ class ProModel {
         $this->type = $pro->pro_type;
         $this->avatarFile = $pro->profile_picture_base64;
         $this->is_active_and_visible = $pro->is_currently_clocked_in;
-        $this->lobbies = [];
-        foreach ($pro->lobbies as $lobby) {
+        foreach ($pro->lobbies()->where('lobby.is_active',true)->get() as $lobby) {
             $this->lobbies[] = new LobbyModel($lobby);
         }
     }

+ 5 - 0
app/Models/Lobby.php

@@ -8,4 +8,9 @@ class Lobby extends Model
 {
     
     protected $table = "lobby";
+
+    public function meetings()
+    {
+        return $this->hasMany(Meeting::class);
+    }
 }

+ 28 - 28
resources/js/components/pages/MeetingsAppRoot.vue

@@ -1,33 +1,33 @@
 <template>
     <v-app>
         <v-expansion-panels v-model="active_panel" tile hover multiple>
-                <v-expansion-panel class="no-v-padding">
-                    <v-expansion-panel-header>Lobby List</v-expansion-panel-header>
-                        <v-expansion-panel-content>
-                            <lobby-list></lobby-list>
-                        </v-expansion-panel-content>
-                </v-expansion-panel>
-
-                <v-expansion-panel>
-                    <v-expansion-panel-header>Meeting Room</v-expansion-panel-header>
-                        <v-expansion-panel-content>
-                            <meeting-room></meeting-room>
-                        </v-expansion-panel-content>
-                </v-expansion-panel>
-
-                <v-expansion-panel>
-                    <v-expansion-panel-header>Messenger</v-expansion-panel-header>
-                        <v-expansion-panel-content>
-                            <messenger></messenger>
-                        </v-expansion-panel-content>
-                </v-expansion-panel>
-
-                <v-expansion-panel>
-                    <v-expansion-panel-header>Settings</v-expansion-panel-header>
-                        <v-expansion-panel-content>
-                            <settings></settings>
-                        </v-expansion-panel-content>
-                </v-expansion-panel>
+            <v-expansion-panel class="no-v-padding">
+                <v-expansion-panel-header>Lobby List</v-expansion-panel-header>
+                <v-expansion-panel-content>
+                    <lobby-list></lobby-list>
+                </v-expansion-panel-content>
+            </v-expansion-panel>
+
+            <v-expansion-panel>
+                <v-expansion-panel-header>Meeting Room</v-expansion-panel-header>
+                <v-expansion-panel-content>
+                    <meeting-room></meeting-room>
+                </v-expansion-panel-content>
+            </v-expansion-panel>
+
+            <v-expansion-panel>
+                <v-expansion-panel-header>Messenger</v-expansion-panel-header>
+                <v-expansion-panel-content>
+                    <messenger></messenger>
+                </v-expansion-panel-content>
+            </v-expansion-panel>
+
+            <v-expansion-panel>
+                <v-expansion-panel-header>Settings</v-expansion-panel-header>
+                <v-expansion-panel-content>
+                    <settings></settings>
+                </v-expansion-panel-content>
+            </v-expansion-panel>
         </v-expansion-panels>
         <call-bubble :call="incomingCallDetails"></call-bubble>
     </v-app>
@@ -102,7 +102,7 @@ export default {
         this.$socket.emit("userData", { user: this.userProp });
 
         lobbies.map(x => {
-            (x.selected_meeting = null), (x.meetings = []);
+            x.selected_meeting = null;
         });
 
         this.$store.commit("setInitialUser", this.userProp);