Commit dea4d2889746cb7b62acba1f1d51c56e26799349
1 parent
6a40df7c7f
Exists in
master
and in
2 other branches
task commited
Showing
6 changed files
with
902 additions
and
85 deletions
Show diff stats
src/api/menu.js
... | ... | @@ -312,7 +312,7 @@ const teacherMenu = [{ |
312 | 312 | { name: 'Course', title: 'Course', component: 'Course', action: '', }, |
313 | 313 | { name: 'Enroll Students', title: 'Enroll Students', component: 'Enroll Students', action: '', }, |
314 | 314 | { name: 'Course Detail', title: 'Course Detail', component: 'Course Detail', action: '', }, |
315 | - // { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, | |
315 | + { name: 'Course Discussion', title: 'Course Discussion', component: 'Course Discussion', action: '', }, | |
316 | 316 | ] |
317 | 317 | }, |
318 | 318 | { | ... | ... |
src/pages/Course/courseDiscussion.vue
... | ... | @@ -0,0 +1,481 @@ |
1 | +<template> | |
2 | + <v-container fluid class="body-color"> | |
3 | + <v-dialog v-model="editDialog" max-width="600px" scrollable> | |
4 | + <v-card flat class="card-style pa-2" dark> | |
5 | + <v-layout> | |
6 | + <v-flex xs12> | |
7 | + <label class="title text-xs-center">Edit Course Discussion</label> | |
8 | + <v-icon size="24" class="right" @click="editDialog = false">cancel</v-icon> | |
9 | + </v-flex> | |
10 | + </v-layout> | |
11 | + <v-card-text> | |
12 | + <v-form ref="form"> | |
13 | + <v-container fluid> | |
14 | + <v-layout> | |
15 | + <v-flex xs12 class="text-xs-center text-sm-center text-md-center text-lg-center"> | |
16 | + <v-avatar size="100px" v-if="!editedItem.attachementUrl && !editImageUrl"> | |
17 | + <img src="/static/icon/user.png" /> | |
18 | + </v-avatar> | |
19 | + <img | |
20 | + :src="editedItem.attachementUrl" | |
21 | + v-else-if="editedItem.attachementUrl && !editImageUrl" | |
22 | + height="150" | |
23 | + style="border-radius:50%; width:150px" | |
24 | + /> | |
25 | + <img | |
26 | + v-if="editImageUrl" | |
27 | + :src="editImageUrl" | |
28 | + style="border-radius:50%; width:150px;height:150px" | |
29 | + /> | |
30 | + <input | |
31 | + type="file" | |
32 | + style="display: none" | |
33 | + ref="editDataImage" | |
34 | + accept="image/*" | |
35 | + @change="onEditFilePicked" | |
36 | + /> | |
37 | + </v-flex> | |
38 | + </v-layout> | |
39 | + <v-layout wrap> | |
40 | + <v-flex xs12 sm12> | |
41 | + <v-layout> | |
42 | + <v-flex xs4 sm5 class="pt-4 subheading"> | |
43 | + <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> | |
44 | + <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label> | |
45 | + </v-flex> | |
46 | + <v-flex xs8 sm7 class="ml-3"> | |
47 | + <v-select | |
48 | + :items="addclass" | |
49 | + v-model="editedItem.classId" | |
50 | + item-text="classNum" | |
51 | + item-value="_id" | |
52 | + name="Select Class" | |
53 | + required | |
54 | + @change="editGetCourses(editedItem.classId)" | |
55 | + ></v-select> | |
56 | + </v-flex> | |
57 | + </v-layout> | |
58 | + <v-layout> | |
59 | + <v-flex xs12 sm12> | |
60 | + <v-layout> | |
61 | + <v-flex xs4 sm5 class="pt-4 subheading"> | |
62 | + <label class="right">Select Course:</label> | |
63 | + </v-flex> | |
64 | + <v-flex xs8 sm7 class="ml-3"> | |
65 | + <v-select | |
66 | + :items="editCourseData" | |
67 | + label="Select Course" | |
68 | + v-model="editedItem.courseId" | |
69 | + item-text="courseName" | |
70 | + item-value="_id" | |
71 | + required | |
72 | + class="ml-2" | |
73 | + ></v-select> | |
74 | + </v-flex> | |
75 | + </v-layout> | |
76 | + </v-flex> | |
77 | + </v-layout> | |
78 | + <v-layout> | |
79 | + <v-flex xs4 sm5 class="pt-4 subheading"> | |
80 | + <label class="right">Subject:</label> | |
81 | + </v-flex> | |
82 | + <v-flex xs8 sm7 class="ml-3"> | |
83 | + <v-text-field v-model="editedItem.subject" type="text" required></v-text-field> | |
84 | + </v-flex> | |
85 | + </v-layout> | |
86 | + <v-layout> | |
87 | + <v-flex xs4 sm5 class="pt-4 subheading"> | |
88 | + <label class="right">Description:</label> | |
89 | + </v-flex> | |
90 | + <v-flex xs8 sm7 class="ml-3"> | |
91 | + <v-text-field v-model="editedItem.description" type="text" required></v-text-field> | |
92 | + </v-flex> | |
93 | + </v-layout> | |
94 | + <v-layout> | |
95 | + <v-flex xs4 sm5 class="pt-4 subheading"> | |
96 | + <label class="right hidden-xs-only hidden-sm-only">Upload Image:</label> | |
97 | + <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Upload:</label> | |
98 | + </v-flex> | |
99 | + <v-flex xs8 sm7 class="ml-3"> | |
100 | + <v-text-field | |
101 | + @click="pickEditFile" | |
102 | + v-model="editImageName" | |
103 | + append-icon="attach_file" | |
104 | + ></v-text-field> | |
105 | + </v-flex> | |
106 | + </v-layout> | |
107 | + </v-flex> | |
108 | + </v-layout> | |
109 | + <v-layout> | |
110 | + <v-flex xs12 sm12 class="px-0 mx-0"> | |
111 | + <v-layout class="right"> | |
112 | + <v-btn @click="save" round dark :loading="editLoading" class="add-button">Save</v-btn> | |
113 | + </v-layout> | |
114 | + </v-flex> | |
115 | + </v-layout> | |
116 | + </v-container> | |
117 | + </v-form> | |
118 | + </v-card-text> | |
119 | + </v-card> | |
120 | + </v-dialog> | |
121 | + <!-- ****** DIsCUSIION TABLE ****** --> | |
122 | + <v-toolbar color="transparent" flat> | |
123 | + <v-spacer></v-spacer> | |
124 | + <v-flex xs12 sm4 md2> | |
125 | + <v-select | |
126 | + small | |
127 | + :items="addclass" | |
128 | + label="Select Class" | |
129 | + v-model="getSelectedData.classId" | |
130 | + item-text="classNum" | |
131 | + item-value="_id" | |
132 | + name="Select Class" | |
133 | + @change="getCourses(getSelectedData.classId)" | |
134 | + class="mr-2" | |
135 | + required | |
136 | + ></v-select> | |
137 | + </v-flex> | |
138 | + <v-flex xs12 sm4 md2> | |
139 | + <v-select | |
140 | + :items="courseData" | |
141 | + label="Select Course" | |
142 | + v-model="getSelectedData.courseId" | |
143 | + item-text="courseName" | |
144 | + item-value="_id" | |
145 | + required | |
146 | + class="ml-2" | |
147 | + @change="getCourseDiscussionTable(getSelectedData.courseId)" | |
148 | + ></v-select> | |
149 | + </v-flex> | |
150 | + <v-card-title class="body-1" v-show="show"> | |
151 | + <v-btn icon large flat @click="displaySearch"> | |
152 | + <v-avatar size="27"> | |
153 | + <img src="/static/icon/search.png" alt="icon" /> | |
154 | + </v-avatar> | |
155 | + </v-btn> | |
156 | + </v-card-title> | |
157 | + <v-flex xs8 sm8 md3 lg2 v-show="showSearch"> | |
158 | + <v-layout> | |
159 | + <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field> | |
160 | + <v-icon @click="closeSearch" color="error">close</v-icon> | |
161 | + </v-layout> | |
162 | + </v-flex> | |
163 | + </v-toolbar> | |
164 | + <v-data-table | |
165 | + :headers="headers" | |
166 | + :items="courseDiscussionData" | |
167 | + :pagination.sync="pagination" | |
168 | + :search="search" | |
169 | + > | |
170 | + <template slot="items" slot-scope="props"> | |
171 | + <tr class="tr"> | |
172 | + <td class="text-xs-center td td-row"> | |
173 | + <v-avatar size="40"> | |
174 | + <img :src="props.item.attachementUrl" v-if="props.item.attachementUrl" /> | |
175 | + <img src="/static/icon/user.png" v-else-if="!props.item.attachementUrl" /> | |
176 | + </v-avatar> | |
177 | + </td> | |
178 | + <td class="text-xs-center td td-row"> | |
179 | + <router-link | |
180 | + :to="{ name:'Course Discussiones Form',params: { discussionId:props.item._id } }" | |
181 | + >{{ props.item.subject }}</router-link> | |
182 | + </td> | |
183 | + <td class="text-xs-center td td-row">{{ props.item.studentId.name}}</td> | |
184 | + <td class="text-xs-center td td-row">-</td> | |
185 | + <td class="text-xs-center td td-row">{{ props.item.forumThread.length }}</td> | |
186 | + <td class="text-xs-center td td-row"> | |
187 | + <span> | |
188 | + <v-tooltip top> | |
189 | + <img | |
190 | + slot="activator" | |
191 | + style="cursor:pointer; width:20px; height:18px; " | |
192 | + class="mr-3" | |
193 | + @click="editItem(props.item)" | |
194 | + src="/static/icon/edit.png" | |
195 | + /> | |
196 | + <span>Edit</span> | |
197 | + </v-tooltip> | |
198 | + <v-tooltip top> | |
199 | + <img | |
200 | + slot="activator" | |
201 | + style="cursor:pointer; width:20px; height:20px; " | |
202 | + class="mr-3" | |
203 | + @click="deleteItem(props.item)" | |
204 | + src="/static/icon/delete.png" | |
205 | + /> | |
206 | + <span>Delete</span> | |
207 | + </v-tooltip> | |
208 | + </span> | |
209 | + </td> | |
210 | + </tr> | |
211 | + </template> | |
212 | + <v-alert | |
213 | + slot="no-results" | |
214 | + :value="true" | |
215 | + color="error" | |
216 | + icon="warning" | |
217 | + >Your search for "{{ search }}" found no results.</v-alert> | |
218 | + </v-data-table> | |
219 | + <v-snackbar | |
220 | + :timeout="timeout" | |
221 | + :top="y === 'top'" | |
222 | + :right="x === 'right'" | |
223 | + :vertical="mode === 'vertical'" | |
224 | + v-model="snackbar" | |
225 | + color="success" | |
226 | + >{{ text }}</v-snackbar> | |
227 | + <div class="loader" v-if="showLoader"> | |
228 | + <v-progress-circular indeterminate color="white"></v-progress-circular> | |
229 | + </div> | |
230 | + </v-container> | |
231 | +</template> | |
232 | + | |
233 | +<script> | |
234 | +import http from "@/Services/http.js"; | |
235 | +import moment from "moment"; | |
236 | + | |
237 | +export default { | |
238 | + data: () => ({ | |
239 | + snackbar: false, | |
240 | + y: "top", | |
241 | + x: "right", | |
242 | + mode: "", | |
243 | + timeout: 3000, | |
244 | + text: "", | |
245 | + show: true, | |
246 | + showSearch: false, | |
247 | + showLoader: false, | |
248 | + loading: false, | |
249 | + date: null, | |
250 | + search: "", | |
251 | + addclass: [], | |
252 | + pagination: { | |
253 | + rowsPerPage: 10 | |
254 | + }, | |
255 | + headers: [ | |
256 | + { | |
257 | + text: "Image", | |
258 | + value: "subjattachementUrlect", | |
259 | + sortable: false, | |
260 | + align: "center" | |
261 | + }, | |
262 | + { | |
263 | + text: "Discussion", | |
264 | + value: "subject", | |
265 | + sortable: false, | |
266 | + align: "center" | |
267 | + }, | |
268 | + { text: "Started", value: "studentId", sortable: false, align: "center" }, | |
269 | + { | |
270 | + text: "Last Post", | |
271 | + value: "forumThread", | |
272 | + sortable: false, | |
273 | + align: "center" | |
274 | + }, | |
275 | + { text: "replies", value: "email", sortable: false, align: "center" }, | |
276 | + { text: "Action", value: "", sortable: false, align: "center" } | |
277 | + ], | |
278 | + token: "", | |
279 | + selectStudents: { | |
280 | + select: "", | |
281 | + selectSection: "" | |
282 | + }, | |
283 | + | |
284 | + role: "", | |
285 | + schoolRole: "", | |
286 | + menu: false, | |
287 | + valid: true, | |
288 | + | |
289 | + getSelectedData: {}, | |
290 | + courseDiscussionData: [], | |
291 | + courseData: [], | |
292 | + editCourseData: [], | |
293 | + addSection: [], | |
294 | + editedItem: {}, | |
295 | + editDialog: false, | |
296 | + editedIndex: -1, | |
297 | + editiImageFile: "", | |
298 | + editImageName: "", | |
299 | + editImageUrl: "", | |
300 | + editLoading: false | |
301 | + }), | |
302 | + methods: { | |
303 | + // save(date) { | |
304 | + // this.$refs.menu.save(date); | |
305 | + // }, | |
306 | + pickEditFile() { | |
307 | + this.$refs.editDataImage.click(); | |
308 | + }, | |
309 | + onEditFilePicked(e) { | |
310 | + console.log(e); | |
311 | + const files = e.target.files; | |
312 | + if (files[0] !== undefined) { | |
313 | + this.editImageName = files[0].name; | |
314 | + console.log("this.editImageName", this.editImageName); | |
315 | + | |
316 | + if (this.editImageName.lastIndexOf(".") <= 0) { | |
317 | + return; | |
318 | + } | |
319 | + const fr = new FileReader(); | |
320 | + fr.readAsDataURL(files[0]); | |
321 | + fr.addEventListener("load", () => { | |
322 | + this.editImageUrl = fr.result; | |
323 | + this.editiImageFile = files[0]; // this is an image file that can be sent to server... | |
324 | + }); | |
325 | + } else { | |
326 | + this.editImageName = ""; | |
327 | + this.editiImageFile = ""; | |
328 | + } | |
329 | + }, | |
330 | + getAllClass() { | |
331 | + http() | |
332 | + .get("/getClassesList", { | |
333 | + headers: { Authorization: "Bearer " + this.token } | |
334 | + }) | |
335 | + .then(response => { | |
336 | + this.addclass = response.data.data; | |
337 | + }) | |
338 | + .catch(error => { | |
339 | + // console.log("err====>", err); | |
340 | + // this.$router.replace({ path: "/" }); | |
341 | + }); | |
342 | + }, | |
343 | + getCourses(classId) { | |
344 | + this.showLoader = true; | |
345 | + http() | |
346 | + .get("/getCourseesList", { | |
347 | + params: { | |
348 | + classId: classId | |
349 | + } | |
350 | + }) | |
351 | + .then(response => { | |
352 | + this.courseData = response.data.data; | |
353 | + this.showLoader = false; | |
354 | + }) | |
355 | + .catch(err => { | |
356 | + console.log("err====>", err); | |
357 | + this.showLoader = false; | |
358 | + }); | |
359 | + }, | |
360 | + editGetCourses(classId) { | |
361 | + this.showLoader = true; | |
362 | + http() | |
363 | + .get("/getCourseesList", { | |
364 | + params: { | |
365 | + classId: classId | |
366 | + } | |
367 | + }) | |
368 | + .then(response => { | |
369 | + this.editCourseData = response.data.data; | |
370 | + this.showLoader = false; | |
371 | + }) | |
372 | + .catch(err => { | |
373 | + console.log("err====>", err); | |
374 | + this.showLoader = false; | |
375 | + }); | |
376 | + }, | |
377 | + getCourseDiscussionTable(id) { | |
378 | + // console.log("id", this.getSelectedData.courseId); | |
379 | + this.showLoader = true; | |
380 | + http() | |
381 | + .get("/getCourseDiscussionesList", { | |
382 | + params: { | |
383 | + classId: this.getSelectedData.classId, | |
384 | + courseId: id | |
385 | + } | |
386 | + }) | |
387 | + .then(response => { | |
388 | + // console.log("response", response.data.data); | |
389 | + this.courseDiscussionData = response.data.data; | |
390 | + this.showLoader = false; | |
391 | + }) | |
392 | + .catch(error => { | |
393 | + console.log("err====>", error); | |
394 | + this.showLoader = false; | |
395 | + }); | |
396 | + }, | |
397 | + editItem(item) { | |
398 | + this.editedIndex = this.courseDiscussionData.indexOf(item); | |
399 | + this.editedItem = Object.assign({}, item); | |
400 | + this.editDialog = true; | |
401 | + }, | |
402 | + save() { | |
403 | + console.log("this.editedItem", this.editedItem); | |
404 | + let editCourseDiscuss = { | |
405 | + courseDiscussionId: this.editedItem._id, | |
406 | + courseId: this.editedItem.courseId, | |
407 | + studentId: this.editedItem.studentId._id, | |
408 | + subject: this.editedItem.subject, | |
409 | + description: this.editedItem.description | |
410 | + }; | |
411 | + if (this.editedItem.classId._id) { | |
412 | + editCourseDiscuss.classId = this.editedItem.classId._id; | |
413 | + } | |
414 | + if (!this.editedItem.classId._id) { | |
415 | + editCourseDiscuss.classId = this.editedItem.classId; | |
416 | + } | |
417 | + if (this.editImageUrl) { | |
418 | + var str = this.editImageUrl; | |
419 | + const [baseUrl, editImageUrl] = str.split(/,/); | |
420 | + editCourse.upload = editImageUrl; | |
421 | + } | |
422 | + this.editLoading = true; | |
423 | + http() | |
424 | + .put("/updateCourseDiscussion", editCourseDiscuss) | |
425 | + .then(response => { | |
426 | + this.snackbar = true; | |
427 | + this.text = response.data.message; | |
428 | + this.color = "green"; | |
429 | + this.imageUrl = ""; | |
430 | + this.getCourseDiscussionTable(); | |
431 | + this.editDialog = false; | |
432 | + this.editLoading = false; | |
433 | + }) | |
434 | + .catch(error => { | |
435 | + this.editLoading = false; | |
436 | + this.snackbar = true; | |
437 | + this.text = error.response.data.statusText; | |
438 | + this.color = "error"; | |
439 | + }); | |
440 | + }, | |
441 | + deleteItem(item) { | |
442 | + let deleteCourseDiscussion = { | |
443 | + courseDiscussionId: item._id | |
444 | + }; | |
445 | + http() | |
446 | + .delete( | |
447 | + "/deleteCourseDiscussion", | |
448 | + confirm("Are you sure you want to delete this?") && { | |
449 | + params: deleteCourseDiscussion | |
450 | + } | |
451 | + ) | |
452 | + .then(response => { | |
453 | + this.snackbar = true; | |
454 | + this.text = response.data.message; | |
455 | + this.color = "green"; | |
456 | + this.getCourseDiscussionTable(); | |
457 | + }) | |
458 | + .catch(error => { | |
459 | + this.snackbar = true; | |
460 | + this.text = error.response.data.message; | |
461 | + this.color = "error"; | |
462 | + }); | |
463 | + }, | |
464 | + displaySearch() { | |
465 | + this.show = false; | |
466 | + this.showSearch = true; | |
467 | + }, | |
468 | + closeSearch() { | |
469 | + this.showSearch = false; | |
470 | + this.show = true; | |
471 | + this.search = ""; | |
472 | + } | |
473 | + }, | |
474 | + mounted() { | |
475 | + // this.getStudentList(); | |
476 | + this.token = this.$store.state.token; | |
477 | + this.role = this.$store.state.role; | |
478 | + this.getAllClass(); | |
479 | + } | |
480 | +}; | |
481 | +</script> | |
0 | 482 | \ No newline at end of file | ... | ... |
src/pages/Course/discussion.vue
... | ... | @@ -0,0 +1,309 @@ |
1 | +<template> | |
2 | + <v-container fluid class="body-color"> | |
3 | + <!-- ******COURSE DISCUSIION COMMENT ****** --> | |
4 | + <v-layout> | |
5 | + <v-flex xs12 v-for="(courseDiscussionData,i) in courseDiscussionData" :key="i"> | |
6 | + <v-card class="elevation-0 grey lighten-3 pa-2" flat> | |
7 | + <v-list two-line subheader> | |
8 | + <v-list-tile> | |
9 | + <v-list-tile-avatar> | |
10 | + <v-avatar size="46"> | |
11 | + <img | |
12 | + :src="courseDiscussionData.attachementUrl" | |
13 | + v-if="courseDiscussionData.attachementUrl" | |
14 | + /> | |
15 | + <img src="/static/icon/user.png" v-else-if="!courseDiscussionData.attachementUrl" /> | |
16 | + </v-avatar> | |
17 | + </v-list-tile-avatar> | |
18 | + <v-list-tile-content> | |
19 | + <v-list-tile-title>{{ courseDiscussionData.subject }}</v-list-tile-title> | |
20 | + <v-list-tile-sub-title> | |
21 | + By | |
22 | + <span class="info--text">{{ courseDiscussionData.studentId.name }}</span> | |
23 | + - {{dates(courseDiscussionData.created ) }} | |
24 | + </v-list-tile-sub-title> | |
25 | + </v-list-tile-content> | |
26 | + <v-list-tile-action> | |
27 | + <div> | |
28 | + <v-btn flat round dark class="reply-btn" @click="showReplyBox = true">Reply</v-btn> | |
29 | + </div> | |
30 | + </v-list-tile-action> | |
31 | + </v-list-tile> | |
32 | + </v-list> | |
33 | + </v-card> | |
34 | + <v-flex | |
35 | + xs12 | |
36 | + class="mt-4 pl-5 mx-auto" | |
37 | + v-for="(replyThread,i) in courseDiscussionData.forumThread" | |
38 | + :key="i" | |
39 | + > | |
40 | + <v-card class="elevation-0 grey lighten-3" flat> | |
41 | + <v-list two-line subheader class="grey lighten-3 pa-1"> | |
42 | + <v-list-tile> | |
43 | + <v-list-tile-avatar> | |
44 | + <v-avatar size="46"> | |
45 | + <img | |
46 | + :src="courseDiscussionData.attachementUrl" | |
47 | + v-if="courseDiscussionData.attachementUrl" | |
48 | + /> | |
49 | + <img | |
50 | + src="/static/icon/user.png" | |
51 | + v-else-if="!courseDiscussionData.attachementUrl" | |
52 | + /> | |
53 | + </v-avatar> | |
54 | + </v-list-tile-avatar> | |
55 | + <v-list-tile-content> | |
56 | + <v-list-tile-title>Re: {{ courseDiscussionData.subject }}</v-list-tile-title> | |
57 | + <v-list-tile-sub-title> | |
58 | + By | |
59 | + <span class="info--text">{{ replyThread.teacherId.name }}</span> | |
60 | + - {{dates(replyThread.created ) }} | |
61 | + </v-list-tile-sub-title> | |
62 | + </v-list-tile-content> | |
63 | + </v-list-tile> | |
64 | + </v-list> | |
65 | + <v-list class="pa-2 reply-desc"> | |
66 | + <v-list-tile-content> | |
67 | + <v-list-tile-title | |
68 | + v-show="replyThread.showDescriptionReplyThread" | |
69 | + >{{ replyThread.description }}</v-list-tile-title> | |
70 | + <v-flex xs12 sm12 md4 v-show="replyThread.showUpdateReplyThread == true"> | |
71 | + <v-text-field v-model="replyThread.description"></v-text-field> | |
72 | + <v-btn | |
73 | + flat | |
74 | + round | |
75 | + dark | |
76 | + class="reply-btn right" | |
77 | + @click="updateRelpyThreadDiscussion(replyThread)" | |
78 | + >Save</v-btn> | |
79 | + </v-flex> | |
80 | + </v-list-tile-content> | |
81 | + </v-list> | |
82 | + <v-list class="grey lighten-4 pa-0"> | |
83 | + <v-list-tile-action> | |
84 | + <v-spacer></v-spacer> | |
85 | + <div> | |
86 | + <v-btn | |
87 | + flat | |
88 | + round | |
89 | + dark | |
90 | + class="reply-btn" | |
91 | + @click="deleteRelpyThreadDiscussion(replyThread._id)" | |
92 | + >Delete</v-btn> | |
93 | + <v-btn | |
94 | + flat | |
95 | + round | |
96 | + dark | |
97 | + class="reply-btn mr-4" | |
98 | + @click="showUpdateReplyThreadDiscussion(replyThread)" | |
99 | + >Edit</v-btn> | |
100 | + </div> | |
101 | + </v-list-tile-action> | |
102 | + </v-list> | |
103 | + </v-card> | |
104 | + </v-flex> | |
105 | + <v-flex xs12 class="mt-4" v-show="showReplyBox"> | |
106 | + <v-textarea | |
107 | + name="input-7-1" | |
108 | + solo | |
109 | + label="Label Text" | |
110 | + multi-line | |
111 | + v-model="replyDescription" | |
112 | + ></v-textarea> | |
113 | + <v-btn round dark class="open-dialog-button" flat @click="showReplyBox = false">Cancel</v-btn> | |
114 | + <v-btn | |
115 | + round | |
116 | + dark | |
117 | + :loading="loading" | |
118 | + class="reply-btn" | |
119 | + @click="replyThreadDiscussion()" | |
120 | + >Submit</v-btn> | |
121 | + </v-flex> | |
122 | + </v-flex> | |
123 | + </v-layout> | |
124 | + <v-snackbar | |
125 | + :timeout="timeout" | |
126 | + :top="y === 'top'" | |
127 | + :right="x === 'right'" | |
128 | + :vertical="mode === 'vertical'" | |
129 | + v-model="snackbar" | |
130 | + color="success" | |
131 | + >{{ text }}</v-snackbar> | |
132 | + <div class="loader" v-if="showLoader"> | |
133 | + <v-progress-circular indeterminate color="white"></v-progress-circular> | |
134 | + </div> | |
135 | + </v-container> | |
136 | +</template> | |
137 | + | |
138 | +<script> | |
139 | +import http from "@/Services/http.js"; | |
140 | +import moment from "moment"; | |
141 | + | |
142 | +export default { | |
143 | + data: () => ({ | |
144 | + snackbar: false, | |
145 | + y: "top", | |
146 | + x: "right", | |
147 | + mode: "", | |
148 | + timeout: 3000, | |
149 | + text: "", | |
150 | + showLoader: false, | |
151 | + loading: false, | |
152 | + date: null, | |
153 | + token: "", | |
154 | + role: "", | |
155 | + schoolRole: "", | |
156 | + menu: false, | |
157 | + courseDiscussionData: {}, | |
158 | + showReplyBox: false, | |
159 | + replyDescription: "", | |
160 | + loginId: "", | |
161 | + editedIndex: -1 | |
162 | + }), | |
163 | + methods: { | |
164 | + dates: function(date) { | |
165 | + return moment(date).format("MMMM DD, YYYY hh:mm A"); | |
166 | + }, | |
167 | + getDiscussionesThread() { | |
168 | + // console.log("id", this.getSelectedData.courseId); | |
169 | + this.showLoader = true; | |
170 | + http() | |
171 | + .get("/getParticularCourseDiscussion", { | |
172 | + params: { | |
173 | + courseDiscussionId: this.$route.params.discussionId | |
174 | + } | |
175 | + }) | |
176 | + .then(response => { | |
177 | + // console.log("response", response.data.data); | |
178 | + this.courseDiscussionData = response.data.data; | |
179 | + for (let i = 0; i < this.courseDiscussionData.length; i++) { | |
180 | + for ( | |
181 | + let j = 0; | |
182 | + j < this.courseDiscussionData[i].forumThread.length; | |
183 | + j++ | |
184 | + ) { | |
185 | + this.courseDiscussionData[i].forumThread[ | |
186 | + j | |
187 | + ].showUpdateReplyThread = false; | |
188 | + this.courseDiscussionData[i].forumThread[ | |
189 | + j | |
190 | + ].showDescriptionReplyThread = true; | |
191 | + } | |
192 | + } | |
193 | + this.showLoader = false; | |
194 | + this.showReplyBox = false; | |
195 | + }) | |
196 | + .catch(error => { | |
197 | + console.log("err====>", error); | |
198 | + this.showLoader = false; | |
199 | + }); | |
200 | + }, | |
201 | + replyThreadDiscussion() { | |
202 | + this.showLoader = true; | |
203 | + var payloadData = { | |
204 | + courseDiscussionId: this.$route.params.discussionId, | |
205 | + teacherId: this.loginId, | |
206 | + description: this.replyDescription | |
207 | + }; | |
208 | + http() | |
209 | + .put("/replyForumThread", payloadData) | |
210 | + .then(response => { | |
211 | + // console.log("response", response.data.data); | |
212 | + this.showLoader = false; | |
213 | + this.getDiscussionesThread(); | |
214 | + }) | |
215 | + .catch(error => { | |
216 | + this.showLoader = false; | |
217 | + }); | |
218 | + }, | |
219 | + showUpdateReplyThreadDiscussion(item) { | |
220 | + this.editedIndex = this.courseDiscussionData.indexOf(item); | |
221 | + var editedItem = Object.assign({}, item); | |
222 | + var arrayOfcourseDiscussionData = []; | |
223 | + for (let i = 0; i < this.courseDiscussionData.length; i++) { | |
224 | + for ( | |
225 | + let j = 0; | |
226 | + j < this.courseDiscussionData[i].forumThread.length; | |
227 | + j++ | |
228 | + ) { | |
229 | + if ( | |
230 | + editedItem._id == this.courseDiscussionData[i].forumThread[j]._id | |
231 | + ) { | |
232 | + this.courseDiscussionData[i].forumThread[ | |
233 | + j | |
234 | + ].showUpdateReplyThread = true; | |
235 | + this.courseDiscussionData[i].forumThread[ | |
236 | + j | |
237 | + ].showDescriptionReplyThread = false; | |
238 | + } | |
239 | + } | |
240 | + arrayOfcourseDiscussionData.push(this.courseDiscussionData[i]); | |
241 | + } | |
242 | + this.courseDiscussionData = arrayOfcourseDiscussionData; | |
243 | + }, | |
244 | + updateRelpyThreadDiscussion(replyThread) { | |
245 | + this.showLoader = true; | |
246 | + var payloadData = { | |
247 | + forumThreadId: replyThread._id, | |
248 | + courseDiscussionId: this.$route.params.discussionId, | |
249 | + teacherId: this.loginId, | |
250 | + description: replyThread.description | |
251 | + }; | |
252 | + http() | |
253 | + .put("/updateForumThread", payloadData) | |
254 | + .then(response => { | |
255 | + this.showLoader = false; | |
256 | + this.getDiscussionesThread(); | |
257 | + }) | |
258 | + .catch(error => { | |
259 | + this.showLoader = false; | |
260 | + }); | |
261 | + }, | |
262 | + deleteRelpyThreadDiscussion(id) { | |
263 | + this.showLoader = true; | |
264 | + var payloadData = { | |
265 | + forumThreadId: id, | |
266 | + courseDiscussionId: this.$route.params.discussionId | |
267 | + }; | |
268 | + http() | |
269 | + .put( | |
270 | + "/deleteForumThread", | |
271 | + confirm("Are you sure you want to delete this?") && payloadData | |
272 | + ) | |
273 | + .then(response => { | |
274 | + this.showLoader = false; | |
275 | + this.getDiscussionesThread(); | |
276 | + }) | |
277 | + .catch(error => { | |
278 | + this.showLoader = false; | |
279 | + }); | |
280 | + } | |
281 | + }, | |
282 | + mounted() { | |
283 | + // this.getStudentList(); | |
284 | + this.token = this.$store.state.token; | |
285 | + this.role = this.$store.state.role; | |
286 | + this.loginId = this.$store.state.id; | |
287 | + this.getDiscussionesThread(); | |
288 | + } | |
289 | +}; | |
290 | +</script> | |
291 | + | |
292 | +<style> | |
293 | +.reply-desc { | |
294 | + border: 1px solid #f2f2f2; | |
295 | +} | |
296 | +.open-dialog-button { | |
297 | + background: #827bfa !important; | |
298 | + border-color: #827bfa !important; | |
299 | + text-transform: none !important; | |
300 | +} | |
301 | + | |
302 | +.reply-btn { | |
303 | + background: #feb83c !important; | |
304 | + border-color: #feb83c !important; | |
305 | + text-transform: none !important; | |
306 | + -webkit-box-shadow: none !important; | |
307 | + box-shadow: none !important; | |
308 | +} | |
309 | +</style> | |
0 | 310 | \ No newline at end of file | ... | ... |
src/pages/Course/enrollStudents.vue
... | ... | @@ -277,7 +277,7 @@ export default { |
277 | 277 | .then(response => { |
278 | 278 | this.snackbar = true; |
279 | 279 | this.text = response.data.message; |
280 | - this.getParticularCourse() | |
280 | + this.getParticularCourse(); | |
281 | 281 | }) |
282 | 282 | .catch(error => { |
283 | 283 | this.snackbar = true; |
... | ... | @@ -288,11 +288,8 @@ export default { |
288 | 288 | console.log("selected", selected); |
289 | 289 | let selectedStudentsArray = []; |
290 | 290 | selectedStudentsArray.push({ studentId: selected._id }); |
291 | - if ( | |
292 | - selected.enroll === true && | |
293 | - selected.enroll === undefined && | |
294 | - selected.enroll === null | |
295 | - ) { | |
291 | + // console.log("selected.enroll", selected.enroll); | |
292 | + if (selected.enroll === true) { | |
296 | 293 | var payload = { |
297 | 294 | courseId: this.getReport.courseId, |
298 | 295 | enrollStudents: selectedStudentsArray |
... | ... | @@ -302,6 +299,7 @@ export default { |
302 | 299 | .then(response => { |
303 | 300 | this.snackbar = true; |
304 | 301 | this.text = response.data.message; |
302 | + this.getParticularCourse(); | |
305 | 303 | }) |
306 | 304 | .catch(error => { |
307 | 305 | this.snackbar = true; |
... | ... | @@ -322,6 +320,7 @@ export default { |
322 | 320 | .then(response => { |
323 | 321 | this.snackbar = true; |
324 | 322 | this.text = response.data.message; |
323 | + this.getParticularCourse(); | |
325 | 324 | }) |
326 | 325 | .catch(error => { |
327 | 326 | this.snackbar = true; |
... | ... | @@ -343,7 +342,7 @@ export default { |
343 | 342 | studentId = response.data.data.enrollStudents[i]; |
344 | 343 | for (let j = 0; j < this.studentsData.length; j++) { |
345 | 344 | if (studentId.studentId == this.studentsData[j]._id) { |
346 | - console.log("studentId._id", studentId._id); | |
345 | + // console.log("studentId._id", studentId._id); | |
347 | 346 | this.studentsData[j].enroll = true; |
348 | 347 | this.studentsData[j].enrollId = studentId._id; |
349 | 348 | } | ... | ... |
src/pages/Dashboard/dashboard.vue
... | ... | @@ -386,7 +386,7 @@ |
386 | 386 | <div class="text-xs-center py-3 subheading font-weight-bold">Calender</div> |
387 | 387 | <vue-event-calendar :events="activityEvents"></vue-event-calendar> |
388 | 388 | <!-- LATEST ACTIVITY --> |
389 | - <v-card class="my-3 elevation-0"> | |
389 | + <v-card class="my-3 elevation-0" v-if="role == 'PARENT'"> | |
390 | 390 | <v-card-text> |
391 | 391 | <v-card-title class="justify-center subheading font-weight-bold">Latest Activity</v-card-title> |
392 | 392 | <div v-for="(activity,index) in activityList" :key="index" class="mt-2"> | ... | ... |
src/router/paths.js
... | ... | @@ -14,7 +14,7 @@ export default [{ |
14 | 14 | }, |
15 | 15 | name: 'NotFound', |
16 | 16 | component: () => |
17 | - import( | |
17 | + import ( | |
18 | 18 | /* webpackChunkName: "routes" */ |
19 | 19 | /* webpackMode: "lazy-once" */ |
20 | 20 | `@/pages/NotFound/NotFound.vue` |
... | ... | @@ -28,7 +28,7 @@ export default [{ |
28 | 28 | type: route.query.type |
29 | 29 | }), |
30 | 30 | component: () => |
31 | - import( | |
31 | + import ( | |
32 | 32 | /* webpackChunkName: "routes" */ |
33 | 33 | /* webpackMode: "lazy-once" */ |
34 | 34 | `@/pages/Dashboard/dashboard.vue` |
... | ... | @@ -41,7 +41,7 @@ export default [{ |
41 | 41 | }, |
42 | 42 | name: 'ServerError', |
43 | 43 | component: () => |
44 | - import( | |
44 | + import ( | |
45 | 45 | /* webpackChunkName: "routes" */ |
46 | 46 | /* webpackMode: "lazy-once" */ |
47 | 47 | `@/pages/NotFound/Error.vue` |
... | ... | @@ -55,7 +55,7 @@ export default [{ |
55 | 55 | type: route.query.type |
56 | 56 | }), |
57 | 57 | component: () => |
58 | - import( | |
58 | + import ( | |
59 | 59 | /* webpackChunkName: "routes" */ |
60 | 60 | /* webpackMode: "lazy-once" */ |
61 | 61 | `@/pages/Authentication/changepassword.vue` |
... | ... | @@ -68,7 +68,7 @@ export default [{ |
68 | 68 | }, |
69 | 69 | name: 'Teachers', |
70 | 70 | component: () => |
71 | - import( | |
71 | + import ( | |
72 | 72 | /* webpackChunkName: "routes" */ |
73 | 73 | /* webpackMode: "lazy-once" */ |
74 | 74 | `@/pages/Teachers/teachers.vue` |
... | ... | @@ -81,7 +81,7 @@ export default [{ |
81 | 81 | }, |
82 | 82 | name: 'Login', |
83 | 83 | component: () => |
84 | - import( | |
84 | + import ( | |
85 | 85 | /* webpackChunkName: "routes" */ |
86 | 86 | /* webpackMode: "lazy-once" */ |
87 | 87 | `@/pages/Authentication/Login.vue` |
... | ... | @@ -94,7 +94,7 @@ export default [{ |
94 | 94 | }, |
95 | 95 | name: 'forgetpassword', |
96 | 96 | component: () => |
97 | - import( | |
97 | + import ( | |
98 | 98 | /* webpackChunkName: "routes" */ |
99 | 99 | /* webpackMode: "lazy-once" */ |
100 | 100 | `@/pages/Authentication/forgetpassword.vue` |
... | ... | @@ -108,7 +108,7 @@ export default [{ |
108 | 108 | type: route.query.type |
109 | 109 | }), |
110 | 110 | component: () => |
111 | - import( | |
111 | + import ( | |
112 | 112 | /* webpackChunkName: "routes" */ |
113 | 113 | /* webpackMode: "lazy-once" */ |
114 | 114 | `@/pages/Students/students.vue` |
... | ... | @@ -122,7 +122,7 @@ export default [{ |
122 | 122 | type: route.query.type |
123 | 123 | }), |
124 | 124 | component: () => |
125 | - import( | |
125 | + import ( | |
126 | 126 | /* webpackChunkName: "routes" */ |
127 | 127 | /* webpackMode: "lazy-once" */ |
128 | 128 | `@/pages/Class/addclass.vue` |
... | ... | @@ -136,7 +136,7 @@ export default [{ |
136 | 136 | type: route.query.type |
137 | 137 | }), |
138 | 138 | component: () => |
139 | - import( | |
139 | + import ( | |
140 | 140 | /* webpackChunkName: "routes" */ |
141 | 141 | /* webpackMode: "lazy-once" */ |
142 | 142 | `@/pages/Section/section.vue` |
... | ... | @@ -150,7 +150,7 @@ export default [{ |
150 | 150 | type: route.query.type |
151 | 151 | }), |
152 | 152 | component: () => |
153 | - import( | |
153 | + import ( | |
154 | 154 | /* webpackChunkName: "routes" */ |
155 | 155 | /* webpackMode: "lazy-once" */ |
156 | 156 | `@/pages/NoticeBoard/noticeBoard.vue` |
... | ... | @@ -164,7 +164,7 @@ export default [{ |
164 | 164 | type: route.query.type |
165 | 165 | }), |
166 | 166 | component: () => |
167 | - import( | |
167 | + import ( | |
168 | 168 | /* webpackChunkName: "routes" */ |
169 | 169 | /* webpackMode: "lazy-once" */ |
170 | 170 | `@/pages/News/news.vue` |
... | ... | @@ -189,7 +189,7 @@ export default [{ |
189 | 189 | type: route.query.type |
190 | 190 | }), |
191 | 191 | component: () => |
192 | - import( | |
192 | + import ( | |
193 | 193 | /* webpackChunkName: "routes" */ |
194 | 194 | /* webpackMode: "lazy-once" */ |
195 | 195 | `@/pages/TimeTable/timeTable.vue` |
... | ... | @@ -203,7 +203,7 @@ export default [{ |
203 | 203 | type: route.query.type |
204 | 204 | }), |
205 | 205 | component: () => |
206 | - import( | |
206 | + import ( | |
207 | 207 | /* webpackChunkName: "routes" */ |
208 | 208 | /* webpackMode: "lazy-once" */ |
209 | 209 | `@/pages/Notification/notification.vue` |
... | ... | @@ -217,7 +217,7 @@ export default [{ |
217 | 217 | type: route.query.type |
218 | 218 | }), |
219 | 219 | component: () => |
220 | - import( | |
220 | + import ( | |
221 | 221 | /* webpackChunkName: "routes" */ |
222 | 222 | /* webpackMode: "lazy-once" */ |
223 | 223 | `@/pages/Parent/parents.vue` |
... | ... | @@ -243,7 +243,7 @@ export default [{ |
243 | 243 | type: route.query.type |
244 | 244 | }), |
245 | 245 | component: () => |
246 | - import( | |
246 | + import ( | |
247 | 247 | /* webpackChunkName: "routes" */ |
248 | 248 | /* webpackMode: "lazy-once" */ |
249 | 249 | `@/pages/Dashboard/dashboard.vue` |
... | ... | @@ -257,7 +257,7 @@ export default [{ |
257 | 257 | type: route.query.type |
258 | 258 | }), |
259 | 259 | component: () => |
260 | - import( | |
260 | + import ( | |
261 | 261 | /* webpackChunkName: "routes" */ |
262 | 262 | /* webpackMode: "lazy-once" */ |
263 | 263 | `@/pages/Dashboard/CourseDetails.vue` |
... | ... | @@ -271,7 +271,7 @@ export default [{ |
271 | 271 | type: route.query.type |
272 | 272 | }), |
273 | 273 | component: () => |
274 | - import( | |
274 | + import ( | |
275 | 275 | /* webpackChunkName: "routes" */ |
276 | 276 | /* webpackMode: "lazy-once" */ |
277 | 277 | `@/pages/Dashboard/ChapterInfo.vue` |
... | ... | @@ -285,13 +285,41 @@ export default [{ |
285 | 285 | type: route.query.type |
286 | 286 | }), |
287 | 287 | component: () => |
288 | - import( | |
288 | + import ( | |
289 | 289 | /* webpackChunkName: "routes" */ |
290 | 290 | /* webpackMode: "lazy-once" */ |
291 | 291 | `@/pages/Dashboard/CourseDiscussionForum.vue` |
292 | 292 | ) |
293 | 293 | }, |
294 | 294 | { |
295 | + path: '/courseDiscussion', | |
296 | + meta: {}, | |
297 | + name: 'Course Discussion', | |
298 | + props: (route) => ({ | |
299 | + type: route.query.type | |
300 | + }), | |
301 | + component: () => | |
302 | + import ( | |
303 | + /* webpackChunkName: "routes" */ | |
304 | + /* webpackMode: "lazy-once" */ | |
305 | + `@/pages/Course/courseDiscussion.vue` | |
306 | + ) | |
307 | + }, | |
308 | + { | |
309 | + path: '/courseDiscussionesForm/:discussionId', | |
310 | + meta: {}, | |
311 | + name: 'Course Discussiones Form', | |
312 | + props: (route) => ({ | |
313 | + type: route.query.type | |
314 | + }), | |
315 | + component: () => | |
316 | + import ( | |
317 | + /* webpackChunkName: "routes" */ | |
318 | + /* webpackMode: "lazy-once" */ | |
319 | + `@/pages/Course/discussion.vue` | |
320 | + ) | |
321 | + }, | |
322 | + { | |
295 | 323 | path: '/Announcement', |
296 | 324 | meta: {}, |
297 | 325 | name: 'Announcement', |
... | ... | @@ -299,7 +327,7 @@ export default [{ |
299 | 327 | type: route.query.type |
300 | 328 | }), |
301 | 329 | component: () => |
302 | - import( | |
330 | + import ( | |
303 | 331 | /* webpackChunkName: "routes" */ |
304 | 332 | /* webpackMode: "lazy-once" */ |
305 | 333 | `@/pages/Dashboard/Announcement.vue` |
... | ... | @@ -313,7 +341,7 @@ export default [{ |
313 | 341 | type: route.query.type |
314 | 342 | }), |
315 | 343 | component: () => |
316 | - import( | |
344 | + import ( | |
317 | 345 | /* webpackChunkName: "routes" */ |
318 | 346 | /* webpackMode: "lazy-once" */ |
319 | 347 | `@/pages/socialMedia/socialMedia.vue` |
... | ... | @@ -327,7 +355,7 @@ export default [{ |
327 | 355 | type: route.query.type |
328 | 356 | }), |
329 | 357 | component: () => |
330 | - import( | |
358 | + import ( | |
331 | 359 | /* webpackChunkName: "routes" */ |
332 | 360 | /* webpackMode: "lazy-once" */ |
333 | 361 | `@/pages/Gallery/gallery.vue` |
... | ... | @@ -341,7 +369,7 @@ export default [{ |
341 | 369 | type: route.query.type |
342 | 370 | }), |
343 | 371 | component: () => |
344 | - import( | |
372 | + import ( | |
345 | 373 | /* webpackChunkName: "routes" */ |
346 | 374 | /* webpackMode: "lazy-once" */ |
347 | 375 | `@/pages/Event/event.vue` |
... | ... | @@ -355,7 +383,7 @@ export default [{ |
355 | 383 | type: route.query.type |
356 | 384 | }), |
357 | 385 | component: () => |
358 | - import( | |
386 | + import ( | |
359 | 387 | /* webpackChunkName: "routes" */ |
360 | 388 | /* webpackMode: "lazy-once" */ |
361 | 389 | `@/pages/Holiday/holiday.vue` |
... | ... | @@ -369,7 +397,7 @@ export default [{ |
369 | 397 | type: route.query.type |
370 | 398 | }), |
371 | 399 | component: () => |
372 | - import( | |
400 | + import ( | |
373 | 401 | /* webpackChunkName: "routes" */ |
374 | 402 | /* webpackMode: "lazy-once" */ |
375 | 403 | `@/pages/User/user.vue` |
... | ... | @@ -383,7 +411,7 @@ export default [{ |
383 | 411 | type: route.query.type |
384 | 412 | }), |
385 | 413 | component: () => |
386 | - import( | |
414 | + import ( | |
387 | 415 | /* webpackChunkName: "routes" */ |
388 | 416 | /* webpackMode: "lazy-once" */ |
389 | 417 | `@/pages/Attendence/studentAttendence.vue` |
... | ... | @@ -397,7 +425,7 @@ export default [{ |
397 | 425 | type: route.query.type |
398 | 426 | }), |
399 | 427 | component: () => |
400 | - import( | |
428 | + import ( | |
401 | 429 | /* webpackChunkName: "routes" */ |
402 | 430 | /* webpackMode: "lazy-once" */ |
403 | 431 | `@/pages/Attendence/teacherAttendence.vue` |
... | ... | @@ -411,7 +439,7 @@ export default [{ |
411 | 439 | type: route.query.type |
412 | 440 | }), |
413 | 441 | component: () => |
414 | - import( | |
442 | + import ( | |
415 | 443 | `@/pages/Payroll/salaryTemplate.vue` |
416 | 444 | ) |
417 | 445 | }, |
... | ... | @@ -423,7 +451,7 @@ export default [{ |
423 | 451 | type: route.query.type |
424 | 452 | }), |
425 | 453 | component: () => |
426 | - import( | |
454 | + import ( | |
427 | 455 | `@/pages/Payroll/hourlyTemplate.vue` |
428 | 456 | ) |
429 | 457 | }, |
... | ... | @@ -435,7 +463,7 @@ export default [{ |
435 | 463 | type: route.query.type |
436 | 464 | }), |
437 | 465 | component: () => |
438 | - import( | |
466 | + import ( | |
439 | 467 | `@/pages/Payroll/manageSalary.vue` |
440 | 468 | ) |
441 | 469 | }, |
... | ... | @@ -457,7 +485,7 @@ export default [{ |
457 | 485 | type: route.query.type |
458 | 486 | }), |
459 | 487 | component: () => |
460 | - import( | |
488 | + import ( | |
461 | 489 | /* webpackChunkName: "routes" */ |
462 | 490 | /* webpackMode: "lazy-once" */ |
463 | 491 | `@/pages/Attendence/userAttendence.vue` |
... | ... | @@ -471,7 +499,7 @@ export default [{ |
471 | 499 | type: route.query.type |
472 | 500 | }), |
473 | 501 | component: () => |
474 | - import( | |
502 | + import ( | |
475 | 503 | /* webpackChunkName: "routes" */ |
476 | 504 | /* webpackMode: "lazy-once" */ |
477 | 505 | `@/pages/Account/feeTypes.vue` |
... | ... | @@ -485,7 +513,7 @@ export default [{ |
485 | 513 | type: route.query.type |
486 | 514 | }), |
487 | 515 | component: () => |
488 | - import( | |
516 | + import ( | |
489 | 517 | /* webpackChunkName: "routes" */ |
490 | 518 | /* webpackMode: "lazy-once" */ |
491 | 519 | `@/pages/Account/invoice.vue` |
... | ... | @@ -499,7 +527,7 @@ export default [{ |
499 | 527 | type: route.query.type |
500 | 528 | }), |
501 | 529 | component: () => |
502 | - import( | |
530 | + import ( | |
503 | 531 | /* webpackChunkName: "routes" */ |
504 | 532 | /* webpackMode: "lazy-once" */ |
505 | 533 | `@/pages/Account/paymentHistory.vue` |
... | ... | @@ -513,7 +541,7 @@ export default [{ |
513 | 541 | type: route.query.type |
514 | 542 | }), |
515 | 543 | component: () => |
516 | - import( | |
544 | + import ( | |
517 | 545 | /* webpackChunkName: "routes" */ |
518 | 546 | /* webpackMode: "lazy-once" */ |
519 | 547 | `@/pages/Account/expense.vue` |
... | ... | @@ -527,7 +555,7 @@ export default [{ |
527 | 555 | type: route.query.type |
528 | 556 | }), |
529 | 557 | component: () => |
530 | - import( | |
558 | + import ( | |
531 | 559 | /* webpackChunkName: "routes" */ |
532 | 560 | /* webpackMode: "lazy-once" */ |
533 | 561 | `@/pages/Account/income.vue` |
... | ... | @@ -541,7 +569,7 @@ export default [{ |
541 | 569 | type: route.query.type |
542 | 570 | }), |
543 | 571 | component: () => |
544 | - import( | |
572 | + import ( | |
545 | 573 | /* webpackChunkName: "routes" */ |
546 | 574 | /* webpackMode: "lazy-once" */ |
547 | 575 | `@/pages/Library/member.vue` |
... | ... | @@ -555,7 +583,7 @@ export default [{ |
555 | 583 | type: route.query.type |
556 | 584 | }), |
557 | 585 | component: () => |
558 | - import( | |
586 | + import ( | |
559 | 587 | /* webpackChunkName: "routes" */ |
560 | 588 | /* webpackMode: "lazy-once" */ |
561 | 589 | `@/pages/Library/books.vue` |
... | ... | @@ -569,7 +597,7 @@ export default [{ |
569 | 597 | type: route.query.type |
570 | 598 | }), |
571 | 599 | component: () => |
572 | - import( | |
600 | + import ( | |
573 | 601 | /* webpackChunkName: "routes" */ |
574 | 602 | /* webpackMode: "lazy-once" */ |
575 | 603 | `@/pages/Library/issue.vue` |
... | ... | @@ -583,7 +611,7 @@ export default [{ |
583 | 611 | type: route.query.type |
584 | 612 | }), |
585 | 613 | component: () => |
586 | - import( | |
614 | + import ( | |
587 | 615 | /* webpackChunkName: "routes" */ |
588 | 616 | /* webpackMode: "lazy-once" */ |
589 | 617 | `@/pages/Library/eBook.vue` |
... | ... | @@ -595,7 +623,7 @@ export default [{ |
595 | 623 | name: 'Edit Invoice', |
596 | 624 | // props: (route) => ({ type: route.query.type }), |
597 | 625 | component: () => |
598 | - import( | |
626 | + import ( | |
599 | 627 | /* webpackChunkName: "routes" */ |
600 | 628 | /* webpackMode: "lazy-once" */ |
601 | 629 | `@/pages/Account/editInvoice.vue` |
... | ... | @@ -609,7 +637,7 @@ export default [{ |
609 | 637 | type: route.query.type |
610 | 638 | }), |
611 | 639 | component: () => |
612 | - import( | |
640 | + import ( | |
613 | 641 | /* webpackChunkName: "routes" */ |
614 | 642 | /* webpackMode: "lazy-once" */ |
615 | 643 | `@/pages/Attendence/viewStudentsAttendence.vue` |
... | ... | @@ -623,7 +651,7 @@ export default [{ |
623 | 651 | type: route.query.type |
624 | 652 | }), |
625 | 653 | component: () => |
626 | - import( | |
654 | + import ( | |
627 | 655 | /* webpackChunkName: "routes" */ |
628 | 656 | /* webpackMode: "lazy-once" */ |
629 | 657 | `@/pages/Attendence/viewTeacherAttendence.vue` |
... | ... | @@ -637,7 +665,7 @@ export default [{ |
637 | 665 | type: route.query.type |
638 | 666 | }), |
639 | 667 | component: () => |
640 | - import( | |
668 | + import ( | |
641 | 669 | /* webpackChunkName: "routes" */ |
642 | 670 | /* webpackMode: "lazy-once" */ |
643 | 671 | `@/pages/Account/viewInvoice.vue` |
... | ... | @@ -651,7 +679,7 @@ export default [{ |
651 | 679 | type: route.query.type |
652 | 680 | }), |
653 | 681 | component: () => |
654 | - import( | |
682 | + import ( | |
655 | 683 | /* webpackChunkName: "routes" */ |
656 | 684 | /* webpackMode: "lazy-once" */ |
657 | 685 | `@/pages/Account/viewPaymentInvoice.vue` |
... | ... | @@ -665,7 +693,7 @@ export default [{ |
665 | 693 | type: route.query.type |
666 | 694 | }), |
667 | 695 | component: () => |
668 | - import( | |
696 | + import ( | |
669 | 697 | /* webpackChunkName: "routes" */ |
670 | 698 | /* webpackMode: "lazy-once" */ |
671 | 699 | `@/pages/Account/globalPayment.vue` |
... | ... | @@ -679,7 +707,7 @@ export default [{ |
679 | 707 | type: route.query.type |
680 | 708 | }), |
681 | 709 | component: () => |
682 | - import( | |
710 | + import ( | |
683 | 711 | /* webpackChunkName: "routes" */ |
684 | 712 | /* webpackMode: "lazy-once" */ |
685 | 713 | `@/pages/Exam/exam.vue` |
... | ... | @@ -693,7 +721,7 @@ export default [{ |
693 | 721 | type: route.query.type |
694 | 722 | }), |
695 | 723 | component: () => |
696 | - import( | |
724 | + import ( | |
697 | 725 | /* webpackChunkName: "routes" */ |
698 | 726 | /* webpackMode: "lazy-once" */ |
699 | 727 | `@/pages/Exam/grade.vue` |
... | ... | @@ -707,7 +735,7 @@ export default [{ |
707 | 735 | type: route.query.type |
708 | 736 | }), |
709 | 737 | component: () => |
710 | - import( | |
738 | + import ( | |
711 | 739 | /* webpackChunkName: "routes" */ |
712 | 740 | /* webpackMode: "lazy-once" */ |
713 | 741 | `@/pages/Exam/examSchedule.vue` |
... | ... | @@ -721,7 +749,7 @@ export default [{ |
721 | 749 | type: route.query.type |
722 | 750 | }), |
723 | 751 | component: () => |
724 | - import( | |
752 | + import ( | |
725 | 753 | /* webpackChunkName: "routes" */ |
726 | 754 | /* webpackMode: "lazy-once" */ |
727 | 755 | `@/pages/Exam/examAttendence.vue` |
... | ... | @@ -735,7 +763,7 @@ export default [{ |
735 | 763 | type: route.query.type |
736 | 764 | }), |
737 | 765 | component: () => |
738 | - import( | |
766 | + import ( | |
739 | 767 | /* webpackChunkName: "routes" */ |
740 | 768 | /* webpackMode: "lazy-once" */ |
741 | 769 | `@/pages/Mark/mark.vue` |
... | ... | @@ -749,7 +777,7 @@ export default [{ |
749 | 777 | type: route.query.type |
750 | 778 | }), |
751 | 779 | component: () => |
752 | - import( | |
780 | + import ( | |
753 | 781 | /* webpackChunkName: "routes" */ |
754 | 782 | /* webpackMode: "lazy-once" */ |
755 | 783 | `@/pages/Mark/viewMark.vue` |
... | ... | @@ -763,7 +791,7 @@ export default [{ |
763 | 791 | type: route.query.type |
764 | 792 | }), |
765 | 793 | component: () => |
766 | - import( | |
794 | + import ( | |
767 | 795 | /* webpackChunkName: "routes" */ |
768 | 796 | /* webpackMode: "lazy-once" */ |
769 | 797 | `@/pages/Mark/markDistribution.vue` |
... | ... | @@ -777,7 +805,7 @@ export default [{ |
777 | 805 | type: route.query.type |
778 | 806 | }), |
779 | 807 | component: () => |
780 | - import( | |
808 | + import ( | |
781 | 809 | /* webpackChunkName: "routes" */ |
782 | 810 | /* webpackMode: "lazy-once" */ |
783 | 811 | `@/pages/Meet/meet.vue` |
... | ... | @@ -791,7 +819,7 @@ export default [{ |
791 | 819 | type: route.query.type |
792 | 820 | }), |
793 | 821 | component: () => |
794 | - import( | |
822 | + import ( | |
795 | 823 | /* webpackChunkName: "routes" */ |
796 | 824 | /* webpackMode: "lazy-once" */ |
797 | 825 | `@/pages/Administrator/academicYear.vue` |
... | ... | @@ -805,7 +833,7 @@ export default [{ |
805 | 833 | type: route.query.type |
806 | 834 | }), |
807 | 835 | component: () => |
808 | - import( | |
836 | + import ( | |
809 | 837 | /* webpackChunkName: "routes" */ |
810 | 838 | /* webpackMode: "lazy-once" */ |
811 | 839 | `@/pages/Administrator/systemAdmin.vue` |
... | ... | @@ -819,7 +847,7 @@ export default [{ |
819 | 847 | type: route.query.type |
820 | 848 | }), |
821 | 849 | component: () => |
822 | - import( | |
850 | + import ( | |
823 | 851 | /* webpackChunkName: "routes" */ |
824 | 852 | /* webpackMode: "lazy-once" */ |
825 | 853 | `@/pages/Administrator/resetPassword.vue` |
... | ... | @@ -833,7 +861,7 @@ export default [{ |
833 | 861 | type: route.query.type |
834 | 862 | }), |
835 | 863 | component: () => |
836 | - import( | |
864 | + import ( | |
837 | 865 | /* webpackChunkName: "routes" */ |
838 | 866 | /* webpackMode: "lazy-once" */ |
839 | 867 | `@/pages/Administrator/role.vue` |
... | ... | @@ -847,7 +875,7 @@ export default [{ |
847 | 875 | type: route.query.type |
848 | 876 | }), |
849 | 877 | component: () => |
850 | - import( | |
878 | + import ( | |
851 | 879 | /* webpackChunkName: "routes" */ |
852 | 880 | /* webpackMode: "lazy-once" */ |
853 | 881 | `@/pages/Administrator/bulkImport.vue` |
... | ... | @@ -861,7 +889,7 @@ export default [{ |
861 | 889 | type: route.query.type |
862 | 890 | }), |
863 | 891 | component: () => |
864 | - import( | |
892 | + import ( | |
865 | 893 | /* webpackChunkName: "routes" */ |
866 | 894 | /* webpackMode: "lazy-once" */ |
867 | 895 | `@/pages/Report/studentReport.vue` |
... | ... | @@ -875,7 +903,7 @@ export default [{ |
875 | 903 | type: route.query.type |
876 | 904 | }), |
877 | 905 | component: () => |
878 | - import( | |
906 | + import ( | |
879 | 907 | /* webpackChunkName: "routes" */ |
880 | 908 | /* webpackMode: "lazy-once" */ |
881 | 909 | `@/pages/Report/progressCardReport.vue` |
... | ... | @@ -889,7 +917,7 @@ export default [{ |
889 | 917 | type: route.query.type |
890 | 918 | }), |
891 | 919 | component: () => |
892 | - import( | |
920 | + import ( | |
893 | 921 | `@/pages/Report/idCard.vue` |
894 | 922 | ) |
895 | 923 | }, |
... | ... | @@ -901,7 +929,7 @@ export default [{ |
901 | 929 | type: route.query.type |
902 | 930 | }), |
903 | 931 | component: () => |
904 | - import( | |
932 | + import ( | |
905 | 933 | `@/pages/Report/admitCard.vue` |
906 | 934 | ) |
907 | 935 | }, |
... | ... | @@ -913,7 +941,7 @@ export default [{ |
913 | 941 | type: route.query.type |
914 | 942 | }), |
915 | 943 | component: () => |
916 | - import( | |
944 | + import ( | |
917 | 945 | /* webpackChunkName: "routes" */ |
918 | 946 | /* webpackMode: "lazy-once" */ |
919 | 947 | `@/pages/generalSetting/generalSetting.vue` |
... | ... | @@ -927,7 +955,7 @@ export default [{ |
927 | 955 | type: route.query.type |
928 | 956 | }), |
929 | 957 | component: () => |
930 | - import( | |
958 | + import ( | |
931 | 959 | `@/pages/Academic/assignment.vue` |
932 | 960 | ) |
933 | 961 | }, |
... | ... | @@ -939,7 +967,7 @@ export default [{ |
939 | 967 | type: route.query.type |
940 | 968 | }), |
941 | 969 | component: () => |
942 | - import( | |
970 | + import ( | |
943 | 971 | `@/pages/Academic/routine.vue` |
944 | 972 | ) |
945 | 973 | }, |
... | ... | @@ -951,7 +979,7 @@ export default [{ |
951 | 979 | type: route.query.type |
952 | 980 | }), |
953 | 981 | component: () => |
954 | - import( | |
982 | + import ( | |
955 | 983 | `@/pages/Academic/subject.vue` |
956 | 984 | ) |
957 | 985 | }, |
... | ... | @@ -963,7 +991,7 @@ export default [{ |
963 | 991 | type: route.query.type |
964 | 992 | }), |
965 | 993 | component: () => |
966 | - import( | |
994 | + import ( | |
967 | 995 | `@/pages/Academic/syllabus.vue` |
968 | 996 | ) |
969 | 997 | }, |
... | ... | @@ -975,7 +1003,7 @@ export default [{ |
975 | 1003 | type: route.query.type |
976 | 1004 | }), |
977 | 1005 | component: () => |
978 | - import( | |
1006 | + import ( | |
979 | 1007 | /* webpackChunkName: "routes" */ |
980 | 1008 | /* webpackMode: "lazy-once" */ |
981 | 1009 | `@/pages/Course/course.vue` |
... | ... | @@ -989,7 +1017,7 @@ export default [{ |
989 | 1017 | type: route.query.type |
990 | 1018 | }), |
991 | 1019 | component: () => |
992 | - import( | |
1020 | + import ( | |
993 | 1021 | /* webpackChunkName: "routes" */ |
994 | 1022 | /* webpackMode: "lazy-once" */ |
995 | 1023 | `@/pages/Course/courseDetail.vue` |
... | ... | @@ -1003,7 +1031,7 @@ export default [{ |
1003 | 1031 | type: route.query.type |
1004 | 1032 | }), |
1005 | 1033 | component: () => |
1006 | - import( | |
1034 | + import ( | |
1007 | 1035 | /* webpackChunkName: "routes" */ |
1008 | 1036 | /* webpackMode: "lazy-once" */ |
1009 | 1037 | `@/pages/Course/enrollStudents.vue` |
... | ... | @@ -1017,7 +1045,7 @@ export default [{ |
1017 | 1045 | type: route.query.type |
1018 | 1046 | }), |
1019 | 1047 | component: () => |
1020 | - import( | |
1048 | + import ( | |
1021 | 1049 | /* webpackChunkName: "routes" */ |
1022 | 1050 | /* webpackMode: "lazy-once" */ |
1023 | 1051 | `@/pages/changeStudents/changeStudents.vue` |
... | ... | @@ -1031,7 +1059,7 @@ export default [{ |
1031 | 1059 | type: route.query.type |
1032 | 1060 | }), |
1033 | 1061 | component: () => |
1034 | - import( | |
1062 | + import ( | |
1035 | 1063 | /* webpackChunkName: "routes" */ |
1036 | 1064 | /* webpackMode: "lazy-once" */ |
1037 | 1065 | `@/pages/Annoucement/annoucement.vue` |
... | ... | @@ -1045,7 +1073,7 @@ export default [{ |
1045 | 1073 | type: route.query.type |
1046 | 1074 | }), |
1047 | 1075 | component: () => |
1048 | - import( | |
1076 | + import ( | |
1049 | 1077 | /* webpackChunkName: "routes" */ |
1050 | 1078 | /* webpackMode: "lazy-once" */ |
1051 | 1079 | `@/pages/meetingEvent/meetingEvent.vue` |
... | ... | @@ -1061,7 +1089,7 @@ export default [{ |
1061 | 1089 | type: route.query.type |
1062 | 1090 | }), |
1063 | 1091 | component: () => |
1064 | - import( | |
1092 | + import ( | |
1065 | 1093 | /* webpackChunkName: "routes" */ |
1066 | 1094 | /* webpackMode: "lazy-once" */ |
1067 | 1095 | `@/pages/School/school.vue` |
... | ... | @@ -1075,7 +1103,7 @@ export default [{ |
1075 | 1103 | type: route.query.type |
1076 | 1104 | }), |
1077 | 1105 | component: () => |
1078 | - import( | |
1106 | + import ( | |
1079 | 1107 | /* webpackChunkName: "routes" */ |
1080 | 1108 | /* webpackMode: "lazy-once" */ |
1081 | 1109 | `@/pages/School/viewSchoolDashboard.vue` | ... | ... |