Commit 275b17e4fb007f8a0fbc8457eb390fbc5dcda635

Authored by Shikha Mishra
1 parent c301facad4
Exists in master and in 1 other branch ui-design

Integrated new functionality of course attendance and Show attendance for a part…

…icular course of students
1 const adminMenu = [ 1 const adminMenu = [
2 // { header: 'Apps' }, 2 // { header: 'Apps' },
3 { 3 {
4 title: 'Dashboard', 4 title: 'Dashboard',
5 // group: 'apps', 5 // group: 'apps',
6 name: 'Dashboard', 6 name: 'Dashboard',
7 icon: '/static/icon/dashboard.png', 7 icon: '/static/icon/dashboard.png',
8 }, 8 },
9 { 9 {
10 title: 'Class', 10 title: 'Class',
11 // group: 'apps', 11 // group: 'apps',
12 name: 'Class', 12 name: 'Class',
13 icon: '/static/icon/class.png', 13 icon: '/static/icon/class.png',
14 }, 14 },
15 { 15 {
16 title: 'Course', 16 title: 'Course',
17 group: 'AdminCourse', 17 group: 'AdminCourse',
18 component: 'AdminCourse', 18 component: 'AdminCourse',
19 icon: '/static/icon/attendence.png', 19 icon: '/static/icon/attendence.png',
20 items: [ 20 items: [
21 { name: 'AssignTeachers', title: 'Assign Teachers', component: 'AssignTeachers', action: '', }, 21 { name: 'AssignTeachers', title: 'Assign Teachers', component: 'AssignTeachers', action: '', },
22 22
23 ] 23 ]
24 }, 24 },
25 { 25 {
26 title: 'Section', 26 title: 'Section',
27 // group: 'apps', 27 // group: 'apps',
28 name: 'Section', 28 name: 'Section',
29 icon: '/static/icon/section.png', 29 icon: '/static/icon/section.png',
30 }, 30 },
31 // { 31 // {
32 // title: 'Subjects', 32 // title: 'Subjects',
33 // name: 'Subject', 33 // name: 'Subject',
34 // icon: '/static/icon/subject.png', 34 // icon: '/static/icon/subject.png',
35 // }, 35 // },
36 { 36 {
37 title: 'Parents', 37 title: 'Parents',
38 // group: 'apps', 38 // group: 'apps',
39 name: 'Parents', 39 name: 'Parents',
40 icon: '/static/icon/parents.png', 40 icon: '/static/icon/parents.png',
41 }, 41 },
42 { 42 {
43 title: 'Teachers', 43 title: 'Teachers',
44 // group: '', 44 // group: '',
45 name: 'Teachers', 45 name: 'Teachers',
46 icon: '/static/icon/teacher.png', 46 icon: '/static/icon/teacher.png',
47 }, 47 },
48 { 48 {
49 title: 'Students', 49 title: 'Students',
50 // group: 'apps', 50 // group: 'apps',
51 name: 'Students', 51 name: 'Students',
52 icon: '/static/icon/student.png', 52 icon: '/static/icon/student.png',
53 }, 53 },
54 { 54 {
55 title: 'User', 55 title: 'User',
56 name: 'User', 56 name: 'User',
57 icon: '/static/icon/users.png', 57 icon: '/static/icon/users.png',
58 }, 58 },
59 { 59 {
60 title: 'Attendance', 60 title: 'Attendance',
61 group: 'Attendance', 61 group: 'Attendance',
62 component: 'Attendance', 62 component: 'Attendance',
63 icon: '/static/icon/attendence.png', 63 icon: '/static/icon/attendence.png',
64 items: [ 64 items: [
65 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, 65 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', },
66 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, 66 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', },
67 { name: 'courseAttendance', title: 'Course Attendance', component: 'Course Attendance', action: '', },
67 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, 68 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', },
68 ] 69 ]
69 }, 70 },
70 { 71 {
71 title: 'Exam', 72 title: 'Exam',
72 group: 'Exam', 73 group: 'Exam',
73 component: 'Exam', 74 component: 'Exam',
74 icon: '/static/icon/exam.png', 75 icon: '/static/icon/exam.png',
75 items: [ 76 items: [
76 { name: 'Exam', title: 'Exam', component: 'Exam', action: '', }, 77 { name: 'Exam', title: 'Exam', component: 'Exam', action: '', },
77 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, 78 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', },
78 { name: 'Grade', title: 'Grade', component: 'Grade', action: '', }, 79 { name: 'Grade', title: 'Grade', component: 'Grade', action: '', },
79 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, 80 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', },
80 ] 81 ]
81 }, 82 },
82 { 83 {
83 title: 'Marks', 84 title: 'Marks',
84 group: 'Mark', 85 group: 'Mark',
85 component: 'Mark', 86 component: 'Mark',
86 icon: '/static/icon/marks.png', 87 icon: '/static/icon/marks.png',
87 items: [ 88 items: [
88 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', }, 89 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', },
89 { name: 'MarkDistribution', title: 'Mark Distribution', component: 'Mark Distribution', action: '', }, 90 { name: 'MarkDistribution', title: 'Mark Distribution', component: 'Mark Distribution', action: '', },
90 // { name: 'Promotion', title: 'promotion', component: 'Promotion', action: '', }, 91 // { name: 'Promotion', title: 'promotion', component: 'Promotion', action: '', },
91 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, 92 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', },
92 ] 93 ]
93 }, 94 },
94 { 95 {
95 title: 'Academic', 96 title: 'Academic',
96 group: 'Academic', 97 group: 'Academic',
97 component: 'Academic', 98 component: 'Academic',
98 icon: '/static/icon/school.png', 99 icon: '/static/icon/school.png',
99 items: [ 100 items: [
100 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, 101 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', },
101 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, 102 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', },
102 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, 103 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', },
103 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, 104 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', },
104 ] 105 ]
105 }, 106 },
106 { 107 {
107 title: 'Administrator', 108 title: 'Administrator',
108 group: 'Administrator', 109 group: 'Administrator',
109 component: 'Administrator', 110 component: 'Administrator',
110 icon: '/static/icon/adminstrator.png', 111 icon: '/static/icon/adminstrator.png',
111 items: [ 112 items: [
112 { name: 'AcademicYear', title: 'Academic Year', component: 'Academic Year', action: '', }, 113 { name: 'AcademicYear', title: 'Academic Year', component: 'Academic Year', action: '', },
113 // { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', }, 114 // { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', },
114 { name: 'resetPassword', title: 'Change Password', component: 'Change Password', action: '', }, 115 { name: 'resetPassword', title: 'Change Password', component: 'Change Password', action: '', },
115 { name: 'Role', title: 'Role', component: 'Role', action: '', }, 116 { name: 'Role', title: 'Role', component: 'Role', action: '', },
116 { name: 'BulkImport', title: 'Bulk Import', component: 'Bulk Import', action: '', }, 117 { name: 'BulkImport', title: 'Bulk Import', component: 'Bulk Import', action: '', },
117 118
118 ] 119 ]
119 }, 120 },
120 { 121 {
121 title: 'Payroll', 122 title: 'Payroll',
122 group: 'Payroll', 123 group: 'Payroll',
123 component: 'Payroll', 124 component: 'Payroll',
124 icon: '/static/icon/dollar.png', 125 icon: '/static/icon/dollar.png',
125 items: [ 126 items: [
126 { name: 'salaryTemplate', title: 'Salary Template', component: 'Salary Template', action: '', }, 127 { name: 'salaryTemplate', title: 'Salary Template', component: 'Salary Template', action: '', },
127 { name: 'hourlyTemplate', title: 'Hourly Template', component: 'Hourly Template', action: '', }, 128 { name: 'hourlyTemplate', title: 'Hourly Template', component: 'Hourly Template', action: '', },
128 { name: 'manageSalary', title: 'Manage Salary', component: 'Manage Salary', action: '', }, 129 { name: 'manageSalary', title: 'Manage Salary', component: 'Manage Salary', action: '', },
129 // { name: 'makePayment', title: 'Make Payment', component: 'Make Payment', action: '', }, 130 // { name: 'makePayment', title: 'Make Payment', component: 'Make Payment', action: '', },
130 ] 131 ]
131 }, 132 },
132 { 133 {
133 title: 'Notice Board', 134 title: 'Notice Board',
134 name: 'Notice Board', 135 name: 'Notice Board',
135 icon: '/static/icon/notice board.png', 136 icon: '/static/icon/notice board.png',
136 }, 137 },
137 { 138 {
138 title: 'News', 139 title: 'News',
139 name: 'News', 140 name: 'News',
140 icon: '/static/icon/news.png', 141 icon: '/static/icon/news.png',
141 }, 142 },
142 // { 143 // {
143 // title: 'Reminder', 144 // title: 'Reminder',
144 // name: 'reminder', 145 // name: 'reminder',
145 // icon: 'alarm_add', 146 // icon: 'alarm_add',
146 // }, 147 // },
147 { 148 {
148 title: 'Time Table', 149 title: 'Time Table',
149 name: 'Time Table', 150 name: 'Time Table',
150 icon: '/static/icon/time table.png', 151 icon: '/static/icon/time table.png',
151 }, 152 },
152 { 153 {
153 title: 'Library', 154 title: 'Library',
154 group: 'Library', 155 group: 'Library',
155 component: 'Library', 156 component: 'Library',
156 icon: '/static/icon/library.png', 157 icon: '/static/icon/library.png',
157 items: [ 158 items: [
158 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, 159 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', },
159 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 160 { name: 'Books', title: 'Books', component: 'Books', action: '', },
160 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, 161 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', },
161 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } 162 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', }
162 163
163 ] 164 ]
164 }, 165 },
165 { 166 {
166 title: 'Report', 167 title: 'Report',
167 group: 'Report', 168 group: 'Report',
168 component: 'Report', 169 component: 'Report',
169 icon: '/static/icon/reports.png', 170 icon: '/static/icon/reports.png',
170 items: [ 171 items: [
171 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, 172 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', },
172 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, 173 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', },
173 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, 174 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', },
174 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } 175 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', }
175 ] 176 ]
176 }, 177 },
177 { 178 {
178 title: 'Notification', 179 title: 'Notification',
179 name: 'Notification', 180 name: 'Notification',
180 icon: '/static/icon/notification.png', 181 icon: '/static/icon/notification.png',
181 }, 182 },
182 { 183 {
183 title: 'Social Media', 184 title: 'Social Media',
184 name: 'Social Media', 185 name: 'Social Media',
185 icon: '/static/icon/events.png', 186 icon: '/static/icon/events.png',
186 }, 187 },
187 { 188 {
188 title: 'Gallery', 189 title: 'Gallery',
189 name: 'Gallery', 190 name: 'Gallery',
190 icon: '/static/icon/gallery.png', 191 icon: '/static/icon/gallery.png',
191 }, 192 },
192 { 193 {
193 title: 'Event', 194 title: 'Event',
194 name: 'Event', 195 name: 'Event',
195 icon: '/static/icon/events.png', 196 icon: '/static/icon/events.png',
196 }, 197 },
197 { 198 {
198 title: 'Account', 199 title: 'Account',
199 group: 'Account', 200 group: 'Account',
200 component: 'Account', 201 component: 'Account',
201 icon: '/static/icon/accounts.png', 202 icon: '/static/icon/accounts.png',
202 items: [ 203 items: [
203 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, 204 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', },
204 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, 205 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', },
205 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, 206 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', },
206 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, 207 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', },
207 { name: 'Income', title: 'Income', component: 'Income', action: '', }, 208 { name: 'Income', title: 'Income', component: 'Income', action: '', },
208 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } 209 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', }
209 ] 210 ]
210 }, 211 },
211 { 212 {
212 title: 'Holiday', 213 title: 'Holiday',
213 name: 'Holiday', 214 name: 'Holiday',
214 icon: '/static/icon/holiday.png', 215 icon: '/static/icon/holiday.png',
215 }, 216 },
216 { 217 {
217 title: 'General Setting', 218 title: 'General Setting',
218 name: 'General Setting', 219 name: 'General Setting',
219 icon: '/static/icon/settings.png', 220 icon: '/static/icon/settings.png',
220 } 221 }
221 ]; 222 ];
222 223
223 const libraryMenu = [{ 224 const libraryMenu = [{
224 title: 'Dashboard', 225 title: 'Dashboard',
225 name: 'Dashboard', 226 name: 'Dashboard',
226 icon: '/static/icon/dashboard.png', 227 icon: '/static/icon/dashboard.png',
227 }, 228 },
228 { 229 {
229 title: 'Library', 230 title: 'Library',
230 group: 'Library', 231 group: 'Library',
231 component: 'Library', 232 component: 'Library',
232 icon: '/static/icon/library.png', 233 icon: '/static/icon/library.png',
233 items: [ 234 items: [
234 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, 235 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', },
235 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 236 { name: 'Books', title: 'Books', component: 'Books', action: '', },
236 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, 237 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', },
237 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } 238 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', }
238 239
239 ] 240 ]
240 }, 241 },
241 ]; 242 ];
242 243
243 const accountMenu = [{ 244 const accountMenu = [{
244 title: 'Dashboard', 245 title: 'Dashboard',
245 name: 'Dashboard', 246 name: 'Dashboard',
246 icon: '/static/icon/dashboard.png', 247 icon: '/static/icon/dashboard.png',
247 }, 248 },
248 249
249 { 250 {
250 title: 'Account', 251 title: 'Account',
251 group: 'Account', 252 group: 'Account',
252 component: 'Account', 253 component: 'Account',
253 icon: '/static/icon/accounts.png', 254 icon: '/static/icon/accounts.png',
254 items: [ 255 items: [
255 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, 256 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', },
256 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, 257 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', },
257 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, 258 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', },
258 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, 259 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', },
259 { name: 'Income', title: 'Income', component: 'Income', action: '', }, 260 { name: 'Income', title: 'Income', component: 'Income', action: '', },
260 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } 261 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', }
261 ] 262 ]
262 }, 263 },
263 ]; 264 ];
264 265
265 const schoolMenu = [ 266 const schoolMenu = [
266 // { header: 'Apps' }, 267 // { header: 'Apps' },
267 { 268 {
268 title: 'Dashboard', 269 title: 'Dashboard',
269 // group: 'apps', 270 // group: 'apps',
270 name: 'View School Dashboard', 271 name: 'View School Dashboard',
271 icon: '/static/icon/dashboard.png', 272 icon: '/static/icon/dashboard.png',
272 }, 273 },
273 { 274 {
274 title: 'School', 275 title: 'School',
275 // group: 'apps', 276 // group: 'apps',
276 name: 'School', 277 name: 'School',
277 icon: '/static/icon/school.png', 278 icon: '/static/icon/school.png',
278 }, 279 },
279 { 280 {
280 title: 'App Version', 281 title: 'App Version',
281 name: 'App Version', 282 name: 'App Version',
282 icon: '/static/icon/phone.png', 283 icon: '/static/icon/phone.png',
283 } 284 }
284 ]; 285 ];
285 286
286 const teacherMenu = [{ 287 const teacherMenu = [{
287 title: 'Dashboard', 288 title: 'Dashboard',
288 name: 'Dashboard', 289 name: 'Dashboard',
289 icon: '/static/icon/dashboard.png', 290 icon: '/static/icon/dashboard.png',
290 }, 291 },
291 { 292 {
292 title: 'Parents', 293 title: 'Parents',
293 // group: 'apps', 294 // group: 'apps',
294 name: 'Parents', 295 name: 'Parents',
295 icon: '/static/icon/parents.png', 296 icon: '/static/icon/parents.png',
296 }, 297 },
297 { 298 {
298 title: 'Teachers', 299 title: 'Teachers',
299 // group: '', 300 // group: '',
300 name: 'Teachers', 301 name: 'Teachers',
301 icon: '/static/icon/teacher.png', 302 icon: '/static/icon/teacher.png',
302 }, 303 },
303 { 304 {
304 title: 'Students', 305 title: 'Students',
305 // group: 'apps', 306 // group: 'apps',
306 name: 'Students', 307 name: 'Students',
307 icon: '/static/icon/student.png', 308 icon: '/static/icon/student.png',
308 }, 309 },
309 { 310 {
310 title: 'Academic', 311 title: 'Academic',
311 group: 'Academic', 312 group: 'Academic',
312 component: 'Academic', 313 component: 'Academic',
313 icon: '/static/icon/school.png', 314 icon: '/static/icon/school.png',
314 items: [ 315 items: [
315 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, 316 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', },
316 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, 317 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', },
317 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, 318 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', },
318 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, 319 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', },
319 ] 320 ]
320 }, 321 },
321 { 322 {
322 title: 'Course', 323 title: 'Course',
323 group: 'Course', 324 group: 'Course',
324 component: 'Course', 325 component: 'Course',
325 icon: '/static/icon/school.png', 326 icon: '/static/icon/school.png',
326 items: [ 327 items: [
327 { name: 'Course', title: 'Course', component: 'Course', action: '', }, 328 { name: 'Course', title: 'Course', component: 'Course', action: '', },
328 { name: 'Enroll Students', title: 'Enroll Students', component: 'Enroll Students', action: '', }, 329 { name: 'Enroll Students', title: 'Enroll Students', component: 'Enroll Students', action: '', },
329 { name: 'Course Detail', title: 'Course Detail', component: 'Course Detail', action: '', }, 330 { name: 'Course Detail', title: 'Course Detail', component: 'Course Detail', action: '', },
330 { name: 'Course Discussion', title: 'Course Discussion', component: 'Course Discussion', action: '', }, 331 { name: 'Course Discussion', title: 'Course Discussion', component: 'Course Discussion', action: '', },
331 ] 332 ]
332 }, 333 },
333 { 334 {
334 title: 'Annoucement', 335 title: 'Annoucement',
335 // group: 'apps', 336 // group: 'apps',
336 name: 'Annoucement', 337 name: 'Annoucement',
337 icon: '/static/icon/student.png', 338 icon: '/static/icon/student.png',
338 }, 339 },
339 { 340 {
340 title: 'Meeting Event', 341 title: 'Meeting Event',
341 // group: 'apps', 342 // group: 'apps',
342 name: 'Meeting Event', 343 name: 'Meeting Event',
343 icon: '/static/icon/student.png', 344 icon: '/static/icon/student.png',
344 }, 345 },
345 { 346 {
346 title: 'Attendance', 347 title: 'Attendance',
347 group: 'Attendance', 348 group: 'Attendance',
348 component: 'Attendance', 349 component: 'Attendance',
349 icon: '/static/icon/attendence.png', 350 icon: '/static/icon/attendence.png',
350 items: [ 351 items: [
351 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, 352 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', },
352 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, 353 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', },
354 { name: 'courseAttendance', title: 'Course Attendance', component: 'Course Attendance', action: '', },
353 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, 355 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', },
354 ] 356 ]
355 }, 357 },
356 { 358 {
357 title: 'Exam', 359 title: 'Exam',
358 group: 'Exam', 360 group: 'Exam',
359 component: 'Exam', 361 component: 'Exam',
360 icon: '/static/icon/exam.png', 362 icon: '/static/icon/exam.png',
361 items: [ 363 items: [
362 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, 364 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', },
363 { name: 'ExamAttendence', title: 'Exam Attendence', component: 'Exam Attendence', action: '', } 365 { name: 'ExamAttendence', title: 'Exam Attendence', component: 'Exam Attendence', action: '', }
364 ] 366 ]
365 }, 367 },
366 { 368 {
367 title: 'Marks', 369 title: 'Marks',
368 group: 'Mark', 370 group: 'Mark',
369 component: 'Mark', 371 component: 'Mark',
370 icon: '/static/icon/marks.png', 372 icon: '/static/icon/marks.png',
371 items: [ 373 items: [
372 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', } 374 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', }
373 ] 375 ]
374 }, 376 },
375 { 377 {
376 title: 'Report', 378 title: 'Report',
377 group: 'Report', 379 group: 'Report',
378 component: 'Report', 380 component: 'Report',
379 icon: '/static/icon/reports.png', 381 icon: '/static/icon/reports.png',
380 items: [ 382 items: [
381 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, 383 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', },
382 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, 384 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', },
383 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, 385 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', },
384 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } 386 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', }
385 ] 387 ]
386 }, 388 },
387 { 389 {
388 title: 'Library', 390 title: 'Library',
389 group: 'Library', 391 group: 'Library',
390 component: 'Library', 392 component: 'Library',
391 icon: '/static/icon/library.png', 393 icon: '/static/icon/library.png',
392 items: [ 394 items: [
393 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 395 { name: 'Books', title: 'Books', component: 'Books', action: '', },
394 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } 396 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', }
395 397
396 ] 398 ]
397 }, 399 },
398 // { 400 // {
399 // title: 'Meet', 401 // title: 'Meet',
400 // name: 'Meet', 402 // name: 'Meet',
401 // icon: '/static/icon/meet_icon_navigation.png', 403 // icon: '/static/icon/meet_icon_navigation.png',
402 // } 404 // }
403 ]; 405 ];
404 406
405 const parentMenu = [{ 407 const parentMenu = [{
406 title: 'Dashboard', 408 title: 'Dashboard',
407 name: 'Dashboard', 409 name: 'Dashboard',
408 icon: '/static/icon/dashboard.png', 410 icon: '/static/icon/dashboard.png',
409 }, 411 },
410 { 412 {
411 title: "Change Student", 413 title: "Change Student",
412 name: 'Change Students', 414 name: 'Change Students',
413 Vicon: "face", 415 Vicon: "face",
414 click: e => { 416 click: e => {
415 // console.log(e); 417 // console.log(e);
416 } 418 }
417 }]; 419 }];
418 // reorder menu 420 // reorder menu
419 // Menu.forEach((item) => { 421 // Menu.forEach((item) => {
420 // if (item.items) { 422 // if (item.items) {
421 // item.items.sort((x, y) => { 423 // item.items.sort((x, y) => {
422 // let textA = x.title.toUpperCase(); 424 // let textA = x.title.toUpperCase();
423 // let textB = y.title.toUpperCase(); 425 // let textB = y.title.toUpperCase();
424 // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; 426 // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
425 // }); 427 // });
426 // } 428 // }
427 // }); 429 // });
428 430
429 export default { adminMenu, schoolMenu, teacherMenu, libraryMenu, accountMenu, parentMenu }; 431 export default { adminMenu, schoolMenu, teacherMenu, libraryMenu, accountMenu, parentMenu };
src/pages/Attendence/courseAttendance.vue
File was created 1 <template>
2 <v-container fluid class="body-color">
3 <v-toolbar color="transparent" flat>
4 <v-spacer></v-spacer>
5 <v-flex xs12 sm4 md2>
6 <v-select
7 small
8 :items="classList"
9 label="Select Class"
10 v-model="getAttendance.classId"
11 item-text="classNum"
12 item-value="_id"
13 name="Select Class"
14 class="px-2"
15 @change="getSection(getAttendance.classId)"
16 required
17 ></v-select>
18 </v-flex>
19 <v-flex xs12 sm4 md2>
20 <v-select
21 small
22 :items="addSection"
23 label="Select Section"
24 v-model="getAttendance.sectionId"
25 item-text="name"
26 item-value="_id"
27 name="Select Section"
28 @change="getStudentsDetail(getAttendance.sectionId)"
29 class="px-2"
30 required
31 ></v-select>
32 </v-flex>
33 </v-toolbar>
34 <v-data-table
35 :headers="headers"
36 :items="studentsData"
37 :pagination.sync="pagination"
38 :search="search"
39 >
40 <template slot="items" slot-scope="props">
41 <tr class="tr">
42 <td class="td td-row">{{ props.index + 1}}</td>
43 <td class="text-xs-center td td-row">
44 <v-avatar size="40">
45 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
46 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
47 </v-avatar>
48 </td>
49 <td class="text-xs-center td td-row">{{ props.item.name}}</td>
50 <td class="text-xs-center td td-row">{{ props.item.fatherCellNo}}</td>
51 <td class="text-xs-center td td-row">{{ props.item.email }}</td>
52 <td class="text-xs-center td td-row">
53 <router-link :to="{ name:'View Course Attendance',params: { id:props.item._id } }">
54 <v-tooltip top>
55 <img
56 slot="activator"
57 style="cursor:pointer; width:20px; height:25px; "
58 class="mr-3"
59 src="/static/icon/view.png"
60 />
61 <span>View</span>
62 </v-tooltip>
63 </router-link>
64 </td>
65 </tr>
66 </template>
67 </v-data-table>
68 <v-snackbar
69 :timeout="timeout"
70 :top="y === 'top'"
71 :right="x === 'right'"
72 :vertical="mode === 'vertical'"
73 v-model="snackbar"
74 color="color"
75 >{{ text }}</v-snackbar>
76 </v-container>
77 </template>
78
79 <script>
80 import http from "@/Services/http.js";
81 import moment from "moment";
82
83 export default {
84 data: () => ({
85 snackbar: false,
86 y: "top",
87 x: "right",
88 mode: "",
89 timeout: 3000,
90 text: "",
91 color: "",
92 show: true,
93
94 classList: [],
95 addSection: [],
96 studentsData: [],
97
98 pagination: {
99 rowsPerPage: 10,
100 },
101
102 role: "",
103 schoolRole: "",
104 search: "",
105 getAttendance: {},
106 headers: [
107 {
108 text: "No",
109 align: "",
110 sortable: false,
111 value: "index",
112 },
113 {
114 text: "Profile Pic",
115 value: "profilprofilePicUrlePicUrl",
116 sortable: false,
117 align: "center",
118 },
119 { text: "Name", value: "name", sortable: false, align: "center" },
120 {
121 text: "Mobile No",
122 value: "fatherCellNo",
123 sortable: false,
124 align: "center",
125 },
126 { text: "Email", value: "email", sortable: false, align: "center" },
127 { text: "Attendance", value: "", sortable: false, align: "center" },
128 ],
129 }),
130 methods: {
131 getAllClass() {
132 http()
133 .get("/getClassesList", {
134 headers: { Authorization: "Bearer " + this.token },
135 })
136 .then((response) => {
137 this.classList = response.data.data;
138 })
139 .catch((error) => {
140 this.snackbar = true;
141 this.color = "error";
142 this.text = error.response.data.message;
143 });
144 },
145 getSection(_id) {
146 this.showLoader = true;
147 this.studentsData = [];
148 http()
149 .get(
150 "/getSectionsList",
151 { params: { classId: _id } },
152 {
153 headers: { Authorization: "Bearer " + this.token },
154 }
155 )
156 .then((response) => {
157 this.addSection = response.data.data;
158 this.showLoader = false;
159 })
160 .catch((err) => {
161 this.showLoader = false;
162 this.snackbar = true;
163 this.color = "error";
164 this.text = error.response.data.message;
165 // console.log("err====>", err);
166 });
167 },
168 getStudentsDetail(_id) {
169 this.showLoader = true;
170 http()
171 .get("/getStudentWithClass", {
172 params: {
173 classId: this.getAttendance.classId,
174 sectionId: this.getAttendance.sectionId,
175 },
176 })
177 .then((response) => {
178 this.studentsData = response.data.data;
179 this.showLoader = false;
180 var attendance = "";
181 for (let i = 0; i < this.studentsData.length; i++) {
182 this.studentsData[i].attendance = true;
183 }
184 })
185 .catch((error) => {
186 // console.log("err====>", error);
187 this.showLoader = false;
188 this.snackbar = true;
189 this.color = "error";
190 this.text = error.response.data.message;
191 });
192 },
193 },
194 mounted() {
195 this.token = this.$store.state.token;
196 this.getAllClass();
197 this.role = this.$store.state.role;
198 },
199 };
200 </script>
src/pages/Attendence/viewCourseAttendance.vue
File was created 1 <template>
2 <v-container fluid grid-list-md class="body-color">
3 <v-dialog v-model="viewCourseAttendance" max-width="1000" scrollable persistent>
4 <v-card flat class="pa-3">
5 <v-layout>
6 <v-flex xs12>
7 <label class="title text-xs-center">Course Attendance</label>
8 <v-icon size="24" class="right" @click="viewCourseAttendance = false">cancel</v-icon>
9 </v-flex>
10 </v-layout>
11 <v-card-text>
12 <v-data-table :headers="headers" :items="courseAttendanceList">
13 <template slot="items" slot-scope="props">
14 <tr class="tr">
15 <td class="text-xs-center td td-row">{{ props.item.courseId.courseName}}</td>
16 <td class="text-xs-center td td-row">{{ props.item.startTime}}</td>
17 <td class="text-xs-center td td-row">{{ props.item.endTime }}</td>
18 </tr>
19 </template>
20 </v-data-table>
21 </v-card-text>
22 </v-card>
23 </v-dialog>
24 <div>
25 <v-layout wrap>
26 <v-flex xs12 sm12 md4>
27 <v-card flat>
28 <h3 class="py-2 text-xs-center card-style white--text">Profile</h3>
29 <v-card-text>
30 <v-container>
31 <v-layout wrap>
32 <v-flex xs12>
33 <v-layout>
34 <v-flex
35 xs12
36 class="text-xs-center text-sm-center text-md-center text-lg-center"
37 >
38 <v-avatar size="80px">
39 <img src="/static/icon/user.png" v-if="!studentData.profilePicUrl" />
40 <img
41 :src="studentData.profilePicUrl"
42 v-else-if="studentData.profilePicUrl"
43 />
44 </v-avatar>
45 </v-flex>
46 </v-layout>
47 <v-layout>
48 <v-flex xs12 sm12>
49 <h3 class="text-xs-center">
50 <b>{{ studentData.name }}</b>
51 </h3>
52 <p class="text-xs-center grey--text">Student</p>
53 </v-flex>
54 </v-layout>
55 <v-layout style="border: 1px solid lightgrey;">
56 <v-flex xs6 sm6 class="pa-0">
57 <h4 class="right">
58 <b>Roll No :</b>
59 </h4>
60 </v-flex>
61 <v-flex sm6 xs6 class="pa-0">
62 <h4>{{ studentData.rollNo }}</h4>
63 </v-flex>
64 </v-layout>
65 <v-layout style="border: 1px solid lightgrey;">
66 <v-flex xs6 sm6 class="pa-0">
67 <h4 class="right">
68 <b>Class :</b>
69 </h4>
70 </v-flex>
71 <v-flex sm6 xs6 class="right pa-0">
72 <h4>{{ studentData.classId.classNum }}</h4>
73 </v-flex>
74 </v-layout>
75 <v-layout style="border: 1px solid lightgrey;">
76 <v-flex xs6 sm6 class="right pa-0">
77 <h4 class="right">
78 <b>Section :</b>
79 </h4>
80 </v-flex>
81 <v-flex sm6 xs6 class="right pa-0">
82 <h4>{{ studentData.sectionId.name}}</h4>
83 </v-flex>
84 </v-layout>
85 </v-flex>
86 </v-layout>
87 </v-container>
88 </v-card-text>
89 </v-card>
90 </v-flex>
91 <v-flex xs12 sm12 md8>
92 <v-card flat>
93 <h3 class="py-2 text-xs-center card-style white--text">Attendence</h3>
94 <YearCalendar
95 v-model="year"
96 :activeDates="activeDates"
97 prefixClass="your_customized_wrapper_class"
98 :activeClass="activeClass"
99 @toggleDate="toggleDate"
100 ></YearCalendar>
101 </v-card>
102 </v-flex>
103 </v-layout>
104 </div>
105 <img :src="output" v-show="false" />
106 <div class="loader" v-if="showLoader">
107 <v-progress-circular indeterminate color="white"></v-progress-circular>
108 </div>
109 </v-container>
110 </template>
111
112 <script lang="js">
113 import moment from "moment";
114 import http from "@/Services/http.js";
115 import YearCalendar from "vue-material-year-calendar";
116 import jsPDF from 'jspdf';
117 // eslint-disable-next-line
118 import autoTable from 'jspdf-autotable';
119
120 export default {
121 components: { YearCalendar },
122 data() {
123 return {
124 output:null,
125 showLoader: false,
126 token: "",
127 year: new Date().getFullYear(),
128 activeDates: [],
129 activeClass: "",
130 studentData: {
131 classId: {
132 classNum: ""
133 },
134 sectionId: {
135 name: ""
136 },
137 },
138 courseAttendanceData:{},
139 courseAttendanceList: [],
140 viewCourseAttendance: false,
141 headers: [
142 { text: "Course Name", value: "courseName", sortable: false, align: "center" },
143 {
144 text: "Start Time",
145 value: "startTime",
146 sortable: false,
147 align: "center",
148 },
149 { text: "End Time", value: "endTime", sortable: false, align: "center" },
150 ],
151 selectedDates: [],
152 };
153 },
154 mounted() {
155 this.token = this.$store.state.token;
156 this.getStudentAttendence();
157 this.getStudentData();
158 },
159 methods: {
160 toggleDate (dateInfo) {
161 if (this.selectedDates.includes(dateInfo.date)) {
162 this.viewCourseAttendance = true;
163 }
164 },
165 dates: function(date) {
166 return moment(date).format("MMMM DD, YYYY");
167 },
168 getStudentAttendence() {
169 this.showLoader = true;
170 http()
171 .get(
172 "/studentAttendance",
173 { params: { studentId: this.$route.params.id } },
174 {
175 headers: { Authorization: "Bearer " + this.token }
176 }
177 )
178 .then(response => {
179 this.showLoader = false;
180 })
181 .catch(error => {
182 this.showLoader = false;
183 if (error.response.status === 401) {
184 this.$router.replace({ path: "/" });
185 this.$store.dispatch("setToken", null);
186 this.$store.dispatch("Id", null);
187 this.$store.dispatch("Role", null);
188 }
189 });
190 },
191 getStudentData() {
192 http()
193 .get(
194 "/getParticularStudentDetail",
195 { params: { studentId: this.$route.params.id } },
196 {
197 headers: { Authorization: "Bearer " + this.token }
198 }
199 )
200 .then(response => {
201 this.studentData = response.data.data;
202 this.getCourseAttendance(response.data.data.classId._id);
203 })
204 .catch(err => {
205 // console.log("err====>", err);
206 this.snackbar = true;
207 this.color = "error";
208 this.text = error.response.data.message;
209 // this.$router.replace({ path: '/' });
210 });
211 },
212 getCourseAttendance(classId) {
213 http()
214 .get(
215 "/getStudentCourseAttendance",
216 { params: { studentId: this.$route.params.id,
217 classId: classId }
218 },
219 {
220 headers: { Authorization: "Bearer " + this.token }
221 }
222 )
223 .then(response => {
224 this.courseAttendanceData = response.data.data;
225 this.courseAttendanceList = response.data.data[0].studentAttendance;
226 // console.log("===this.courseAttendanceList===", this.courseAttendanceList)
227 let array = [];
228 for (let i = 0; i < this.courseAttendanceData.length; i++) {
229 if (this.courseAttendanceData[i].date) {
230 this.selectedDates.push(this.courseAttendanceData[i].date)
231 array.push({
232 date: this.courseAttendanceData[i].date,
233 className: "green"
234 });
235 }
236 }
237 this.activeDates = array;
238 })
239 .catch(err => {
240 this.snackbar = true;
241 this.color = "error";
242 this.text = error.response.data.message;
243 });
244 },
245 profile(item) {
246 this.viewCourseAttendance = true;
247 },
248 }
249 };
250 </script>
251
252 <style lang="stylus">
253 .your_customized_wrapper_class {
254 background-color: #0aa;
255 color: white;
256
257 &.red {
258 background-color: red;
259 color: white;
260
261 &:after {
262 background-size: 100% 100%;
263 }
264 }
265
266 &.blue {
267 background-color: #0000aa;
268 color: white;
269 }
270
271 &.your_customized_classname {
272 background-color: yellow;
273 color: black;
274 }
275 }
276 </style>
277 <style scoped>
278 .card-style {
279 background: #7f62f8 !important;
280 border-color: #7f62f8 !important;
281 border-radius: 12px;
282 }
283 </style>
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 v-if="showJoinSessionButton"> 39 <v-flex v-if="showJoinSessionButton">
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 hasn't started yet</span> 48 <span class="subheading grey--twxt lighten-1" v-else>Session hasn't 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 v-if="showStartSessionButton"> 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 showStartSessionButton: true,
167 showJoinSessionButton: true, 167 showJoinSessionButton: true,
168 courseAttendanceId: {},
168 }; 169 };
169 }, 170 },
170 methods: { 171 methods: {
171 async startChat() { 172 async startChat() {
172 if (this.$store.state.role === "PARENT") { 173 if (this.$store.state.role === "PARENT") {
173 // if (this.counter == 0) { 174 // if (this.counter == 0) {
174 // console.log("enter start chat"); 175 // console.log("enter start chat");
175 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 176 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
176 if (isMobile) { 177 if (isMobile) {
177 window.open(this.appLink); 178 window.open(this.appLink);
178 this.showLoader = false; 179 this.showLoader = false;
179 } else { 180 } else {
180 this.startConference(); 181 this.startConference();
181 this.createAttendence(); 182 this.createAttendence();
182 // this.counter += 1; 183 // this.counter += 1;
183 this.showJoinSessionButton = false; 184 this.showJoinSessionButton = false;
184 } 185 }
185 // } 186 // }
186 } 187 }
187 if (this.$store.state.role === "TEACHER") { 188 if (this.$store.state.role === "TEACHER") {
188 // if (this.counter == 0) { 189 // if (this.counter == 0) {
189 this.createRoom(); 190 this.createRoom();
190 // this.counter += 1; 191 // this.counter += 1;
191 // } 192 // }
192 } 193 }
193 }, 194 },
194 // JITSI CONTAINER 195 // JITSI CONTAINER
195 startConference() { 196 startConference() {
196 // console.log("yes session started"); 197 // console.log("yes session started");
197 var _this = this; 198 var _this = this;
198 try { 199 try {
199 const domain = "meet.intrack.in"; 200 const domain = "meet.intrack.in";
200 const options = { 201 const options = {
201 audioInput: "<deviceLabel>", 202 audioInput: "<deviceLabel>",
202 audioOutput: "<deviceLabel>", 203 audioOutput: "<deviceLabel>",
203 videoInput: "<deviceLabel>", 204 videoInput: "<deviceLabel>",
204 prejoinPageEnabled: false, 205 prejoinPageEnabled: false,
205 roomName: this.room, 206 roomName: this.room,
206 height: 500, 207 height: 500,
207 parentNode: document.getElementById("jitsi-container"), 208 parentNode: document.getElementById("jitsi-container"),
208 interfaceConfigOverwrite: { 209 interfaceConfigOverwrite: {
209 filmStripOnly: false, 210 filmStripOnly: false,
210 SHOW_PROMOTIONAL_CLOSE_PAGE: false, 211 SHOW_PROMOTIONAL_CLOSE_PAGE: false,
211 SHOW_POWERED_BY: false, 212 SHOW_POWERED_BY: false,
212 SHOW_JITSI_WATERMARK: false, 213 SHOW_JITSI_WATERMARK: false,
213 TOOLBAR_BUTTONS: [ 214 TOOLBAR_BUTTONS: [
214 "microphone", 215 "microphone",
215 "camera", 216 "camera",
216 "closedcaptions", 217 "closedcaptions",
217 "desktop", 218 "desktop",
218 "fullscreen", 219 "fullscreen",
219 "fodeviceselection", 220 "fodeviceselection",
220 "hangup", 221 "hangup",
221 "profile", 222 "profile",
222 "info", 223 "info",
223 "chat", 224 "chat",
224 "recording", 225 "recording",
225 "livestreaming", 226 "livestreaming",
226 "etherpad", 227 "etherpad",
227 "sharedvideo", 228 "sharedvideo",
228 "settings", 229 "settings",
229 "raisehand", 230 "raisehand",
230 "videoquality", 231 "videoquality",
231 "filmstrip", 232 "filmstrip",
232 "invite", 233 "invite",
233 "feedback", 234 "feedback",
234 "stats", 235 "stats",
235 "shortcuts", 236 "shortcuts",
236 "tileview", 237 "tileview",
237 ], 238 ],
238 }, 239 },
239 configOverwrite: { 240 configOverwrite: {
240 disableSimulcast: false, 241 disableSimulcast: false,
241 }, 242 },
242 teacherName: "", 243 teacherName: "",
243 room: "", 244 room: "",
244 }; 245 };
245 _this.api = new JitsiMeetExternalAPI(domain, options); 246 _this.api = new JitsiMeetExternalAPI(domain, options);
246 // console.log("this.api ", this.api); 247 // console.log("this.api ", this.api);
247 _this.api.addEventListener("videoConferenceJoined", () => { 248 _this.api.addEventListener("videoConferenceJoined", () => {
248 this.showLoader = false; 249 this.showLoader = false;
249 setTimeout(() => { 250 setTimeout(() => {
250 _this.api.executeCommand("displayName", _this.username); 251 _this.api.executeCommand("displayName", _this.username);
251 _this.api.executeCommand("password", _this.roomPassword); 252 _this.api.executeCommand("password", _this.roomPassword);
252 }, 1000); 253 }, 1000);
253 }); 254 });
254 255
255 _this.api.on("passwordRequired", () => { 256 _this.api.on("passwordRequired", () => {
256 _this.api.executeCommand("password", _this.roomPassword); 257 _this.api.executeCommand("password", _this.roomPassword);
257 }); 258 });
258 259
259 _this.api.on("readyToClose", () => { 260 _this.api.on("readyToClose", () => {
260 // this.$router.push({ name: "Refresh" }); 261 // this.$router.push({ name: "Refresh" });
261 let jitsi = document.getElementById("jitsi-container"); 262 let jitsi = document.getElementById("jitsi-container");
262 jitsi.innerHTML = ""; 263 jitsi.innerHTML = "";
263 this.showStartSessionButton = true; 264 this.showStartSessionButton = true;
264 this.showJoinSessionButton = true; 265 this.showJoinSessionButton = true;
265 if (this.$store.state.role === "TEACHER") { 266 if (this.$store.state.role === "TEACHER") {
266 this.updateLiveClass(); 267 this.updateLiveClass();
267 } 268 }
268 }); 269 });
269 } catch (error) { 270 } catch (error) {
270 // console.error("Failed to load Jitsi API", error); 271 // console.error("Failed to load Jitsi API", error);
271 } 272 }
272 }, 273 },
273 openRoom() { 274 openRoom() {
274 // verify the JitsiMeetExternalAPI constructor is added to the global.. 275 // verify the JitsiMeetExternalAPI constructor is added to the global..
275 // if (this.teacherName != "" || this.room != "") { 276 // if (this.teacherName != "" || this.room != "") {
276 // if (window.JitsiMeetExternalAPI) { 277 // if (window.JitsiMeetExternalAPI) {
277 // // var person = prompt("Please enter your name:", "Rabie"); 278 // // var person = prompt("Please enter your name:", "Rabie");
278 // if (person != null || person != "") this.username = this.teacherName; 279 // if (person != null || person != "") this.username = this.teacherName;
279 // var room = prompt("Please enter your room:", "Test Room"); 280 // var room = prompt("Please enter your room:", "Test Room");
280 // if (room != null || room != "") this.room = this.room; 281 // if (room != null || room != "") this.room = this.room;
281 // this.startConference(); 282 // this.startConference();
282 // } else alert("Jitsi Meet API script not loaded"); 283 // } else alert("Jitsi Meet API script not loaded");
283 // } 284 // }
284 }, 285 },
285 286
286 createRoom(classId) { 287 createRoom(classId) {
287 // this.showLoader = true; 288 // this.showLoader = true;
288 var classId = { 289 var classId = {
289 classId: classId, 290 classId: classId,
290 }; 291 };
291 http() 292 http()
292 .post("/createLiveClasses", { 293 .post("/createLiveClasses", {
293 classId: this.$route.query.classId, 294 classId: this.$route.query.classId,
294 courseId: this.$route.query.courseId, 295 courseId: this.$route.query.courseId,
295 chapterId: this.$route.query.chapterId, 296 chapterId: this.$route.query.chapterId,
296 }) 297 })
297 .then((response) => { 298 .then((response) => {
298 // this.addSection = response.data.data; 299 // this.addSection = response.data.data;
299 // console.log("CREATE___ROOOM", response.data); 300 // console.log("CREATE___ROOOM", response.data);
300 var room = response.data.data.roomName; 301 var room = response.data.data.roomName;
301 var username = localStorage.getItem("teacherName"); 302 var username = localStorage.getItem("teacherName");
302 var roomPassword = response.data.data.password; 303 var roomPassword = response.data.data.password;
303 this.appLink = response.data.data.appLink; 304 this.appLink = response.data.data.appLink;
304 this.liveClassId = response.data.data._id; 305 this.liveClassId = response.data.data._id;
305 // console.log( 306 // console.log(
306 // "room", 307 // "room",
307 // room, 308 // room,
308 // "username", 309 // "username",
309 // username, 310 // username,
310 // "roomPassword", 311 // "roomPassword",
311 // roomPassword 312 // roomPassword
312 // ); 313 // );
313 var this_ = this; 314 var this_ = this;
314 if (username != "" || room != "") { 315 if (username != "" || room != "") {
315 const isMobile = /iPhone|iPad|iPod|Android/i.test( 316 const isMobile = /iPhone|iPad|iPod|Android/i.test(
316 navigator.userAgent 317 navigator.userAgent
317 ); 318 );
318 if (isMobile) { 319 if (isMobile) {
319 // console.log("==TEACHER=appLink==", this.appLink); 320 // console.log("==TEACHER=appLink==", this.appLink);
320 window.open(this.appLink); 321 window.open(this.appLink);
321 this.showLoader = false; 322 this.showLoader = false;
322 this.showStartSessionButton = false; 323 this.showStartSessionButton = false;
323 } else { 324 } else {
324 if (window.JitsiMeetExternalAPI) { 325 if (window.JitsiMeetExternalAPI) {
325 // var person = prompt("Please enter your name:", "Rabie"); 326 // var person = prompt("Please enter your name:", "Rabie");
326 if (username != null || username != "") { 327 if (username != null || username != "") {
327 this_.username = username; 328 this_.username = username;
328 } 329 }
329 // var room = prompt("Please enter your room:", "Test Room"); 330 // var room = prompt("Please enter your room:", "Test Room");
330 if (room != null || room != "") { 331 if (room != null || room != "") {
331 this_.room = room; 332 this_.room = room;
332 } 333 }
333 if (roomPassword != null || roomPassword != "") { 334 if (roomPassword != null || roomPassword != "") {
334 this_.roomPassword = roomPassword; 335 this_.roomPassword = roomPassword;
335 } 336 }
336 } else alert("Jitsi Meet API script not loaded"); 337 } else alert("Jitsi Meet API script not loaded");
337 this_.startConference(); 338 this_.startConference();
338 this.showStartSessionButton = false; 339 this.showStartSessionButton = false;
339 } 340 }
340 } 341 }
341 }) 342 })
342 .catch((err) => { 343 .catch((err) => {
343 this.showLoader = false; 344 this.showLoader = false;
344 }); 345 });
345 }, 346 },
346 formatAMPM(date) { 347 formatAMPM(date) {
347 var hours = date.getHours(); 348 var hours = date.getHours();
348 var minutes = date.getMinutes(); 349 var minutes = date.getMinutes();
349 var ampm = hours >= 12 ? "pm" : "am"; 350 var ampm = hours >= 12 ? "pm" : "am";
350 hours = hours % 12; 351 hours = hours % 12;
351 hours = hours ? hours : 12; // the hour '0' should be '12' 352 hours = hours ? hours : 12; // the hour '0' should be '12'
352 minutes = minutes < 10 ? "0" + minutes : minutes; 353 minutes = minutes < 10 ? "0" + minutes : minutes;
353 var strTime = hours + ":" + minutes + " " + ampm; 354 var strTime = hours + ":" + minutes + " " + ampm;
354 return strTime; 355 return strTime;
355 }, 356 },
356 createAttendence() { 357 createAttendence() {
357 let studentId = localStorage.getItem("parentStudentId"); 358 let studentId = localStorage.getItem("parentStudentId");
358 let todayDate = new Date(); 359 let todayDate = new Date();
359 var attendenceData = { 360 var attendenceData = {
360 classId: this.$route.query.classId, 361 classId: this.$route.query.classId,
361 studentId: studentId, 362 studentId: studentId,
362 date: new Date().toISOString().substr(0, 10), 363 date: new Date().toISOString().substr(0, 10),
363 studentAttendance: [ 364 studentAttendance: [
364 { 365 {
365 courseId: this.$route.query.courseId, 366 courseId: this.$route.query.courseId,
366 chapterId: this.$route.query.chapterId, 367 chapterId: this.$route.query.chapterId,
367 liveClassId: this.attendenceLiveClassId, 368 liveClassId: this.attendenceLiveClassId,
368 startTime: this.formatAMPM(new Date()), 369 startTime: this.formatAMPM(new Date()),
369 }, 370 },
370 ], 371 ],
371 }; 372 };
372 this.loading = true; 373 this.loading = true;
373 http() 374 http()
374 .post("/createCourseAttendance", attendenceData) 375 .post("/createCourseAttendance", attendenceData)
375 .then((response) => { 376 .then((response) => {
377 this.courseAttendanceId = response.data.data._id;
378 this.updateCourseAttendance();
376 this.loading = false; 379 this.loading = false;
377 // this.snackbar = true; 380 // this.snackbar = true;
378 // this.color = "green"; 381 // this.color = "green";
379 }) 382 })
380 .catch((err) => { 383 .catch((err) => {
381 this.loading = false; 384 this.loading = false;
382 this.snackbar = true; 385 this.snackbar = true;
383 this.color = "error"; 386 this.color = "error";
384 }); 387 });
385 }, 388 },
386 updateLiveClass() { 389 updateLiveClass() {
387 this.showLoader = true; 390 this.showLoader = true;
388 var payloadData = { 391 var payloadData = {
389 liveClassesId: this.liveClassId, 392 liveClassesId: this.liveClassId,
390 }; 393 };
391 http() 394 http()
392 .put("/updateLiveClasses", payloadData) 395 .put("/updateLiveClasses", payloadData)
393 .then((response) => { 396 .then((response) => {
394 this.showLoader = false; 397 this.showLoader = false;
395 }) 398 })
396 .catch((error) => { 399 .catch((error) => {
397 this.showLoader = false; 400 this.showLoader = false;
398 }); 401 });
399 }, 402 },
403 updateCourseAttendance() {
404 this.showLoader = true;
405 var payloadData = {
406 courseAttendanceId: this.courseAttendanceId,
407 liveClassId: this.attendenceLiveClassId,
408 endTime: this.formatAMPM(new Date()),
409 };
410 http()
411 .put("/updateCourseAttendance", payloadData)
412 .then((response) => {
413 this.showLoader = false;
414 })
415 .catch((error) => {
416 this.showLoader = false;
417 });
418 },
400 async studentClasses() { 419 async studentClasses() {
401 this.liveLink = ""; 420 this.liveLink = "";
402 this.room = ""; 421 this.room = "";
403 this.username = ""; 422 this.username = "";
404 this.roomPassword = ""; 423 this.roomPassword = "";
405 /* getLiveClassesesList - To up date line under heading*/ 424 /* getLiveClassesesList - To up date line under heading*/
406 let response = await this.getLiveClassesesList({ 425 let response = await this.getLiveClassesesList({
407 classId: this.$route.query.classId, 426 classId: this.$route.query.classId,
408 courseId: this.$route.query.courseId, 427 courseId: this.$route.query.courseId,
409 chapterId: this.$route.query.chapterId, 428 chapterId: this.$route.query.chapterId,
410 }); 429 });
411 // console.log("response getLiveClassesesList- ", response); 430 // console.log("response getLiveClassesesList- ", response);
412 this.attendenceLiveClassId = response.data.data[0]._id; 431 this.attendenceLiveClassId = response.data.data[0]._id;
413 432
414 /* CHECK RESPONSE TO ASSIGN MESSAGE INSIDE BUTTON */ 433 /* CHECK RESPONSE TO ASSIGN MESSAGE INSIDE BUTTON */
415 if (response.data.data[0].sessionStatus == "ENDED") { 434 if (response.data.data[0].sessionStatus == "ENDED") {
416 // this.startLiveSession = "Start Session"; 435 // this.startLiveSession = "Start Session";
417 this.studentBtn = ""; 436 this.studentBtn = "";
418 } 437 }
419 if (response.data.data[0].sessionStatus == "STARTED") { 438 if (response.data.data[0].sessionStatus == "STARTED") {
420 // this.startLiveSession = "Join Session"; 439 // this.startLiveSession = "Join Session";
421 this.studentBtn = "Join Session"; 440 this.studentBtn = "Join Session";
422 } 441 }
423 if (response.data.data.length == 0) { 442 if (response.data.data.length == 0) {
424 this.startLiveSession = "Start Session"; 443 this.startLiveSession = "Start Session";
425 this.studentBtn = ""; 444 this.studentBtn = "";
426 } else { 445 } else {
427 this.liveLink = response.data.data[0].link; 446 this.liveLink = response.data.data[0].link;
428 this.appLink = response.data.data[0].appLink; 447 this.appLink = response.data.data[0].appLink;
429 var room = response.data.data[0].roomName; 448 var room = response.data.data[0].roomName;
430 var username = this.currentUser; 449 var username = this.currentUser;
431 var roomPassword = response.data.data[0].password; 450 var roomPassword = response.data.data[0].password;
432 var this_ = this; 451 var this_ = this;
433 // console.log(this.room, this.roomPassword, this.username); 452 // console.log(this.room, this.roomPassword, this.username);
434 453
435 if (username != "" || room != "") { 454 if (username != "" || room != "") {
436 if (window.JitsiMeetExternalAPI) { 455 if (window.JitsiMeetExternalAPI) {
437 // var person = prompt("Please enter your name:", "Rabie"); 456 // var person = prompt("Please enter your name:", "Rabie");
438 if (username != null || username != "") { 457 if (username != null || username != "") {
439 this_.username = username; 458 this_.username = username;
440 } 459 }
441 if (roomPassword != null || roomPassword != "") { 460 if (roomPassword != null || roomPassword != "") {
442 this_.roomPassword = roomPassword; 461 this_.roomPassword = roomPassword;
443 } 462 }
444 // var room = prompt("Please enter your room:", "Test Room"); 463 // var room = prompt("Please enter your room:", "Test Room");
445 if (room != null || room != "") { 464 if (room != null || room != "") {
446 this_.room = room; 465 this_.room = room;
447 } 466 }
448 // this.startConference(); 467 // this.startConference();
449 } 468 }
450 } 469 }
451 } 470 }
452 }, 471 },
453 }, 472 },
454 473
455 async created() { 474 async created() {
456 // console.log( 475 // console.log(
457 // "this.$store.state.studentsData", 476 // "this.$store.state.studentsData",
458 // this.$store.state.studentsData[0].name 477 // this.$store.state.studentsData[0].name
459 // ); 478 // );
460 this.currentUser = localStorage.getItem("studentName"); 479 this.currentUser = localStorage.getItem("studentName");
461 this.token = this.$store.state.token; 480 this.token = this.$store.state.token;
462 if (this.$store.state.role === "PARENT") { 481 if (this.$store.state.role === "PARENT") {
463 await this.studentClasses(); 482 await this.studentClasses();
464 } 483 }
465 484
466 /* getStudentCourses - to get courseData - defined in GetApis.js*/ 485 /* getStudentCourses - to get courseData - defined in GetApis.js*/
467 if (this.$store.state.role === "PARENT") { 486 if (this.$store.state.role === "PARENT") {
468 await this.getStudentCourses({ 487 await this.getStudentCourses({
469 classId: localStorage.getItem("parentClassId"), 488 classId: localStorage.getItem("parentClassId"),
470 studentId: localStorage.getItem("parentStudentId"), 489 studentId: localStorage.getItem("parentStudentId"),
471 }); 490 });
472 } 491 }
473 }, 492 },
474 }; 493 };
475 </script> 494 </script>
476 <style scoped> 495 <style scoped>
477 .side-bar-color { 496 .side-bar-color {
478 color: #827bfa !important; 497 color: #827bfa !important;
479 /* border-top-right-radius: 74px !important; */ 498 /* border-top-right-radius: 74px !important; */
480 } 499 }
481 .card-border { 500 .card-border {
482 border: 1px #bdbdbd solid; 501 border: 1px #bdbdbd solid;
483 border-radius: 3px; 502 border-radius: 3px;
484 } 503 }
485 .reply-desc { 504 .reply-desc {
486 border: 1px solid #f2f2f2; 505 border: 1px solid #f2f2f2;
487 } 506 }
488 .open-dialog-button { 507 .open-dialog-button {
489 background: #827bfa !important; 508 background: #827bfa !important;
490 border-color: #827bfa !important; 509 border-color: #827bfa !important;
491 text-transform: none !important; 510 text-transform: none !important;
492 } 511 }
493 512
494 .reply-btn { 513 .reply-btn {
495 background: #feb83c !important; 514 background: #feb83c !important;
496 border-color: #feb83c !important; 515 border-color: #feb83c !important;
497 text-transform: none !important; 516 text-transform: none !important;
498 -webkit-box-shadow: none !important; 517 -webkit-box-shadow: none !important;
499 box-shadow: none !important; 518 box-shadow: none !important;
500 } 519 }
501 #jitsi-container { 520 #jitsi-container {
502 height: 100vh; 521 height: 100vh;
503 } 522 }
504 </style> 523 </style>
src/router/paths.js
1 export default [{ 1 export default [{
2 path: '*', 2 path: '*',
3 meta: { 3 meta: {
4 public: true, 4 public: true,
5 }, 5 },
6 redirect: { 6 redirect: {
7 path: '/404' 7 path: '/404'
8 } 8 }
9 }, 9 },
10 { 10 {
11 path: '/404', 11 path: '/404',
12 meta: { 12 meta: {
13 public: true, 13 public: true,
14 }, 14 },
15 name: 'NotFound', 15 name: 'NotFound',
16 component: () => 16 component: () =>
17 import( 17 import(
18 /* webpackChunkName: "routes" */ 18 /* webpackChunkName: "routes" */
19 /* webpackMode: "lazy-once" */ 19 /* webpackMode: "lazy-once" */
20 `@/pages/NotFound/NotFound.vue` 20 `@/pages/NotFound/NotFound.vue`
21 ) 21 )
22 }, 22 },
23 { 23 {
24 path: '*', 24 path: '*',
25 meta: {}, 25 meta: {},
26 name: 'dashboardAdmin', 26 name: 'dashboardAdmin',
27 props: (route) => ({ 27 props: (route) => ({
28 type: route.query.type 28 type: route.query.type
29 }), 29 }),
30 component: () => 30 component: () =>
31 import( 31 import(
32 /* webpackChunkName: "routes" */ 32 /* webpackChunkName: "routes" */
33 /* webpackMode: "lazy-once" */ 33 /* webpackMode: "lazy-once" */
34 `@/pages/Dashboard/dashboard.vue` 34 `@/pages/Dashboard/dashboard.vue`
35 ) 35 )
36 }, 36 },
37 { 37 {
38 path: '/500', 38 path: '/500',
39 meta: { 39 meta: {
40 public: true, 40 public: true,
41 }, 41 },
42 name: 'ServerError', 42 name: 'ServerError',
43 component: () => 43 component: () =>
44 import( 44 import(
45 /* webpackChunkName: "routes" */ 45 /* webpackChunkName: "routes" */
46 /* webpackMode: "lazy-once" */ 46 /* webpackMode: "lazy-once" */
47 `@/pages/NotFound/Error.vue` 47 `@/pages/NotFound/Error.vue`
48 ) 48 )
49 }, 49 },
50 { 50 {
51 path: '/Refresh', 51 path: '/Refresh',
52 meta: { 52 meta: {
53 public: true, 53 public: true,
54 }, 54 },
55 name: 'Refresh', 55 name: 'Refresh',
56 component: () => 56 component: () =>
57 import( 57 import(
58 /* webpackChunkName: "routes" */ 58 /* webpackChunkName: "routes" */
59 /* webpackMode: "lazy-once" */ 59 /* webpackMode: "lazy-once" */
60 `@/pages/Common/Refresh.vue` 60 `@/pages/Common/Refresh.vue`
61 ) 61 )
62 }, 62 },
63 { 63 {
64 path: '/changepassword', 64 path: '/changepassword',
65 meta: {}, 65 meta: {},
66 name: 'changepassword', 66 name: 'changepassword',
67 props: (route) => ({ 67 props: (route) => ({
68 type: route.query.type 68 type: route.query.type
69 }), 69 }),
70 component: () => 70 component: () =>
71 import( 71 import(
72 /* webpackChunkName: "routes" */ 72 /* webpackChunkName: "routes" */
73 /* webpackMode: "lazy-once" */ 73 /* webpackMode: "lazy-once" */
74 `@/pages/Authentication/changepassword.vue` 74 `@/pages/Authentication/changepassword.vue`
75 ) 75 )
76 }, 76 },
77 { 77 {
78 path: '/teachers', 78 path: '/teachers',
79 meta: { 79 meta: {
80 breadcrumb: false 80 breadcrumb: false
81 }, 81 },
82 name: 'Teachers', 82 name: 'Teachers',
83 component: () => 83 component: () =>
84 import( 84 import(
85 /* webpackChunkName: "routes" */ 85 /* webpackChunkName: "routes" */
86 /* webpackMode: "lazy-once" */ 86 /* webpackMode: "lazy-once" */
87 `@/pages/Teachers/teachers.vue` 87 `@/pages/Teachers/teachers.vue`
88 ) 88 )
89 }, 89 },
90 { 90 {
91 path: '/AssignTeachers', 91 path: '/AssignTeachers',
92 meta: { 92 meta: {
93 breadcrumb: false 93 breadcrumb: false
94 }, 94 },
95 name: 'AssignTeachers', 95 name: 'AssignTeachers',
96 component: () => 96 component: () =>
97 import( 97 import(
98 /* webpackChunkName: "routes" */ 98 /* webpackChunkName: "routes" */
99 /* webpackMode: "lazy-once" */ 99 /* webpackMode: "lazy-once" */
100 `@/pages/AssignTeachers.vue` 100 `@/pages/AssignTeachers.vue`
101 ) 101 )
102 }, 102 },
103 { 103 {
104 path: '/', 104 path: '/',
105 meta: { 105 meta: {
106 public: true, 106 public: true,
107 }, 107 },
108 name: 'Login', 108 name: 'Login',
109 component: () => 109 component: () =>
110 import( 110 import(
111 /* webpackChunkName: "routes" */ 111 /* webpackChunkName: "routes" */
112 /* webpackMode: "lazy-once" */ 112 /* webpackMode: "lazy-once" */
113 `@/pages/Authentication/Login.vue` 113 `@/pages/Authentication/Login.vue`
114 ) 114 )
115 }, 115 },
116 { 116 {
117 path: '/forgetpassword', 117 path: '/forgetpassword',
118 meta: { 118 meta: {
119 public: true, 119 public: true,
120 }, 120 },
121 name: 'forgetpassword', 121 name: 'forgetpassword',
122 component: () => 122 component: () =>
123 import( 123 import(
124 /* webpackChunkName: "routes" */ 124 /* webpackChunkName: "routes" */
125 /* webpackMode: "lazy-once" */ 125 /* webpackMode: "lazy-once" */
126 `@/pages/Authentication/forgetpassword.vue` 126 `@/pages/Authentication/forgetpassword.vue`
127 ) 127 )
128 }, 128 },
129 { 129 {
130 path: '/students', 130 path: '/students',
131 meta: {}, 131 meta: {},
132 name: 'Students', 132 name: 'Students',
133 props: (route) => ({ 133 props: (route) => ({
134 type: route.query.type 134 type: route.query.type
135 }), 135 }),
136 component: () => 136 component: () =>
137 import( 137 import(
138 /* webpackChunkName: "routes" */ 138 /* webpackChunkName: "routes" */
139 /* webpackMode: "lazy-once" */ 139 /* webpackMode: "lazy-once" */
140 `@/pages/Students/students.vue` 140 `@/pages/Students/students.vue`
141 ) 141 )
142 }, 142 },
143 { 143 {
144 path: '/class', 144 path: '/class',
145 meta: {}, 145 meta: {},
146 name: 'Class', 146 name: 'Class',
147 props: (route) => ({ 147 props: (route) => ({
148 type: route.query.type 148 type: route.query.type
149 }), 149 }),
150 component: () => 150 component: () =>
151 import( 151 import(
152 /* webpackChunkName: "routes" */ 152 /* webpackChunkName: "routes" */
153 /* webpackMode: "lazy-once" */ 153 /* webpackMode: "lazy-once" */
154 `@/pages/Class/addclass.vue` 154 `@/pages/Class/addclass.vue`
155 ) 155 )
156 }, 156 },
157 { 157 {
158 path: '/section', 158 path: '/section',
159 meta: {}, 159 meta: {},
160 name: 'Section', 160 name: 'Section',
161 props: (route) => ({ 161 props: (route) => ({
162 type: route.query.type 162 type: route.query.type
163 }), 163 }),
164 component: () => 164 component: () =>
165 import( 165 import(
166 /* webpackChunkName: "routes" */ 166 /* webpackChunkName: "routes" */
167 /* webpackMode: "lazy-once" */ 167 /* webpackMode: "lazy-once" */
168 `@/pages/Section/section.vue` 168 `@/pages/Section/section.vue`
169 ) 169 )
170 }, 170 },
171 { 171 {
172 path: '/noticeBoard', 172 path: '/noticeBoard',
173 meta: {}, 173 meta: {},
174 name: 'Notice Board', 174 name: 'Notice Board',
175 props: (route) => ({ 175 props: (route) => ({
176 type: route.query.type 176 type: route.query.type
177 }), 177 }),
178 component: () => 178 component: () =>
179 import( 179 import(
180 /* webpackChunkName: "routes" */ 180 /* webpackChunkName: "routes" */
181 /* webpackMode: "lazy-once" */ 181 /* webpackMode: "lazy-once" */
182 `@/pages/NoticeBoard/noticeBoard.vue` 182 `@/pages/NoticeBoard/noticeBoard.vue`
183 ) 183 )
184 }, 184 },
185 { 185 {
186 path: '/news', 186 path: '/news',
187 meta: {}, 187 meta: {},
188 name: 'News', 188 name: 'News',
189 props: (route) => ({ 189 props: (route) => ({
190 type: route.query.type 190 type: route.query.type
191 }), 191 }),
192 component: () => 192 component: () =>
193 import( 193 import(
194 /* webpackChunkName: "routes" */ 194 /* webpackChunkName: "routes" */
195 /* webpackMode: "lazy-once" */ 195 /* webpackMode: "lazy-once" */
196 `@/pages/News/news.vue` 196 `@/pages/News/news.vue`
197 ) 197 )
198 }, 198 },
199 // { 199 // {
200 // path: '/reminder', 200 // path: '/reminder',
201 // meta: { }, 201 // meta: { },
202 // name: 'reminder', 202 // name: 'reminder',
203 // props: (route) => ({ type: route.query.type }), 203 // props: (route) => ({ type: route.query.type }),
204 // component: () => import( 204 // component: () => import(
205 // /* webpackChunkName: "routes" */ 205 // /* webpackChunkName: "routes" */
206 // /* webpackMode: "lazy-once" */ 206 // /* webpackMode: "lazy-once" */
207 // `@/pages/Reminder/reminder.vue` 207 // `@/pages/Reminder/reminder.vue`
208 // ) 208 // )
209 // }, 209 // },
210 { 210 {
211 path: '/timeTable', 211 path: '/timeTable',
212 meta: {}, 212 meta: {},
213 name: 'Time Table', 213 name: 'Time Table',
214 props: (route) => ({ 214 props: (route) => ({
215 type: route.query.type 215 type: route.query.type
216 }), 216 }),
217 component: () => 217 component: () =>
218 import( 218 import(
219 /* webpackChunkName: "routes" */ 219 /* webpackChunkName: "routes" */
220 /* webpackMode: "lazy-once" */ 220 /* webpackMode: "lazy-once" */
221 `@/pages/TimeTable/timeTable.vue` 221 `@/pages/TimeTable/timeTable.vue`
222 ) 222 )
223 }, 223 },
224 { 224 {
225 path: '/notification', 225 path: '/notification',
226 meta: {}, 226 meta: {},
227 name: 'Notification', 227 name: 'Notification',
228 props: (route) => ({ 228 props: (route) => ({
229 type: route.query.type 229 type: route.query.type
230 }), 230 }),
231 component: () => 231 component: () =>
232 import( 232 import(
233 /* webpackChunkName: "routes" */ 233 /* webpackChunkName: "routes" */
234 /* webpackMode: "lazy-once" */ 234 /* webpackMode: "lazy-once" */
235 `@/pages/Notification/notification.vue` 235 `@/pages/Notification/notification.vue`
236 ) 236 )
237 }, 237 },
238 { 238 {
239 path: '/parents', 239 path: '/parents',
240 meta: {}, 240 meta: {},
241 name: 'Parents', 241 name: 'Parents',
242 props: (route) => ({ 242 props: (route) => ({
243 type: route.query.type 243 type: route.query.type
244 }), 244 }),
245 component: () => 245 component: () =>
246 import( 246 import(
247 /* webpackChunkName: "routes" */ 247 /* webpackChunkName: "routes" */
248 /* webpackMode: "lazy-once" */ 248 /* webpackMode: "lazy-once" */
249 `@/pages/Parent/parents.vue` 249 `@/pages/Parent/parents.vue`
250 ) 250 )
251 }, 251 },
252 // { 252 // {
253 // path: '/subject', 253 // path: '/subject',
254 // meta: {}, 254 // meta: {},
255 // name: 'Subject', 255 // name: 'Subject',
256 // props: (route) => ({ type: route.query.type }), 256 // props: (route) => ({ type: route.query.type }),
257 // component: () => 257 // component: () =>
258 // import ( 258 // import (
259 // /* webpackChunkName: "routes" */ 259 // /* webpackChunkName: "routes" */
260 // /* webpackMode: "lazy-once" */ 260 // /* webpackMode: "lazy-once" */
261 // `@/pages/Subjects/subjects.vue` 261 // `@/pages/Subjects/subjects.vue`
262 // ) 262 // )
263 // }, 263 // },
264 { 264 {
265 path: '/dashboard', 265 path: '/dashboard',
266 meta: {}, 266 meta: {},
267 name: 'Dashboard', 267 name: 'Dashboard',
268 props: (route) => ({ 268 props: (route) => ({
269 type: route.query.type 269 type: route.query.type
270 }), 270 }),
271 component: () => 271 component: () =>
272 import( 272 import(
273 /* webpackChunkName: "routes" */ 273 /* webpackChunkName: "routes" */
274 /* webpackMode: "lazy-once" */ 274 /* webpackMode: "lazy-once" */
275 `@/pages/Dashboard/dashboard.vue` 275 `@/pages/Dashboard/dashboard.vue`
276 ) 276 )
277 }, 277 },
278 { 278 {
279 path: '/CourseDetails', 279 path: '/CourseDetails',
280 meta: {}, 280 meta: {},
281 name: 'Course Details', 281 name: 'Course Details',
282 props: (route) => ({ 282 props: (route) => ({
283 type: route.query.type 283 type: route.query.type
284 }), 284 }),
285 component: () => 285 component: () =>
286 import( 286 import(
287 /* webpackChunkName: "routes" */ 287 /* webpackChunkName: "routes" */
288 /* webpackMode: "lazy-once" */ 288 /* webpackMode: "lazy-once" */
289 `@/pages/Dashboard/CourseDetails.vue` 289 `@/pages/Dashboard/CourseDetails.vue`
290 ) 290 )
291 }, 291 },
292 { 292 {
293 path: '/ChapterInfo', 293 path: '/ChapterInfo',
294 meta: {}, 294 meta: {},
295 name: 'Chapter Info', 295 name: 'Chapter Info',
296 props: (route) => ({ 296 props: (route) => ({
297 type: route.query.type 297 type: route.query.type
298 }), 298 }),
299 component: () => 299 component: () =>
300 import( 300 import(
301 /* webpackChunkName: "routes" */ 301 /* webpackChunkName: "routes" */
302 /* webpackMode: "lazy-once" */ 302 /* webpackMode: "lazy-once" */
303 `@/pages/Dashboard/ChapterInfo.vue` 303 `@/pages/Dashboard/ChapterInfo.vue`
304 ) 304 )
305 }, 305 },
306 { 306 {
307 path: '/LiveOnlineClass', 307 path: '/LiveOnlineClass',
308 meta: {}, 308 meta: {},
309 name: 'Live Online Class', 309 name: 'Live Online Class',
310 props: (route) => ({ 310 props: (route) => ({
311 type: route.query.type 311 type: route.query.type
312 }), 312 }),
313 component: () => 313 component: () =>
314 import( 314 import(
315 /* webpackChunkName: "routes" */ 315 /* webpackChunkName: "routes" */
316 /* webpackMode: "lazy-once" */ 316 /* webpackMode: "lazy-once" */
317 `@/pages/Dashboard/LiveOnlineClass.vue` 317 `@/pages/Dashboard/LiveOnlineClass.vue`
318 ) 318 )
319 }, 319 },
320 { 320 {
321 path: '/CourseDiscussionForum', 321 path: '/CourseDiscussionForum',
322 meta: {}, 322 meta: {},
323 name: 'Course Discussion Forum', 323 name: 'Course Discussion Forum',
324 props: (route) => ({ 324 props: (route) => ({
325 type: route.query.type 325 type: route.query.type
326 }), 326 }),
327 component: () => 327 component: () =>
328 import( 328 import(
329 /* webpackChunkName: "routes" */ 329 /* webpackChunkName: "routes" */
330 /* webpackMode: "lazy-once" */ 330 /* webpackMode: "lazy-once" */
331 `@/pages/Dashboard/CourseDiscussionForum.vue` 331 `@/pages/Dashboard/CourseDiscussionForum.vue`
332 ) 332 )
333 }, 333 },
334 { 334 {
335 path: '/courseDiscussion', 335 path: '/courseDiscussion',
336 meta: {}, 336 meta: {},
337 name: 'Course Discussion', 337 name: 'Course Discussion',
338 props: (route) => ({ 338 props: (route) => ({
339 type: route.query.type 339 type: route.query.type
340 }), 340 }),
341 component: () => 341 component: () =>
342 import( 342 import(
343 /* webpackChunkName: "routes" */ 343 /* webpackChunkName: "routes" */
344 /* webpackMode: "lazy-once" */ 344 /* webpackMode: "lazy-once" */
345 `@/pages/Course/courseDiscussion.vue` 345 `@/pages/Course/courseDiscussion.vue`
346 ) 346 )
347 }, 347 },
348 { 348 {
349 path: '/courseDiscussionesForm/:discussionId', 349 path: '/courseDiscussionesForm/:discussionId',
350 meta: {}, 350 meta: {},
351 name: 'Course Discussiones Fourm', 351 name: 'Course Discussiones Fourm',
352 props: (route) => ({ 352 props: (route) => ({
353 type: route.query.type 353 type: route.query.type
354 }), 354 }),
355 component: () => 355 component: () =>
356 import( 356 import(
357 /* webpackChunkName: "routes" */ 357 /* webpackChunkName: "routes" */
358 /* webpackMode: "lazy-once" */ 358 /* webpackMode: "lazy-once" */
359 `@/pages/Course/discussion.vue` 359 `@/pages/Course/discussion.vue`
360 ) 360 )
361 }, 361 },
362 { 362 {
363 path: '/Announcement', 363 path: '/Announcement',
364 meta: {}, 364 meta: {},
365 name: 'Announcement', 365 name: 'Announcement',
366 props: (route) => ({ 366 props: (route) => ({
367 type: route.query.type 367 type: route.query.type
368 }), 368 }),
369 component: () => 369 component: () =>
370 import( 370 import(
371 /* webpackChunkName: "routes" */ 371 /* webpackChunkName: "routes" */
372 /* webpackMode: "lazy-once" */ 372 /* webpackMode: "lazy-once" */
373 `@/pages/Dashboard/Announcement.vue` 373 `@/pages/Dashboard/Announcement.vue`
374 ) 374 )
375 }, 375 },
376 { 376 {
377 path: '/annoucementForum/:annoucementId', 377 path: '/annoucementForum/:annoucementId',
378 meta: {}, 378 meta: {},
379 name: 'Annoucement Forum', 379 name: 'Annoucement Forum',
380 props: (route) => ({ 380 props: (route) => ({
381 type: route.query.type 381 type: route.query.type
382 }), 382 }),
383 component: () => 383 component: () =>
384 import( 384 import(
385 /* webpackChunkName: "routes" */ 385 /* webpackChunkName: "routes" */
386 /* webpackMode: "lazy-once" */ 386 /* webpackMode: "lazy-once" */
387 `@/pages/Annoucement/annoucementForum.vue` 387 `@/pages/Annoucement/annoucementForum.vue`
388 ) 388 )
389 }, 389 },
390 { 390 {
391 path: '/socialMedia', 391 path: '/socialMedia',
392 meta: {}, 392 meta: {},
393 name: 'Social Media', 393 name: 'Social Media',
394 props: (route) => ({ 394 props: (route) => ({
395 type: route.query.type 395 type: route.query.type
396 }), 396 }),
397 component: () => 397 component: () =>
398 import( 398 import(
399 /* webpackChunkName: "routes" */ 399 /* webpackChunkName: "routes" */
400 /* webpackMode: "lazy-once" */ 400 /* webpackMode: "lazy-once" */
401 `@/pages/socialMedia/socialMedia.vue` 401 `@/pages/socialMedia/socialMedia.vue`
402 ) 402 )
403 }, 403 },
404 { 404 {
405 path: '/gallery', 405 path: '/gallery',
406 meta: {}, 406 meta: {},
407 name: 'Gallery', 407 name: 'Gallery',
408 props: (route) => ({ 408 props: (route) => ({
409 type: route.query.type 409 type: route.query.type
410 }), 410 }),
411 component: () => 411 component: () =>
412 import( 412 import(
413 /* webpackChunkName: "routes" */ 413 /* webpackChunkName: "routes" */
414 /* webpackMode: "lazy-once" */ 414 /* webpackMode: "lazy-once" */
415 `@/pages/Gallery/gallery.vue` 415 `@/pages/Gallery/gallery.vue`
416 ) 416 )
417 }, 417 },
418 { 418 {
419 path: '/event', 419 path: '/event',
420 meta: {}, 420 meta: {},
421 name: 'Event', 421 name: 'Event',
422 props: (route) => ({ 422 props: (route) => ({
423 type: route.query.type 423 type: route.query.type
424 }), 424 }),
425 component: () => 425 component: () =>
426 import( 426 import(
427 /* webpackChunkName: "routes" */ 427 /* webpackChunkName: "routes" */
428 /* webpackMode: "lazy-once" */ 428 /* webpackMode: "lazy-once" */
429 `@/pages/Event/event.vue` 429 `@/pages/Event/event.vue`
430 ) 430 )
431 }, 431 },
432 { 432 {
433 path: '/holiday', 433 path: '/holiday',
434 meta: {}, 434 meta: {},
435 name: 'Holiday', 435 name: 'Holiday',
436 props: (route) => ({ 436 props: (route) => ({
437 type: route.query.type 437 type: route.query.type
438 }), 438 }),
439 component: () => 439 component: () =>
440 import( 440 import(
441 /* webpackChunkName: "routes" */ 441 /* webpackChunkName: "routes" */
442 /* webpackMode: "lazy-once" */ 442 /* webpackMode: "lazy-once" */
443 `@/pages/Holiday/holiday.vue` 443 `@/pages/Holiday/holiday.vue`
444 ) 444 )
445 }, 445 },
446 { 446 {
447 path: '/user', 447 path: '/user',
448 meta: {}, 448 meta: {},
449 name: 'User', 449 name: 'User',
450 props: (route) => ({ 450 props: (route) => ({
451 type: route.query.type 451 type: route.query.type
452 }), 452 }),
453 component: () => 453 component: () =>
454 import( 454 import(
455 /* webpackChunkName: "routes" */ 455 /* webpackChunkName: "routes" */
456 /* webpackMode: "lazy-once" */ 456 /* webpackMode: "lazy-once" */
457 `@/pages/User/user.vue` 457 `@/pages/User/user.vue`
458 ) 458 )
459 }, 459 },
460 { 460 {
461 path: '/AttendenceStudent', 461 path: '/AttendenceStudent',
462 meta: {}, 462 meta: {},
463 name: 'Student Attendence', 463 name: 'Student Attendence',
464 props: (route) => ({ 464 props: (route) => ({
465 type: route.query.type 465 type: route.query.type
466 }), 466 }),
467 component: () => 467 component: () =>
468 import( 468 import(
469 /* webpackChunkName: "routes" */ 469 /* webpackChunkName: "routes" */
470 /* webpackMode: "lazy-once" */ 470 /* webpackMode: "lazy-once" */
471 `@/pages/Attendence/studentAttendence.vue` 471 `@/pages/Attendence/studentAttendence.vue`
472 ) 472 )
473 }, 473 },
474 { 474 {
475 path: '/AttendenceTeacher', 475 path: '/AttendenceTeacher',
476 meta: {}, 476 meta: {},
477 name: 'Teacher Attendence', 477 name: 'Teacher Attendence',
478 props: (route) => ({ 478 props: (route) => ({
479 type: route.query.type 479 type: route.query.type
480 }), 480 }),
481 component: () => 481 component: () =>
482 import( 482 import(
483 /* webpackChunkName: "routes" */ 483 /* webpackChunkName: "routes" */
484 /* webpackMode: "lazy-once" */ 484 /* webpackMode: "lazy-once" */
485 `@/pages/Attendence/teacherAttendence.vue` 485 `@/pages/Attendence/teacherAttendence.vue`
486 ) 486 )
487 }, 487 },
488 { 488 {
489 path: '/AttendanceCourse',
490 meta: {},
491 name: 'Course Attendance',
492 props: (route) => ({
493 type: route.query.type
494 }),
495 component: () =>
496 import(
497 /* webpackChunkName: "routes" */
498 /* webpackMode: "lazy-once" */
499 `@/pages/Attendence/courseAttendance.vue`
500 )
501 },
502 {
489 path: '/salaryTemplate', 503 path: '/salaryTemplate',
490 meta: {}, 504 meta: {},
491 name: 'Salary Template', 505 name: 'Salary Template',
492 props: (route) => ({ 506 props: (route) => ({
493 type: route.query.type 507 type: route.query.type
494 }), 508 }),
495 component: () => 509 component: () =>
496 import( 510 import(
497 `@/pages/Payroll/salaryTemplate.vue` 511 `@/pages/Payroll/salaryTemplate.vue`
498 ) 512 )
499 }, 513 },
500 { 514 {
501 path: '/hourlyTemplate', 515 path: '/hourlyTemplate',
502 meta: {}, 516 meta: {},
503 name: 'Hourly Template', 517 name: 'Hourly Template',
504 props: (route) => ({ 518 props: (route) => ({
505 type: route.query.type 519 type: route.query.type
506 }), 520 }),
507 component: () => 521 component: () =>
508 import( 522 import(
509 `@/pages/Payroll/hourlyTemplate.vue` 523 `@/pages/Payroll/hourlyTemplate.vue`
510 ) 524 )
511 }, 525 },
512 { 526 {
513 path: '/manageSalary', 527 path: '/manageSalary',
514 meta: {}, 528 meta: {},
515 name: 'Manage Salary', 529 name: 'Manage Salary',
516 props: (route) => ({ 530 props: (route) => ({
517 type: route.query.type 531 type: route.query.type
518 }), 532 }),
519 component: () => 533 component: () =>
520 import( 534 import(
521 `@/pages/Payroll/manageSalary.vue` 535 `@/pages/Payroll/manageSalary.vue`
522 ) 536 )
523 }, 537 },
524 // { 538 // {
525 // path: '/makePayment', 539 // path: '/makePayment',
526 // meta: {}, 540 // meta: {},
527 // name: 'Make Payment', 541 // name: 'Make Payment',
528 // props: (route) => ({ type: route.query.type }), 542 // props: (route) => ({ type: route.query.type }),
529 // component: () => 543 // component: () =>
530 // import ( 544 // import (
531 // `@/pages/Payroll/makePayment.vue` 545 // `@/pages/Payroll/makePayment.vue`
532 // ) 546 // )
533 // }, 547 // },
534 { 548 {
535 path: '/AttendenceUser', 549 path: '/AttendenceUser',
536 meta: {}, 550 meta: {},
537 name: 'User Attendence', 551 name: 'User Attendence',
538 props: (route) => ({ 552 props: (route) => ({
539 type: route.query.type 553 type: route.query.type
540 }), 554 }),
541 component: () => 555 component: () =>
542 import( 556 import(
543 /* webpackChunkName: "routes" */ 557 /* webpackChunkName: "routes" */
544 /* webpackMode: "lazy-once" */ 558 /* webpackMode: "lazy-once" */
545 `@/pages/Attendence/userAttendence.vue` 559 `@/pages/Attendence/userAttendence.vue`
546 ) 560 )
547 }, 561 },
548 { 562 {
549 path: '/feeTypes', 563 path: '/feeTypes',
550 meta: {}, 564 meta: {},
551 name: 'Fee Types', 565 name: 'Fee Types',
552 props: (route) => ({ 566 props: (route) => ({
553 type: route.query.type 567 type: route.query.type
554 }), 568 }),
555 component: () => 569 component: () =>
556 import( 570 import(
557 /* webpackChunkName: "routes" */ 571 /* webpackChunkName: "routes" */
558 /* webpackMode: "lazy-once" */ 572 /* webpackMode: "lazy-once" */
559 `@/pages/Account/feeTypes.vue` 573 `@/pages/Account/feeTypes.vue`
560 ) 574 )
561 }, 575 },
562 { 576 {
563 path: '/invoice', 577 path: '/invoice',
564 meta: {}, 578 meta: {},
565 name: 'Invoice', 579 name: 'Invoice',
566 props: (route) => ({ 580 props: (route) => ({
567 type: route.query.type 581 type: route.query.type
568 }), 582 }),
569 component: () => 583 component: () =>
570 import( 584 import(
571 /* webpackChunkName: "routes" */ 585 /* webpackChunkName: "routes" */
572 /* webpackMode: "lazy-once" */ 586 /* webpackMode: "lazy-once" */
573 `@/pages/Account/invoice.vue` 587 `@/pages/Account/invoice.vue`
574 ) 588 )
575 }, 589 },
576 { 590 {
577 path: '/paymentHistory', 591 path: '/paymentHistory',
578 meta: {}, 592 meta: {},
579 name: 'Payment History', 593 name: 'Payment History',
580 props: (route) => ({ 594 props: (route) => ({
581 type: route.query.type 595 type: route.query.type
582 }), 596 }),
583 component: () => 597 component: () =>
584 import( 598 import(
585 /* webpackChunkName: "routes" */ 599 /* webpackChunkName: "routes" */
586 /* webpackMode: "lazy-once" */ 600 /* webpackMode: "lazy-once" */
587 `@/pages/Account/paymentHistory.vue` 601 `@/pages/Account/paymentHistory.vue`
588 ) 602 )
589 }, 603 },
590 { 604 {
591 path: '/expense', 605 path: '/expense',
592 meta: {}, 606 meta: {},
593 name: 'Expense', 607 name: 'Expense',
594 props: (route) => ({ 608 props: (route) => ({
595 type: route.query.type 609 type: route.query.type
596 }), 610 }),
597 component: () => 611 component: () =>
598 import( 612 import(
599 /* webpackChunkName: "routes" */ 613 /* webpackChunkName: "routes" */
600 /* webpackMode: "lazy-once" */ 614 /* webpackMode: "lazy-once" */
601 `@/pages/Account/expense.vue` 615 `@/pages/Account/expense.vue`
602 ) 616 )
603 }, 617 },
604 { 618 {
605 path: '/income', 619 path: '/income',
606 meta: {}, 620 meta: {},
607 name: 'Income', 621 name: 'Income',
608 props: (route) => ({ 622 props: (route) => ({
609 type: route.query.type 623 type: route.query.type
610 }), 624 }),
611 component: () => 625 component: () =>
612 import( 626 import(
613 /* webpackChunkName: "routes" */ 627 /* webpackChunkName: "routes" */
614 /* webpackMode: "lazy-once" */ 628 /* webpackMode: "lazy-once" */
615 `@/pages/Account/income.vue` 629 `@/pages/Account/income.vue`
616 ) 630 )
617 }, 631 },
618 { 632 {
619 path: '/libraryMember', 633 path: '/libraryMember',
620 meta: {}, 634 meta: {},
621 name: 'Library Member', 635 name: 'Library Member',
622 props: (route) => ({ 636 props: (route) => ({
623 type: route.query.type 637 type: route.query.type
624 }), 638 }),
625 component: () => 639 component: () =>
626 import( 640 import(
627 /* webpackChunkName: "routes" */ 641 /* webpackChunkName: "routes" */
628 /* webpackMode: "lazy-once" */ 642 /* webpackMode: "lazy-once" */
629 `@/pages/Library/member.vue` 643 `@/pages/Library/member.vue`
630 ) 644 )
631 }, 645 },
632 { 646 {
633 path: '/books', 647 path: '/books',
634 meta: {}, 648 meta: {},
635 name: 'Books', 649 name: 'Books',
636 props: (route) => ({ 650 props: (route) => ({
637 type: route.query.type 651 type: route.query.type
638 }), 652 }),
639 component: () => 653 component: () =>
640 import( 654 import(
641 /* webpackChunkName: "routes" */ 655 /* webpackChunkName: "routes" */
642 /* webpackMode: "lazy-once" */ 656 /* webpackMode: "lazy-once" */
643 `@/pages/Library/books.vue` 657 `@/pages/Library/books.vue`
644 ) 658 )
645 }, 659 },
646 { 660 {
647 path: '/issue', 661 path: '/issue',
648 meta: {}, 662 meta: {},
649 name: 'Issue', 663 name: 'Issue',
650 props: (route) => ({ 664 props: (route) => ({
651 type: route.query.type 665 type: route.query.type
652 }), 666 }),
653 component: () => 667 component: () =>
654 import( 668 import(
655 /* webpackChunkName: "routes" */ 669 /* webpackChunkName: "routes" */
656 /* webpackMode: "lazy-once" */ 670 /* webpackMode: "lazy-once" */
657 `@/pages/Library/issue.vue` 671 `@/pages/Library/issue.vue`
658 ) 672 )
659 }, 673 },
660 { 674 {
661 path: '/e-books', 675 path: '/e-books',
662 meta: {}, 676 meta: {},
663 name: 'E-Books', 677 name: 'E-Books',
664 props: (route) => ({ 678 props: (route) => ({
665 type: route.query.type 679 type: route.query.type
666 }), 680 }),
667 component: () => 681 component: () =>
668 import( 682 import(
669 /* webpackChunkName: "routes" */ 683 /* webpackChunkName: "routes" */
670 /* webpackMode: "lazy-once" */ 684 /* webpackMode: "lazy-once" */
671 `@/pages/Library/eBook.vue` 685 `@/pages/Library/eBook.vue`
672 ) 686 )
673 }, 687 },
674 { 688 {
675 path: '/editInvoice/:invoiceid', 689 path: '/editInvoice/:invoiceid',
676 meta: {}, 690 meta: {},
677 name: 'Edit Invoice', 691 name: 'Edit Invoice',
678 // props: (route) => ({ type: route.query.type }), 692 // props: (route) => ({ type: route.query.type }),
679 component: () => 693 component: () =>
680 import( 694 import(
681 /* webpackChunkName: "routes" */ 695 /* webpackChunkName: "routes" */
682 /* webpackMode: "lazy-once" */ 696 /* webpackMode: "lazy-once" */
683 `@/pages/Account/editInvoice.vue` 697 `@/pages/Account/editInvoice.vue`
684 ) 698 )
685 }, 699 },
686 { 700 {
687 path: '/StudentsAttendence/:id', 701 path: '/StudentsAttendence/:id',
688 meta: {}, 702 meta: {},
689 name: 'View Students Attendence', 703 name: 'View Students Attendence',
690 props: (route) => ({ 704 props: (route) => ({
691 type: route.query.type 705 type: route.query.type
692 }), 706 }),
693 component: () => 707 component: () =>
694 import( 708 import(
695 /* webpackChunkName: "routes" */ 709 /* webpackChunkName: "routes" */
696 /* webpackMode: "lazy-once" */ 710 /* webpackMode: "lazy-once" */
697 `@/pages/Attendence/viewStudentsAttendence.vue` 711 `@/pages/Attendence/viewStudentsAttendence.vue`
698 ) 712 )
699 }, 713 },
700 { 714 {
701 path: '/TeacherAttendence/:teacherId', 715 path: '/TeacherAttendence/:teacherId',
702 meta: {}, 716 meta: {},
703 name: 'View Teacher Attendence', 717 name: 'View Teacher Attendence',
704 props: (route) => ({ 718 props: (route) => ({
705 type: route.query.type 719 type: route.query.type
706 }), 720 }),
707 component: () => 721 component: () =>
708 import( 722 import(
709 /* webpackChunkName: "routes" */ 723 /* webpackChunkName: "routes" */
710 /* webpackMode: "lazy-once" */ 724 /* webpackMode: "lazy-once" */
711 `@/pages/Attendence/viewTeacherAttendence.vue` 725 `@/pages/Attendence/viewTeacherAttendence.vue`
712 ) 726 )
713 }, 727 },
714 { 728 {
729 path: '/CourseAttendance/:id',
730 meta: {},
731 name: 'View Course Attendance',
732 props: (route) => ({
733 type: route.query.type
734 }),
735 component: () =>
736 import(
737 /* webpackChunkName: "routes" */
738 /* webpackMode: "lazy-once" */
739 `@/pages/Attendence/viewCourseAttendance.vue`
740 )
741 },
742 {
715 path: '/viewInvoice/:viewInvoiceId', 743 path: '/viewInvoice/:viewInvoiceId',
716 meta: {}, 744 meta: {},
717 name: 'View Invoice', 745 name: 'View Invoice',
718 props: (route) => ({ 746 props: (route) => ({
719 type: route.query.type 747 type: route.query.type
720 }), 748 }),
721 component: () => 749 component: () =>
722 import( 750 import(
723 /* webpackChunkName: "routes" */ 751 /* webpackChunkName: "routes" */
724 /* webpackMode: "lazy-once" */ 752 /* webpackMode: "lazy-once" */
725 `@/pages/Account/viewInvoice.vue` 753 `@/pages/Account/viewInvoice.vue`
726 ) 754 )
727 }, 755 },
728 { 756 {
729 path: '/viewPaymentInvoice/:viewPaymentInvoiceId', 757 path: '/viewPaymentInvoice/:viewPaymentInvoiceId',
730 meta: {}, 758 meta: {},
731 name: 'View Payment Invoice', 759 name: 'View Payment Invoice',
732 props: (route) => ({ 760 props: (route) => ({
733 type: route.query.type 761 type: route.query.type
734 }), 762 }),
735 component: () => 763 component: () =>
736 import( 764 import(
737 /* webpackChunkName: "routes" */ 765 /* webpackChunkName: "routes" */
738 /* webpackMode: "lazy-once" */ 766 /* webpackMode: "lazy-once" */
739 `@/pages/Account/viewPaymentInvoice.vue` 767 `@/pages/Account/viewPaymentInvoice.vue`
740 ) 768 )
741 }, 769 },
742 { 770 {
743 path: '/globalPayment', 771 path: '/globalPayment',
744 meta: {}, 772 meta: {},
745 name: 'Global Payment', 773 name: 'Global Payment',
746 props: (route) => ({ 774 props: (route) => ({
747 type: route.query.type 775 type: route.query.type
748 }), 776 }),
749 component: () => 777 component: () =>
750 import( 778 import(
751 /* webpackChunkName: "routes" */ 779 /* webpackChunkName: "routes" */
752 /* webpackMode: "lazy-once" */ 780 /* webpackMode: "lazy-once" */
753 `@/pages/Account/globalPayment.vue` 781 `@/pages/Account/globalPayment.vue`
754 ) 782 )
755 }, 783 },
756 { 784 {
757 path: '/exam', 785 path: '/exam',
758 meta: {}, 786 meta: {},
759 name: 'Exam', 787 name: 'Exam',
760 props: (route) => ({ 788 props: (route) => ({
761 type: route.query.type 789 type: route.query.type
762 }), 790 }),
763 component: () => 791 component: () =>
764 import( 792 import(
765 /* webpackChunkName: "routes" */ 793 /* webpackChunkName: "routes" */
766 /* webpackMode: "lazy-once" */ 794 /* webpackMode: "lazy-once" */
767 `@/pages/Exam/exam.vue` 795 `@/pages/Exam/exam.vue`
768 ) 796 )
769 }, 797 },
770 { 798 {
771 path: '/grade', 799 path: '/grade',
772 meta: {}, 800 meta: {},
773 name: 'Grade', 801 name: 'Grade',
774 props: (route) => ({ 802 props: (route) => ({
775 type: route.query.type 803 type: route.query.type
776 }), 804 }),
777 component: () => 805 component: () =>
778 import( 806 import(
779 /* webpackChunkName: "routes" */ 807 /* webpackChunkName: "routes" */
780 /* webpackMode: "lazy-once" */ 808 /* webpackMode: "lazy-once" */
781 `@/pages/Exam/grade.vue` 809 `@/pages/Exam/grade.vue`
782 ) 810 )
783 }, 811 },
784 { 812 {
785 path: '/examSchedule', 813 path: '/examSchedule',
786 meta: {}, 814 meta: {},
787 name: 'Exam Schedule', 815 name: 'Exam Schedule',
788 props: (route) => ({ 816 props: (route) => ({
789 type: route.query.type 817 type: route.query.type
790 }), 818 }),
791 component: () => 819 component: () =>
792 import( 820 import(
793 /* webpackChunkName: "routes" */ 821 /* webpackChunkName: "routes" */
794 /* webpackMode: "lazy-once" */ 822 /* webpackMode: "lazy-once" */
795 `@/pages/Exam/examSchedule.vue` 823 `@/pages/Exam/examSchedule.vue`
796 ) 824 )
797 }, 825 },
798 { 826 {
799 path: '/examAttendence', 827 path: '/examAttendence',
800 meta: {}, 828 meta: {},
801 name: 'Exam Attendence', 829 name: 'Exam Attendence',
802 props: (route) => ({ 830 props: (route) => ({
803 type: route.query.type 831 type: route.query.type
804 }), 832 }),
805 component: () => 833 component: () =>
806 import( 834 import(
807 /* webpackChunkName: "routes" */ 835 /* webpackChunkName: "routes" */
808 /* webpackMode: "lazy-once" */ 836 /* webpackMode: "lazy-once" */
809 `@/pages/Exam/examAttendence.vue` 837 `@/pages/Exam/examAttendence.vue`
810 ) 838 )
811 }, 839 },
812 { 840 {
813 path: '/mark', 841 path: '/mark',
814 meta: {}, 842 meta: {},
815 name: 'Mark', 843 name: 'Mark',
816 props: (route) => ({ 844 props: (route) => ({
817 type: route.query.type 845 type: route.query.type
818 }), 846 }),
819 component: () => 847 component: () =>
820 import( 848 import(
821 /* webpackChunkName: "routes" */ 849 /* webpackChunkName: "routes" */
822 /* webpackMode: "lazy-once" */ 850 /* webpackMode: "lazy-once" */
823 `@/pages/Mark/mark.vue` 851 `@/pages/Mark/mark.vue`
824 ) 852 )
825 }, 853 },
826 { 854 {
827 path: '/viewMark/:markId', 855 path: '/viewMark/:markId',
828 meta: {}, 856 meta: {},
829 name: 'view Mark', 857 name: 'view Mark',
830 props: (route) => ({ 858 props: (route) => ({
831 type: route.query.type 859 type: route.query.type
832 }), 860 }),
833 component: () => 861 component: () =>
834 import( 862 import(
835 /* webpackChunkName: "routes" */ 863 /* webpackChunkName: "routes" */
836 /* webpackMode: "lazy-once" */ 864 /* webpackMode: "lazy-once" */
837 `@/pages/Mark/viewMark.vue` 865 `@/pages/Mark/viewMark.vue`
838 ) 866 )
839 }, 867 },
840 { 868 {
841 path: '/markDistribution', 869 path: '/markDistribution',
842 meta: {}, 870 meta: {},
843 name: 'Mark Distribution', 871 name: 'Mark Distribution',
844 props: (route) => ({ 872 props: (route) => ({
845 type: route.query.type 873 type: route.query.type
846 }), 874 }),
847 component: () => 875 component: () =>
848 import( 876 import(
849 /* webpackChunkName: "routes" */ 877 /* webpackChunkName: "routes" */
850 /* webpackMode: "lazy-once" */ 878 /* webpackMode: "lazy-once" */
851 `@/pages/Mark/markDistribution.vue` 879 `@/pages/Mark/markDistribution.vue`
852 ) 880 )
853 }, 881 },
854 // { 882 // {
855 // path: '/meet', 883 // path: '/meet',
856 // meta: {}, 884 // meta: {},
857 // name: 'Meet', 885 // name: 'Meet',
858 // props: (route) => ({ 886 // props: (route) => ({
859 // type: route.query.type 887 // type: route.query.type
860 // }), 888 // }),
861 // component: () => 889 // component: () =>
862 // import( 890 // import(
863 // /* webpackChunkName: "routes" */ 891 // /* webpackChunkName: "routes" */
864 // /* webpackMode: "lazy-once" */ 892 // /* webpackMode: "lazy-once" */
865 // `@/pages/Meet/meet.vue` 893 // `@/pages/Meet/meet.vue`
866 // ) 894 // )
867 // }, 895 // },
868 { 896 {
869 path: '/academicYear', 897 path: '/academicYear',
870 meta: {}, 898 meta: {},
871 name: 'Academic Year', 899 name: 'Academic Year',
872 props: (route) => ({ 900 props: (route) => ({
873 type: route.query.type 901 type: route.query.type
874 }), 902 }),
875 component: () => 903 component: () =>
876 import( 904 import(
877 /* webpackChunkName: "routes" */ 905 /* webpackChunkName: "routes" */
878 /* webpackMode: "lazy-once" */ 906 /* webpackMode: "lazy-once" */
879 `@/pages/Administrator/academicYear.vue` 907 `@/pages/Administrator/academicYear.vue`
880 ) 908 )
881 }, 909 },
882 { 910 {
883 path: '/systemAdmin', 911 path: '/systemAdmin',
884 meta: {}, 912 meta: {},
885 name: 'System Admin', 913 name: 'System Admin',
886 props: (route) => ({ 914 props: (route) => ({
887 type: route.query.type 915 type: route.query.type
888 }), 916 }),
889 component: () => 917 component: () =>
890 import( 918 import(
891 /* webpackChunkName: "routes" */ 919 /* webpackChunkName: "routes" */
892 /* webpackMode: "lazy-once" */ 920 /* webpackMode: "lazy-once" */
893 `@/pages/Administrator/systemAdmin.vue` 921 `@/pages/Administrator/systemAdmin.vue`
894 ) 922 )
895 }, 923 },
896 { 924 {
897 path: '/resetPassword', 925 path: '/resetPassword',
898 meta: {}, 926 meta: {},
899 name: 'Change Password', 927 name: 'Change Password',
900 props: (route) => ({ 928 props: (route) => ({
901 type: route.query.type 929 type: route.query.type
902 }), 930 }),
903 component: () => 931 component: () =>
904 import( 932 import(
905 /* webpackChunkName: "routes" */ 933 /* webpackChunkName: "routes" */
906 /* webpackMode: "lazy-once" */ 934 /* webpackMode: "lazy-once" */
907 `@/pages/Administrator/resetPassword.vue` 935 `@/pages/Administrator/resetPassword.vue`
908 ) 936 )
909 }, 937 },
910 { 938 {
911 path: '/role', 939 path: '/role',
912 meta: {}, 940 meta: {},
913 name: 'Role', 941 name: 'Role',
914 props: (route) => ({ 942 props: (route) => ({
915 type: route.query.type 943 type: route.query.type
916 }), 944 }),
917 component: () => 945 component: () =>
918 import( 946 import(
919 /* webpackChunkName: "routes" */ 947 /* webpackChunkName: "routes" */
920 /* webpackMode: "lazy-once" */ 948 /* webpackMode: "lazy-once" */
921 `@/pages/Administrator/role.vue` 949 `@/pages/Administrator/role.vue`
922 ) 950 )
923 }, 951 },
924 { 952 {
925 path: '/bulkImport', 953 path: '/bulkImport',
926 meta: {}, 954 meta: {},
927 name: 'Bulk Import', 955 name: 'Bulk Import',
928 props: (route) => ({ 956 props: (route) => ({
929 type: route.query.type 957 type: route.query.type
930 }), 958 }),
931 component: () => 959 component: () =>
932 import( 960 import(
933 /* webpackChunkName: "routes" */ 961 /* webpackChunkName: "routes" */
934 /* webpackMode: "lazy-once" */ 962 /* webpackMode: "lazy-once" */
935 `@/pages/Administrator/bulkImport.vue` 963 `@/pages/Administrator/bulkImport.vue`
936 ) 964 )
937 }, 965 },
938 { 966 {
939 path: '/studentReport', 967 path: '/studentReport',
940 meta: {}, 968 meta: {},
941 name: 'Student Report', 969 name: 'Student Report',
942 props: (route) => ({ 970 props: (route) => ({
943 type: route.query.type 971 type: route.query.type
944 }), 972 }),
945 component: () => 973 component: () =>
946 import( 974 import(
947 /* webpackChunkName: "routes" */ 975 /* webpackChunkName: "routes" */
948 /* webpackMode: "lazy-once" */ 976 /* webpackMode: "lazy-once" */
949 `@/pages/Report/studentReport.vue` 977 `@/pages/Report/studentReport.vue`
950 ) 978 )
951 }, 979 },
952 { 980 {
953 path: '/progressCardReport', 981 path: '/progressCardReport',
954 meta: {}, 982 meta: {},
955 name: 'Progress Card Report', 983 name: 'Progress Card Report',
956 props: (route) => ({ 984 props: (route) => ({
957 type: route.query.type 985 type: route.query.type
958 }), 986 }),
959 component: () => 987 component: () =>
960 import( 988 import(
961 /* webpackChunkName: "routes" */ 989 /* webpackChunkName: "routes" */
962 /* webpackMode: "lazy-once" */ 990 /* webpackMode: "lazy-once" */
963 `@/pages/Report/progressCardReport.vue` 991 `@/pages/Report/progressCardReport.vue`
964 ) 992 )
965 }, 993 },
966 { 994 {
967 path: '/idCard', 995 path: '/idCard',
968 meta: {}, 996 meta: {},
969 name: 'Id Card Report', 997 name: 'Id Card Report',
970 props: (route) => ({ 998 props: (route) => ({
971 type: route.query.type 999 type: route.query.type
972 }), 1000 }),
973 component: () => 1001 component: () =>
974 import( 1002 import(
975 `@/pages/Report/idCard.vue` 1003 `@/pages/Report/idCard.vue`
976 ) 1004 )
977 }, 1005 },
978 { 1006 {
979 path: '/admitCard', 1007 path: '/admitCard',
980 meta: {}, 1008 meta: {},
981 name: 'Admit Card Report', 1009 name: 'Admit Card Report',
982 props: (route) => ({ 1010 props: (route) => ({
983 type: route.query.type 1011 type: route.query.type
984 }), 1012 }),
985 component: () => 1013 component: () =>
986 import( 1014 import(
987 `@/pages/Report/admitCard.vue` 1015 `@/pages/Report/admitCard.vue`
988 ) 1016 )
989 }, 1017 },
990 { 1018 {
991 path: '/generalSetting', 1019 path: '/generalSetting',
992 meta: {}, 1020 meta: {},
993 name: 'General Setting', 1021 name: 'General Setting',
994 props: (route) => ({ 1022 props: (route) => ({
995 type: route.query.type 1023 type: route.query.type
996 }), 1024 }),
997 component: () => 1025 component: () =>
998 import( 1026 import(
999 /* webpackChunkName: "routes" */ 1027 /* webpackChunkName: "routes" */
1000 /* webpackMode: "lazy-once" */ 1028 /* webpackMode: "lazy-once" */
1001 `@/pages/generalSetting/generalSetting.vue` 1029 `@/pages/generalSetting/generalSetting.vue`
1002 ) 1030 )
1003 }, 1031 },
1004 { 1032 {
1005 path: '/assignment', 1033 path: '/assignment',
1006 meta: {}, 1034 meta: {},
1007 name: 'Assignment', 1035 name: 'Assignment',
1008 props: (route) => ({ 1036 props: (route) => ({
1009 type: route.query.type 1037 type: route.query.type
1010 }), 1038 }),
1011 component: () => 1039 component: () =>
1012 import( 1040 import(
1013 `@/pages/Academic/assignment.vue` 1041 `@/pages/Academic/assignment.vue`
1014 ) 1042 )
1015 }, 1043 },
1016 { 1044 {
1017 path: '/routine', 1045 path: '/routine',
1018 meta: {}, 1046 meta: {},
1019 name: 'Routine', 1047 name: 'Routine',
1020 props: (route) => ({ 1048 props: (route) => ({
1021 type: route.query.type 1049 type: route.query.type
1022 }), 1050 }),
1023 component: () => 1051 component: () =>
1024 import( 1052 import(
1025 `@/pages/Academic/routine.vue` 1053 `@/pages/Academic/routine.vue`
1026 ) 1054 )
1027 }, 1055 },
1028 { 1056 {
1029 path: '/subject', 1057 path: '/subject',
1030 meta: {}, 1058 meta: {},
1031 name: 'Subject', 1059 name: 'Subject',
1032 props: (route) => ({ 1060 props: (route) => ({
1033 type: route.query.type 1061 type: route.query.type
1034 }), 1062 }),
1035 component: () => 1063 component: () =>
1036 import( 1064 import(
1037 `@/pages/Academic/subject.vue` 1065 `@/pages/Academic/subject.vue`
1038 ) 1066 )
1039 }, 1067 },
1040 { 1068 {
1041 path: '/syllabus', 1069 path: '/syllabus',
1042 meta: {}, 1070 meta: {},
1043 name: 'Syllabus', 1071 name: 'Syllabus',
1044 props: (route) => ({ 1072 props: (route) => ({
1045 type: route.query.type 1073 type: route.query.type
1046 }), 1074 }),
1047 component: () => 1075 component: () =>
1048 import( 1076 import(
1049 `@/pages/Academic/syllabus.vue` 1077 `@/pages/Academic/syllabus.vue`
1050 ) 1078 )
1051 }, 1079 },
1052 { 1080 {
1053 path: '/course', 1081 path: '/course',
1054 meta: {}, 1082 meta: {},
1055 name: 'Course', 1083 name: 'Course',
1056 props: (route) => ({ 1084 props: (route) => ({
1057 type: route.query.type 1085 type: route.query.type
1058 }), 1086 }),
1059 component: () => 1087 component: () =>
1060 import( 1088 import(
1061 /* webpackChunkName: "routes" */ 1089 /* webpackChunkName: "routes" */
1062 /* webpackMode: "lazy-once" */ 1090 /* webpackMode: "lazy-once" */
1063 `@/pages/Course/course.vue` 1091 `@/pages/Course/course.vue`
1064 ) 1092 )
1065 }, 1093 },
1066 { 1094 {
1067 path: '/courseDetail', 1095 path: '/courseDetail',
1068 meta: {}, 1096 meta: {},
1069 name: 'Course Detail', 1097 name: 'Course Detail',
1070 props: (route) => ({ 1098 props: (route) => ({
1071 type: route.query.type 1099 type: route.query.type
1072 }), 1100 }),
1073 component: () => 1101 component: () =>
1074 import( 1102 import(
1075 /* webpackChunkName: "routes" */ 1103 /* webpackChunkName: "routes" */
1076 /* webpackMode: "lazy-once" */ 1104 /* webpackMode: "lazy-once" */
1077 `@/pages/Course/courseDetail.vue` 1105 `@/pages/Course/courseDetail.vue`
1078 ) 1106 )
1079 }, 1107 },
1080 { 1108 {
1081 path: '/enrollStudents', 1109 path: '/enrollStudents',
1082 meta: {}, 1110 meta: {},
1083 name: 'Enroll Students', 1111 name: 'Enroll Students',
1084 props: (route) => ({ 1112 props: (route) => ({
1085 type: route.query.type 1113 type: route.query.type
1086 }), 1114 }),
1087 component: () => 1115 component: () =>
1088 import( 1116 import(
1089 /* webpackChunkName: "routes" */ 1117 /* webpackChunkName: "routes" */
1090 /* webpackMode: "lazy-once" */ 1118 /* webpackMode: "lazy-once" */
1091 `@/pages/Course/enrollStudents.vue` 1119 `@/pages/Course/enrollStudents.vue`
1092 ) 1120 )
1093 }, 1121 },
1094 { 1122 {
1095 path: '/changeStudents', 1123 path: '/changeStudents',
1096 meta: {}, 1124 meta: {},
1097 name: 'Change Students', 1125 name: 'Change Students',
1098 props: (route) => ({ 1126 props: (route) => ({
1099 type: route.query.type 1127 type: route.query.type
1100 }), 1128 }),
1101 component: () => 1129 component: () =>
1102 import( 1130 import(
1103 /* webpackChunkName: "routes" */ 1131 /* webpackChunkName: "routes" */
1104 /* webpackMode: "lazy-once" */ 1132 /* webpackMode: "lazy-once" */
1105 `@/pages/changeStudents/changeStudents.vue` 1133 `@/pages/changeStudents/changeStudents.vue`
1106 ) 1134 )
1107 }, 1135 },
1108 { 1136 {
1109 path: '/annoucement', 1137 path: '/annoucement',
1110 meta: {}, 1138 meta: {},
1111 name: 'Annoucement', 1139 name: 'Annoucement',
1112 props: (route) => ({ 1140 props: (route) => ({
1113 type: route.query.type 1141 type: route.query.type
1114 }), 1142 }),
1115 component: () => 1143 component: () =>
1116 import( 1144 import(
1117 /* webpackChunkName: "routes" */ 1145 /* webpackChunkName: "routes" */
1118 /* webpackMode: "lazy-once" */ 1146 /* webpackMode: "lazy-once" */
1119 `@/pages/Annoucement/annoucement.vue` 1147 `@/pages/Annoucement/annoucement.vue`
1120 ) 1148 )
1121 }, 1149 },
1122 { 1150 {
1123 path: '/meetingEvent', 1151 path: '/meetingEvent',
1124 meta: {}, 1152 meta: {},
1125 name: 'Meeting Event', 1153 name: 'Meeting Event',
1126 props: (route) => ({ 1154 props: (route) => ({
1127 type: route.query.type 1155 type: route.query.type
1128 }), 1156 }),
1129 component: () => 1157 component: () =>
1130 import( 1158 import(
1131 /* webpackChunkName: "routes" */ 1159 /* webpackChunkName: "routes" */
1132 /* webpackMode: "lazy-once" */ 1160 /* webpackMode: "lazy-once" */
1133 `@/pages/meetingEvent/meetingEvent.vue` 1161 `@/pages/meetingEvent/meetingEvent.vue`
1134 ) 1162 )
1135 }, 1163 },
1136 //////SCHOOL 1164 //////SCHOOL
1137 1165
1138 { 1166 {
1139 path: '/school', 1167 path: '/school',
1140 meta: {}, 1168 meta: {},
1141 name: 'School', 1169 name: 'School',
1142 props: (route) => ({ 1170 props: (route) => ({
1143 type: route.query.type 1171 type: route.query.type
1144 }), 1172 }),
1145 component: () => 1173 component: () =>
1146 import( 1174 import(
1147 /* webpackChunkName: "routes" */ 1175 /* webpackChunkName: "routes" */
1148 /* webpackMode: "lazy-once" */ 1176 /* webpackMode: "lazy-once" */
1149 `@/pages/School/school.vue` 1177 `@/pages/School/school.vue`
1150 ) 1178 )
1151 }, 1179 },
1152 { 1180 {
1153 path: '/appVersion', 1181 path: '/appVersion',
1154 meta: {}, 1182 meta: {},
1155 name: 'App Version', 1183 name: 'App Version',
1156 props: (route) => ({ 1184 props: (route) => ({
1157 type: route.query.type 1185 type: route.query.type
1158 }), 1186 }),
1159 component: () => 1187 component: () =>
1160 import( 1188 import(
1161 /* webpackChunkName: "routes" */ 1189 /* webpackChunkName: "routes" */
1162 /* webpackMode: "lazy-once" */ 1190 /* webpackMode: "lazy-once" */
1163 `@/pages/School/appVersion.vue` 1191 `@/pages/School/appVersion.vue`
1164 ) 1192 )
1165 }, 1193 },
1166 { 1194 {
1167 path: '/schooldashboard', 1195 path: '/schooldashboard',
1168 meta: {}, 1196 meta: {},
1169 name: 'View School Dashboard', 1197 name: 'View School Dashboard',
1170 props: (route) => ({ 1198 props: (route) => ({
1171 type: route.query.type 1199 type: route.query.type
1172 }), 1200 }),
1173 component: () => 1201 component: () =>
1174 import( 1202 import(
1175 /* webpackChunkName: "routes" */ 1203 /* webpackChunkName: "routes" */
1176 /* webpackMode: "lazy-once" */ 1204 /* webpackMode: "lazy-once" */
1177 `@/pages/School/viewSchoolDashboard.vue` 1205 `@/pages/School/viewSchoolDashboard.vue`
1178 ) 1206 )
1179 } 1207 }
1180 ]; 1208 ];