Commit 92c6232a67aef70c207ed471199bca058036c700

Authored by Shikha Mishra
1 parent b6e4f6eaad

password required and loader issue solved

Showing 1 changed file with 10 additions and 2 deletions   Show diff stats
src/pages/Dashboard/LiveOnlineClass.vue
1 <template> 1 <template>
2 <div class="body-color"> 2 <div class="body-color">
3 <!-- LOADER --> 3 <!-- LOADER -->
4 <div class="loader" v-if="showLoader"> 4 <div class="loader" v-if="showLoader">
5 <v-progress-circular indeterminate color="white"></v-progress-circular> 5 <v-progress-circular indeterminate color="white"></v-progress-circular>
6 </div> 6 </div>
7 7
8 <!-- SNACKBAR --> 8 <!-- SNACKBAR -->
9 <v-snackbar 9 <v-snackbar
10 :timeout="timeout" 10 :timeout="timeout"
11 :top="y === 'top'" 11 :top="y === 'top'"
12 :right="x === 'right'" 12 :right="x === 'right'"
13 :vertical="mode === 'vertical'" 13 :vertical="mode === 'vertical'"
14 v-model="snackbar" 14 v-model="snackbar"
15 :color="snackbarColor" 15 :color="snackbarColor"
16 > 16 >
17 {{ text }} 17 {{ text }}
18 <v-spacer></v-spacer> 18 <v-spacer></v-spacer>
19 <v-btn flat text @click="snackbar = false">X</v-btn> 19 <v-btn flat text @click="snackbar = false">X</v-btn>
20 </v-snackbar> 20 </v-snackbar>
21 21
22 <v-container grid-list-xl class="pt-0"> 22 <v-container grid-list-xl class="pt-0">
23 <v-layout row wrap class="mt-1"> 23 <v-layout row wrap class="mt-1">
24 <!-- if logged in user is parent --> 24 <!-- if logged in user is parent -->
25 <v-flex xs12 sm12 md9 v-if=" $store.state.role === 'PARENT' "> 25 <v-flex xs12 sm12 md9 v-if=" $store.state.role === 'PARENT' ">
26 <v-layout column> 26 <v-layout column>
27 <!-- HEADING --> 27 <!-- HEADING -->
28 <v-flex> 28 <v-flex>
29 <div 29 <div
30 class="title side-bar-color font-weight-bold" 30 class="title side-bar-color font-weight-bold"
31 >Live Online Classes - {{$route.query.chapterName}}</div> 31 >Live Online Classes - {{$route.query.chapterName}}</div>
32 <!-- <div class="subheading grey--text lighten-1">{{liveLink}}</div> --> 32 <!-- <div class="subheading grey--text lighten-1">{{liveLink}}</div> -->
33 <!-- <div 33 <!-- <div
34 class="subheading grey--text lighten-1" 34 class="subheading grey--text lighten-1"
35 >The session started at 1:00 there is 1 moderator</div>--> 35 >The session started at 1:00 there is 1 moderator</div>-->
36 </v-flex> 36 </v-flex>
37 37
38 <!-- JOIN OR END SESSION --> 38 <!-- JOIN OR END SESSION -->
39 <v-flex> 39 <v-flex>
40 <div> 40 <div>
41 <v-btn 41 <v-btn
42 round 42 round
43 class="open-dialog-button" 43 class="open-dialog-button"
44 dark 44 dark
45 v-if="studentBtn" 45 v-if="studentBtn"
46 @click="showLoader = true;startChat();" 46 @click="showLoader = true;startChat();"
47 >{{studentBtn}}</v-btn> 47 >{{studentBtn}}</v-btn>
48 <span class="subheading grey--twxt lighten-1" v-else>Session hasnt started yet</span> 48 <span class="subheading grey--twxt lighten-1" v-else>Session hasnt started yet</span>
49 </div> 49 </div>
50 </v-flex> 50 </v-flex>
51 <v-flex id="studentClone"> 51 <v-flex id="studentClone">
52 <div id="jitsi-container"></div> 52 <div id="jitsi-container"></div>
53 </v-flex> 53 </v-flex>
54 </v-layout> 54 </v-layout>
55 </v-flex> 55 </v-flex>
56 56
57 <!-- if logged in user is teacher --> 57 <!-- if logged in user is teacher -->
58 <v-flex xs12 sm12 md12 v-else> 58 <v-flex xs12 sm12 md12 v-else>
59 <v-layout column> 59 <v-layout column>
60 <!-- HEADING --> 60 <!-- HEADING -->
61 <v-flex> 61 <v-flex>
62 <div 62 <div
63 class="title side-bar-color font-weight-bold" 63 class="title side-bar-color font-weight-bold"
64 >Live Online Classes - {{$route.query.chapterName}}</div> 64 >Live Online Classes - {{$route.query.chapterName}}</div>
65 <!-- <div class="subheading grey--text lighten-1"></div> --> 65 <!-- <div class="subheading grey--text lighten-1"></div> -->
66 <!-- <div 66 <!-- <div
67 class="subheading grey--text lighten-1" 67 class="subheading grey--text lighten-1"
68 >The session started at 1:00 there is 1 moderator</div>--> 68 >The session started at 1:00 there is 1 moderator</div>-->
69 </v-flex> 69 </v-flex>
70 70
71 <!-- JOIN OR END SESSION --> 71 <!-- JOIN OR END SESSION -->
72 <v-flex> 72 <v-flex v-if="showStartSessionButton">
73 <div> 73 <div>
74 <v-btn 74 <v-btn
75 round 75 round
76 class="open-dialog-button" 76 class="open-dialog-button"
77 dark 77 dark
78 @click="showLoader = true;startChat()" 78 @click="showLoader = true;startChat()"
79 >Start Session</v-btn> 79 >Start Session</v-btn>
80 </div> 80 </div>
81 </v-flex> 81 </v-flex>
82 <v-flex id="teacherClone"> 82 <v-flex id="teacherClone">
83 <div id="jitsi-container"></div> 83 <div id="jitsi-container"></div>
84 </v-flex> 84 </v-flex>
85 </v-layout> 85 </v-layout>
86 </v-flex> 86 </v-flex>
87 87
88 <v-spacer></v-spacer> 88 <v-spacer></v-spacer>
89 89
90 <!-- COURSES SIDE BAR- positioned to the right of the page --> 90 <!-- COURSES SIDE BAR- positioned to the right of the page -->
91 <!-- <v-flex xs3> 91 <!-- <v-flex xs3>
92 <v-card class="elevation-0 card-border" height="100%"> 92 <v-card class="elevation-0 card-border" height="100%">
93 <CoursesSideBar></CoursesSideBar> 93 <CoursesSideBar></CoursesSideBar>
94 </v-card> 94 </v-card>
95 </v-flex>--> 95 </v-flex>-->
96 </v-layout> 96 </v-layout>
97 </v-container> 97 </v-container>
98 </div> 98 </div>
99 </template> 99 </template>
100 <script> 100 <script>
101 import AllApiCalls from "@/Services/AllApiCalls.js"; 101 import AllApiCalls from "@/Services/AllApiCalls.js";
102 import http from "@/Services/http.js"; 102 import http from "@/Services/http.js";
103 import moment from "moment"; 103 import moment from "moment";
104 import Meet from "@/pages/Meet/meet.vue"; 104 import Meet from "@/pages/Meet/meet.vue";
105 import CoursesSideBar from "@/pages/Common/CoursesSideBar.vue"; 105 import CoursesSideBar from "@/pages/Common/CoursesSideBar.vue";
106 export default { 106 export default {
107 mixins: [AllApiCalls], 107 mixins: [AllApiCalls],
108 components: { 108 components: {
109 CoursesSideBar, 109 CoursesSideBar,
110 }, 110 },
111 data() { 111 data() {
112 return { 112 return {
113 startLiveSession: "", 113 startLiveSession: "",
114 studentBtn: "", 114 studentBtn: "",
115 115
116 // DATA TABLE 116 // DATA TABLE
117 search: "", 117 search: "",
118 pagination: { 118 pagination: {
119 rowsPerPage: 10, 119 rowsPerPage: 10,
120 }, 120 },
121 liveOnlineHeaders: [ 121 liveOnlineHeaders: [
122 { 122 {
123 text: "Playback", 123 text: "Playback",
124 value: "attachementUrl", 124 value: "attachementUrl",
125 sortable: false, 125 sortable: false,
126 align: "center", 126 align: "center",
127 }, 127 },
128 { 128 {
129 text: "Meeting", 129 text: "Meeting",
130 align: "center", 130 align: "center",
131 sortable: false, 131 sortable: false,
132 value: "", 132 value: "",
133 }, 133 },
134 { 134 {
135 text: "Recording", 135 text: "Recording",
136 value: "", 136 value: "",
137 sortable: false, 137 sortable: false,
138 align: "center", 138 align: "center",
139 }, 139 },
140 { 140 {
141 text: "Description Preview", 141 text: "Description Preview",
142 value: "", 142 value: "",
143 sortable: false, 143 sortable: false,
144 align: "center", 144 align: "center",
145 }, 145 },
146 { text: "Date", value: "", sortable: false, align: "center" }, 146 { text: "Date", value: "", sortable: false, align: "center" },
147 { text: "Duration", value: "", sortable: false, align: "center" }, 147 { text: "Duration", value: "", sortable: false, align: "center" },
148 { text: "Toolbar", value: "", sortable: false, align: "center" }, 148 { text: "Toolbar", value: "", sortable: false, align: "center" },
149 ], 149 ],
150 liveOnlineItems: [], 150 liveOnlineItems: [],
151 151
152 // JITSI CONTAINER 152 // JITSI CONTAINER
153 liveLink: "", 153 liveLink: "",
154 token: "", 154 token: "",
155 selectStudents: {}, 155 selectStudents: {},
156 classRules: [(v) => !!v || " Class Name is required"], 156 classRules: [(v) => !!v || " Class Name is required"],
157 sectionRules: [(v) => !!v || " Section Name is required"], 157 sectionRules: [(v) => !!v || " Section Name is required"],
158 addclass: [], 158 addclass: [],
159 addSection: [], 159 addSection: [],
160 loading: false, 160 loading: false,
161 room: "", 161 room: "",
162 username: "", 162 username: "",
163 roomPassword: "", 163 roomPassword: "",
164 counter: 0, 164 counter: 0,
165 appLink: "", 165 appLink: "",
166 showStartSessionButton: true,
166 }; 167 };
167 }, 168 },
168 methods: { 169 methods: {
169 async startChat() { 170 async startChat() {
170 if (this.$store.state.role === "PARENT") { 171 if (this.$store.state.role === "PARENT") {
171 if (this.counter == 0) { 172 if (this.counter == 0) {
172 // console.log("enter start chat"); 173 // console.log("enter start chat");
173 const isMobile = /iPhone|iPad|iPod|Android/i.test( 174 const isMobile = /iPhone|iPad|iPod|Android/i.test(
174 navigator.userAgent 175 navigator.userAgent
175 ); 176 );
176 if (isMobile) { 177 if (isMobile) {
177 // console.log("==PARENT=appLink==", this.appLink); 178 // console.log("==PARENT=appLink==", this.appLink);
178 window.open(this.appLink); 179 window.open(this.appLink);
180 this.showLoader = false;
179 } else { 181 } else {
180 this.startConference(); 182 this.startConference();
181 this.counter += 1; 183 this.counter += 1;
182 } 184 }
183 } 185 }
184 } 186 }
185 if (this.$store.state.role === "TEACHER") { 187 if (this.$store.state.role === "TEACHER") {
186 if (this.counter == 0) { 188 if (this.counter == 0) {
187 this.createRoom(); 189 this.createRoom();
188 this.counter += 1; 190 this.counter += 1;
189 } 191 }
190 } 192 }
191 }, 193 },
192 // JITSI CONTAINER 194 // JITSI CONTAINER
193 startConference() { 195 startConference() {
194 // console.log("yes session started"); 196 // console.log("yes session started");
195 var _this = this; 197 var _this = this;
196 try { 198 try {
197 const domain = "meet.intrack.in"; 199 const domain = "meet.intrack.in";
198 const options = { 200 const options = {
199 audioInput: "<deviceLabel>", 201 audioInput: "<deviceLabel>",
200 audioOutput: "<deviceLabel>", 202 audioOutput: "<deviceLabel>",
201 videoInput: "<deviceLabel>", 203 videoInput: "<deviceLabel>",
202 prejoinPageEnabled: false, 204 prejoinPageEnabled: false,
203 roomName: this.room, 205 roomName: this.room,
204 height: 500, 206 height: 500,
205 parentNode: document.getElementById("jitsi-container"), 207 parentNode: document.getElementById("jitsi-container"),
206 interfaceConfigOverwrite: { 208 interfaceConfigOverwrite: {
207 filmStripOnly: false, 209 filmStripOnly: false,
208 SHOW_PROMOTIONAL_CLOSE_PAGE: false, 210 SHOW_PROMOTIONAL_CLOSE_PAGE: false,
209 SHOW_POWERED_BY: false, 211 SHOW_POWERED_BY: false,
210 SHOW_JITSI_WATERMARK: false, 212 SHOW_JITSI_WATERMARK: false,
211 TOOLBAR_BUTTONS: [ 213 TOOLBAR_BUTTONS: [
212 "microphone", 214 "microphone",
213 "camera", 215 "camera",
214 "closedcaptions", 216 "closedcaptions",
215 "desktop", 217 "desktop",
216 "fullscreen", 218 "fullscreen",
217 "fodeviceselection", 219 "fodeviceselection",
218 "hangup", 220 "hangup",
219 "profile", 221 "profile",
220 "info", 222 "info",
221 "chat", 223 "chat",
222 "recording", 224 "recording",
223 "livestreaming", 225 "livestreaming",
224 "etherpad", 226 "etherpad",
225 "sharedvideo", 227 "sharedvideo",
226 "settings", 228 "settings",
227 "raisehand", 229 "raisehand",
228 "videoquality", 230 "videoquality",
229 "filmstrip", 231 "filmstrip",
230 "invite", 232 "invite",
231 "feedback", 233 "feedback",
232 "stats", 234 "stats",
233 "shortcuts", 235 "shortcuts",
234 "tileview", 236 "tileview",
235 ], 237 ],
236 }, 238 },
237 configOverwrite: { 239 configOverwrite: {
238 disableSimulcast: false, 240 disableSimulcast: false,
239 }, 241 },
240 teacherName: "", 242 teacherName: "",
241 room: "", 243 room: "",
242 }; 244 };
243 _this.api = new JitsiMeetExternalAPI(domain, options); 245 _this.api = new JitsiMeetExternalAPI(domain, options);
244 // console.log("this.api ", this.api); 246 // console.log("this.api ", this.api);
245 _this.api.addEventListener("videoConferenceJoined", () => { 247 _this.api.addEventListener("videoConferenceJoined", () => {
246 this.showLoader = false; 248 this.showLoader = false;
247 setTimeout(() => { 249 setTimeout(() => {
248 _this.api.executeCommand("displayName", _this.username); 250 _this.api.executeCommand("displayName", _this.username);
249 _this.api.executeCommand("password", _this.roomPassword); 251 _this.api.executeCommand("password", _this.roomPassword);
250 }, 1000); 252 }, 1000);
251 }); 253 });
252 254
253 _this.api.on("readyToClose", () => { 255 _this.api.on("readyToClose", () => {
254 this.$router.push({ name: "Refresh" }); 256 // this.$router.push({ name: "Refresh" });
257 let jitsi = document.getElementById("jitsi-container");
258 jitsi.innerHTML = "";
259 this.showStartSessionButton = true;
255 }); 260 });
256 } catch (error) { 261 } catch (error) {
257 // console.error("Failed to load Jitsi API", error); 262 // console.error("Failed to load Jitsi API", error);
258 } 263 }
259 }, 264 },
260 openRoom() { 265 openRoom() {
261 // verify the JitsiMeetExternalAPI constructor is added to the global.. 266 // verify the JitsiMeetExternalAPI constructor is added to the global..
262 // if (this.teacherName != "" || this.room != "") { 267 // if (this.teacherName != "" || this.room != "") {
263 // if (window.JitsiMeetExternalAPI) { 268 // if (window.JitsiMeetExternalAPI) {
264 // // var person = prompt("Please enter your name:", "Rabie"); 269 // // var person = prompt("Please enter your name:", "Rabie");
265 // if (person != null || person != "") this.username = this.teacherName; 270 // if (person != null || person != "") this.username = this.teacherName;
266 // var room = prompt("Please enter your room:", "Test Room"); 271 // var room = prompt("Please enter your room:", "Test Room");
267 // if (room != null || room != "") this.room = this.room; 272 // if (room != null || room != "") this.room = this.room;
268 // this.startConference(); 273 // this.startConference();
269 // } else alert("Jitsi Meet API script not loaded"); 274 // } else alert("Jitsi Meet API script not loaded");
270 // } 275 // }
271 }, 276 },
272 277
273 createRoom(classId) { 278 createRoom(classId) {
274 // this.showLoader = true; 279 // this.showLoader = true;
275 var classId = { 280 var classId = {
276 classId: classId, 281 classId: classId,
277 }; 282 };
278 http() 283 http()
279 .post("/createLiveClasses", { 284 .post("/createLiveClasses", {
280 classId: this.$route.query.classId, 285 classId: this.$route.query.classId,
281 courseId: this.$route.query.courseId, 286 courseId: this.$route.query.courseId,
282 chapterId: this.$route.query.chapterId, 287 chapterId: this.$route.query.chapterId,
283 }) 288 })
284 .then((response) => { 289 .then((response) => {
285 // this.addSection = response.data.data; 290 // this.addSection = response.data.data;
286 // console.log("CREATE___ROOOM", response.data); 291 // console.log("CREATE___ROOOM", response.data);
287 var room = response.data.data.roomName; 292 var room = response.data.data.roomName;
288 var username = localStorage.getItem("teacherName"); 293 var username = localStorage.getItem("teacherName");
289 var roomPassword = response.data.data.password; 294 var roomPassword = response.data.data.password;
290 this.appLink = response.data.data.appLink; 295 this.appLink = response.data.data.appLink;
291 // console.log( 296 // console.log(
292 // "room", 297 // "room",
293 // room, 298 // room,
294 // "username", 299 // "username",
295 // username, 300 // username,
296 // "roomPassword", 301 // "roomPassword",
297 // roomPassword 302 // roomPassword
298 // ); 303 // );
299 var this_ = this; 304 var this_ = this;
300 if (username != "" || room != "") { 305 if (username != "" || room != "") {
301 const isMobile = /iPhone|iPad|iPod|Android/i.test( 306 const isMobile = /iPhone|iPad|iPod|Android/i.test(
302 navigator.userAgent 307 navigator.userAgent
303 ); 308 );
304 if (isMobile) { 309 if (isMobile) {
305 // console.log("==TEACHER=appLink==", this.appLink); 310 // console.log("==TEACHER=appLink==", this.appLink);
306 window.open(this.appLink); 311 window.open(this.appLink);
312 this.showLoader = false;
313 this.showStartSessionButton = false;
307 } else { 314 } else {
308 if (window.JitsiMeetExternalAPI) { 315 if (window.JitsiMeetExternalAPI) {
309 // var person = prompt("Please enter your name:", "Rabie"); 316 // var person = prompt("Please enter your name:", "Rabie");
310 if (username != null || username != "") { 317 if (username != null || username != "") {
311 this_.username = username; 318 this_.username = username;
312 } 319 }
313 // var room = prompt("Please enter your room:", "Test Room"); 320 // var room = prompt("Please enter your room:", "Test Room");
314 if (room != null || room != "") { 321 if (room != null || room != "") {
315 this_.room = room; 322 this_.room = room;
316 } 323 }
317 if (roomPassword != null || roomPassword != "") { 324 if (roomPassword != null || roomPassword != "") {
318 this_.roomPassword = roomPassword; 325 this_.roomPassword = roomPassword;
319 } 326 }
320 } else alert("Jitsi Meet API script not loaded"); 327 } else alert("Jitsi Meet API script not loaded");
321 this_.startConference(); 328 this_.startConference();
329 this.showStartSessionButton = false;
322 } 330 }
323 } 331 }
324 }) 332 })
325 .catch((err) => { 333 .catch((err) => {
326 this.showLoader = false; 334 this.showLoader = false;
327 }); 335 });
328 }, 336 },
329 async studentClasses() { 337 async studentClasses() {
330 this.liveLink = ""; 338 this.liveLink = "";
331 this.room = ""; 339 this.room = "";
332 this.username = ""; 340 this.username = "";
333 this.roomPassword = ""; 341 this.roomPassword = "";
334 /* getLiveClassesesList - To up date line under heading*/ 342 /* getLiveClassesesList - To up date line under heading*/
335 let response = await this.getLiveClassesesList({ 343 let response = await this.getLiveClassesesList({
336 classId: this.$route.query.classId, 344 classId: this.$route.query.classId,
337 courseId: this.$route.query.courseId, 345 courseId: this.$route.query.courseId,
338 chapterId: this.$route.query.chapterId, 346 chapterId: this.$route.query.chapterId,
339 }); 347 });
340 // console.log("response getLiveClassesesList- ", response); 348 // console.log("response getLiveClassesesList- ", response);
341 349
342 /* CHECK RESPONSE TO ASSIGN MESSAGE INSIDE BUTTON */ 350 /* CHECK RESPONSE TO ASSIGN MESSAGE INSIDE BUTTON */
343 if (response.data.data[0].sessionStatus == "ENDED") { 351 if (response.data.data[0].sessionStatus == "ENDED") {
344 // this.startLiveSession = "Start Session"; 352 // this.startLiveSession = "Start Session";
345 this.studentBtn = ""; 353 this.studentBtn = "";
346 } 354 }
347 if (response.data.data[0].sessionStatus == "STARTED") { 355 if (response.data.data[0].sessionStatus == "STARTED") {
348 // this.startLiveSession = "Join Session"; 356 // this.startLiveSession = "Join Session";
349 this.studentBtn = "Join Session"; 357 this.studentBtn = "Join Session";
350 } 358 }
351 if (response.data.data.length == 0) { 359 if (response.data.data.length == 0) {
352 this.startLiveSession = "Start Session"; 360 this.startLiveSession = "Start Session";
353 this.studentBtn = ""; 361 this.studentBtn = "";
354 } else { 362 } else {
355 this.liveLink = response.data.data[0].link; 363 this.liveLink = response.data.data[0].link;
356 this.appLink = response.data.data[0].appLink; 364 this.appLink = response.data.data[0].appLink;
357 var room = response.data.data[0].roomName; 365 var room = response.data.data[0].roomName;
358 var username = this.currentUser; 366 var username = this.currentUser;
359 var roomPassword = response.data.data[0].password; 367 var roomPassword = response.data.data[0].password;
360 var this_ = this; 368 var this_ = this;
361 // console.log(this.room, this.roomPassword, this.username); 369 // console.log(this.room, this.roomPassword, this.username);
362 370
363 if (username != "" || room != "") { 371 if (username != "" || room != "") {
364 if (window.JitsiMeetExternalAPI) { 372 if (window.JitsiMeetExternalAPI) {
365 // var person = prompt("Please enter your name:", "Rabie"); 373 // var person = prompt("Please enter your name:", "Rabie");
366 if (username != null || username != "") { 374 if (username != null || username != "") {
367 this_.username = username; 375 this_.username = username;
368 } 376 }
369 if (roomPassword != null || roomPassword != "") { 377 if (roomPassword != null || roomPassword != "") {
370 this_.roomPassword = roomPassword; 378 this_.roomPassword = roomPassword;
371 } 379 }
372 // var room = prompt("Please enter your room:", "Test Room"); 380 // var room = prompt("Please enter your room:", "Test Room");
373 if (room != null || room != "") { 381 if (room != null || room != "") {
374 this_.room = room; 382 this_.room = room;
375 } 383 }
376 // this.startConference(); 384 // this.startConference();
377 } 385 }
378 } 386 }
379 } 387 }
380 }, 388 },
381 }, 389 },
382 390
383 async created() { 391 async created() {
384 // console.log( 392 // console.log(
385 // "this.$store.state.studentsData", 393 // "this.$store.state.studentsData",
386 // this.$store.state.studentsData[0].name 394 // this.$store.state.studentsData[0].name
387 // ); 395 // );
388 this.currentUser = localStorage.getItem("studentName"); 396 this.currentUser = localStorage.getItem("studentName");
389 this.token = this.$store.state.token; 397 this.token = this.$store.state.token;
390 if (this.$store.state.role === "PARENT") { 398 if (this.$store.state.role === "PARENT") {
391 await this.studentClasses(); 399 await this.studentClasses();
392 } 400 }
393 401
394 /* getStudentCourses - to get courseData - defined in GetApis.js*/ 402 /* getStudentCourses - to get courseData - defined in GetApis.js*/
395 if (this.$store.state.role === "PARENT") { 403 if (this.$store.state.role === "PARENT") {
396 await this.getStudentCourses({ 404 await this.getStudentCourses({
397 classId: localStorage.getItem("parentClassId"), 405 classId: localStorage.getItem("parentClassId"),
398 studentId: localStorage.getItem("parentStudentId"), 406 studentId: localStorage.getItem("parentStudentId"),
399 }); 407 });
400 } 408 }
401 }, 409 },
402 }; 410 };
403 </script> 411 </script>
404 <style scoped> 412 <style scoped>
405 .side-bar-color { 413 .side-bar-color {
406 color: #827bfa !important; 414 color: #827bfa !important;
407 /* border-top-right-radius: 74px !important; */ 415 /* border-top-right-radius: 74px !important; */
408 } 416 }
409 .card-border { 417 .card-border {
410 border: 1px #bdbdbd solid; 418 border: 1px #bdbdbd solid;
411 border-radius: 3px; 419 border-radius: 3px;
412 } 420 }
413 .reply-desc { 421 .reply-desc {
414 border: 1px solid #f2f2f2; 422 border: 1px solid #f2f2f2;
415 } 423 }
416 .open-dialog-button { 424 .open-dialog-button {
417 background: #827bfa !important; 425 background: #827bfa !important;
418 border-color: #827bfa !important; 426 border-color: #827bfa !important;
419 text-transform: none !important; 427 text-transform: none !important;
420 } 428 }
421 429
422 .reply-btn { 430 .reply-btn {
423 background: #feb83c !important; 431 background: #feb83c !important;
424 border-color: #feb83c !important; 432 border-color: #feb83c !important;
425 text-transform: none !important; 433 text-transform: none !important;
426 -webkit-box-shadow: none !important; 434 -webkit-box-shadow: none !important;
427 box-shadow: none !important; 435 box-shadow: none !important;
428 } 436 }
429 #jitsi-container { 437 #jitsi-container {
430 height: 100vh; 438 height: 100vh;
431 } 439 }
432 </style> 440 </style>