Commit dea4d2889746cb7b62acba1f1d51c56e26799349

Authored by Neeraj Sharma
1 parent 6a40df7c7f

task commited

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: 'Section', 16 title: 'Section',
17 // group: 'apps', 17 // group: 'apps',
18 name: 'Section', 18 name: 'Section',
19 icon: '/static/icon/section.png', 19 icon: '/static/icon/section.png',
20 }, 20 },
21 // { 21 // {
22 // title: 'Subjects', 22 // title: 'Subjects',
23 // name: 'Subject', 23 // name: 'Subject',
24 // icon: '/static/icon/subject.png', 24 // icon: '/static/icon/subject.png',
25 // }, 25 // },
26 { 26 {
27 title: 'Parents', 27 title: 'Parents',
28 // group: 'apps', 28 // group: 'apps',
29 name: 'Parents', 29 name: 'Parents',
30 icon: '/static/icon/parents.png', 30 icon: '/static/icon/parents.png',
31 }, 31 },
32 { 32 {
33 title: 'Teachers', 33 title: 'Teachers',
34 // group: '', 34 // group: '',
35 name: 'Teachers', 35 name: 'Teachers',
36 icon: '/static/icon/teacher.png', 36 icon: '/static/icon/teacher.png',
37 }, 37 },
38 { 38 {
39 title: 'Students', 39 title: 'Students',
40 // group: 'apps', 40 // group: 'apps',
41 name: 'Students', 41 name: 'Students',
42 icon: '/static/icon/student.png', 42 icon: '/static/icon/student.png',
43 }, 43 },
44 { 44 {
45 title: 'User', 45 title: 'User',
46 name: 'User', 46 name: 'User',
47 icon: '/static/icon/users.png', 47 icon: '/static/icon/users.png',
48 }, 48 },
49 { 49 {
50 title: 'Attendance', 50 title: 'Attendance',
51 group: 'Attendance', 51 group: 'Attendance',
52 component: 'Attendance', 52 component: 'Attendance',
53 icon: '/static/icon/attendence.png', 53 icon: '/static/icon/attendence.png',
54 items: [ 54 items: [
55 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, 55 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', },
56 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, 56 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', },
57 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, 57 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', },
58 ] 58 ]
59 }, 59 },
60 { 60 {
61 title: 'Exam', 61 title: 'Exam',
62 group: 'Exam', 62 group: 'Exam',
63 component: 'Exam', 63 component: 'Exam',
64 icon: '/static/icon/exam.png', 64 icon: '/static/icon/exam.png',
65 items: [ 65 items: [
66 { name: 'Exam', title: 'Exam', component: 'Exam', action: '', }, 66 { name: 'Exam', title: 'Exam', component: 'Exam', action: '', },
67 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, 67 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', },
68 { name: 'Grade', title: 'Grade', component: 'Grade', action: '', }, 68 { name: 'Grade', title: 'Grade', component: 'Grade', action: '', },
69 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, 69 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', },
70 ] 70 ]
71 }, 71 },
72 { 72 {
73 title: 'Marks', 73 title: 'Marks',
74 group: 'Mark', 74 group: 'Mark',
75 component: 'Mark', 75 component: 'Mark',
76 icon: '/static/icon/marks.png', 76 icon: '/static/icon/marks.png',
77 items: [ 77 items: [
78 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', }, 78 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', },
79 { name: 'MarkDistribution', title: 'Mark Distribution', component: 'Mark Distribution', action: '', }, 79 { name: 'MarkDistribution', title: 'Mark Distribution', component: 'Mark Distribution', action: '', },
80 // { name: 'Promotion', title: 'promotion', component: 'Promotion', action: '', }, 80 // { name: 'Promotion', title: 'promotion', component: 'Promotion', action: '', },
81 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, 81 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', },
82 ] 82 ]
83 }, 83 },
84 { 84 {
85 title: 'Academic', 85 title: 'Academic',
86 group: 'Academic', 86 group: 'Academic',
87 component: 'Academic', 87 component: 'Academic',
88 icon: '/static/icon/school.png', 88 icon: '/static/icon/school.png',
89 items: [ 89 items: [
90 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, 90 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', },
91 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, 91 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', },
92 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, 92 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', },
93 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, 93 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', },
94 ] 94 ]
95 }, 95 },
96 { 96 {
97 title: 'Administrator', 97 title: 'Administrator',
98 group: 'Administrator', 98 group: 'Administrator',
99 component: 'Administrator', 99 component: 'Administrator',
100 icon: '/static/icon/adminstrator.png', 100 icon: '/static/icon/adminstrator.png',
101 items: [ 101 items: [
102 { name: 'AcademicYear', title: 'Academic Year', component: 'Academic Year', action: '', }, 102 { name: 'AcademicYear', title: 'Academic Year', component: 'Academic Year', action: '', },
103 // { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', }, 103 // { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', },
104 { name: 'resetPassword', title: 'Change Password', component: 'Change Password', action: '', }, 104 { name: 'resetPassword', title: 'Change Password', component: 'Change Password', action: '', },
105 { name: 'Role', title: 'Role', component: 'Role', action: '', }, 105 { name: 'Role', title: 'Role', component: 'Role', action: '', },
106 { name: 'BulkImport', title: 'Bulk Import', component: 'Bulk Import', action: '', }, 106 { name: 'BulkImport', title: 'Bulk Import', component: 'Bulk Import', action: '', },
107 107
108 ] 108 ]
109 }, 109 },
110 { 110 {
111 title: 'Payroll', 111 title: 'Payroll',
112 group: 'Payroll', 112 group: 'Payroll',
113 component: 'Payroll', 113 component: 'Payroll',
114 icon: '/static/icon/dollar.png', 114 icon: '/static/icon/dollar.png',
115 items: [ 115 items: [
116 { name: 'salaryTemplate', title: 'Salary Template', component: 'Salary Template', action: '', }, 116 { name: 'salaryTemplate', title: 'Salary Template', component: 'Salary Template', action: '', },
117 { name: 'hourlyTemplate', title: 'Hourly Template', component: 'Hourly Template', action: '', }, 117 { name: 'hourlyTemplate', title: 'Hourly Template', component: 'Hourly Template', action: '', },
118 { name: 'manageSalary', title: 'Manage Salary', component: 'Manage Salary', action: '', }, 118 { name: 'manageSalary', title: 'Manage Salary', component: 'Manage Salary', action: '', },
119 // { name: 'makePayment', title: 'Make Payment', component: 'Make Payment', action: '', }, 119 // { name: 'makePayment', title: 'Make Payment', component: 'Make Payment', action: '', },
120 ] 120 ]
121 }, 121 },
122 { 122 {
123 title: 'Notice Board', 123 title: 'Notice Board',
124 name: 'Notice Board', 124 name: 'Notice Board',
125 icon: '/static/icon/notice board.png', 125 icon: '/static/icon/notice board.png',
126 }, 126 },
127 { 127 {
128 title: 'News', 128 title: 'News',
129 name: 'News', 129 name: 'News',
130 icon: '/static/icon/news.png', 130 icon: '/static/icon/news.png',
131 }, 131 },
132 // { 132 // {
133 // title: 'Reminder', 133 // title: 'Reminder',
134 // name: 'reminder', 134 // name: 'reminder',
135 // icon: 'alarm_add', 135 // icon: 'alarm_add',
136 // }, 136 // },
137 { 137 {
138 title: 'Time Table', 138 title: 'Time Table',
139 name: 'Time Table', 139 name: 'Time Table',
140 icon: '/static/icon/time table.png', 140 icon: '/static/icon/time table.png',
141 }, 141 },
142 { 142 {
143 title: 'Library', 143 title: 'Library',
144 group: 'Library', 144 group: 'Library',
145 component: 'Library', 145 component: 'Library',
146 icon: '/static/icon/library.png', 146 icon: '/static/icon/library.png',
147 items: [ 147 items: [
148 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, 148 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', },
149 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 149 { name: 'Books', title: 'Books', component: 'Books', action: '', },
150 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, 150 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', },
151 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } 151 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', }
152 152
153 ] 153 ]
154 }, 154 },
155 { 155 {
156 title: 'Report', 156 title: 'Report',
157 group: 'Report', 157 group: 'Report',
158 component: 'Report', 158 component: 'Report',
159 icon: '/static/icon/reports.png', 159 icon: '/static/icon/reports.png',
160 items: [ 160 items: [
161 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, 161 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', },
162 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, 162 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', },
163 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, 163 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', },
164 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } 164 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', }
165 ] 165 ]
166 }, 166 },
167 { 167 {
168 title: 'Notification', 168 title: 'Notification',
169 name: 'Notification', 169 name: 'Notification',
170 icon: '/static/icon/notification.png', 170 icon: '/static/icon/notification.png',
171 }, 171 },
172 { 172 {
173 title: 'Social Media', 173 title: 'Social Media',
174 name: 'Social Media', 174 name: 'Social Media',
175 icon: '/static/icon/events.png', 175 icon: '/static/icon/events.png',
176 }, 176 },
177 { 177 {
178 title: 'Gallery', 178 title: 'Gallery',
179 name: 'Gallery', 179 name: 'Gallery',
180 icon: '/static/icon/gallery.png', 180 icon: '/static/icon/gallery.png',
181 }, 181 },
182 { 182 {
183 title: 'Event', 183 title: 'Event',
184 name: 'Event', 184 name: 'Event',
185 icon: '/static/icon/events.png', 185 icon: '/static/icon/events.png',
186 }, 186 },
187 { 187 {
188 title: 'Account', 188 title: 'Account',
189 group: 'Account', 189 group: 'Account',
190 component: 'Account', 190 component: 'Account',
191 icon: '/static/icon/accounts.png', 191 icon: '/static/icon/accounts.png',
192 items: [ 192 items: [
193 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, 193 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', },
194 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, 194 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', },
195 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, 195 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', },
196 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, 196 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', },
197 { name: 'Income', title: 'Income', component: 'Income', action: '', }, 197 { name: 'Income', title: 'Income', component: 'Income', action: '', },
198 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } 198 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', }
199 ] 199 ]
200 }, 200 },
201 { 201 {
202 title: 'Holiday', 202 title: 'Holiday',
203 name: 'Holiday', 203 name: 'Holiday',
204 icon: '/static/icon/holiday.png', 204 icon: '/static/icon/holiday.png',
205 }, 205 },
206 { 206 {
207 title: 'General Setting', 207 title: 'General Setting',
208 name: 'General Setting', 208 name: 'General Setting',
209 icon: '/static/icon/settings.png', 209 icon: '/static/icon/settings.png',
210 } 210 }
211 ]; 211 ];
212 212
213 const libraryMenu = [{ 213 const libraryMenu = [{
214 title: 'Dashboard', 214 title: 'Dashboard',
215 name: 'Dashboard', 215 name: 'Dashboard',
216 icon: '/static/icon/dashboard.png', 216 icon: '/static/icon/dashboard.png',
217 }, 217 },
218 { 218 {
219 title: 'Library', 219 title: 'Library',
220 group: 'Library', 220 group: 'Library',
221 component: 'Library', 221 component: 'Library',
222 icon: '/static/icon/library.png', 222 icon: '/static/icon/library.png',
223 items: [ 223 items: [
224 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, 224 { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', },
225 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 225 { name: 'Books', title: 'Books', component: 'Books', action: '', },
226 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, 226 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', },
227 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } 227 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', }
228 228
229 ] 229 ]
230 }, 230 },
231 ]; 231 ];
232 232
233 const accountMenu = [{ 233 const accountMenu = [{
234 title: 'Dashboard', 234 title: 'Dashboard',
235 name: 'Dashboard', 235 name: 'Dashboard',
236 icon: '/static/icon/dashboard.png', 236 icon: '/static/icon/dashboard.png',
237 }, 237 },
238 238
239 { 239 {
240 title: 'Account', 240 title: 'Account',
241 group: 'Account', 241 group: 'Account',
242 component: 'Account', 242 component: 'Account',
243 icon: '/static/icon/accounts.png', 243 icon: '/static/icon/accounts.png',
244 items: [ 244 items: [
245 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, 245 { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', },
246 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, 246 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', },
247 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, 247 { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', },
248 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, 248 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', },
249 { name: 'Income', title: 'Income', component: 'Income', action: '', }, 249 { name: 'Income', title: 'Income', component: 'Income', action: '', },
250 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } 250 { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', }
251 ] 251 ]
252 }, 252 },
253 ]; 253 ];
254 254
255 const schoolMenu = [ 255 const schoolMenu = [
256 // { header: 'Apps' }, 256 // { header: 'Apps' },
257 { 257 {
258 title: 'Dashboard', 258 title: 'Dashboard',
259 // group: 'apps', 259 // group: 'apps',
260 name: 'View School Dashboard', 260 name: 'View School Dashboard',
261 icon: '/static/icon/dashboard.png', 261 icon: '/static/icon/dashboard.png',
262 }, 262 },
263 { 263 {
264 title: 'School', 264 title: 'School',
265 // group: 'apps', 265 // group: 'apps',
266 name: 'School', 266 name: 'School',
267 icon: '/static/schoolIcons/Dashboard.png', 267 icon: '/static/schoolIcons/Dashboard.png',
268 } 268 }
269 ]; 269 ];
270 270
271 const teacherMenu = [{ 271 const teacherMenu = [{
272 title: 'Dashboard', 272 title: 'Dashboard',
273 name: 'Dashboard', 273 name: 'Dashboard',
274 icon: '/static/icon/dashboard.png', 274 icon: '/static/icon/dashboard.png',
275 }, 275 },
276 { 276 {
277 title: 'Parents', 277 title: 'Parents',
278 // group: 'apps', 278 // group: 'apps',
279 name: 'Parents', 279 name: 'Parents',
280 icon: '/static/icon/parents.png', 280 icon: '/static/icon/parents.png',
281 }, 281 },
282 { 282 {
283 title: 'Teachers', 283 title: 'Teachers',
284 // group: '', 284 // group: '',
285 name: 'Teachers', 285 name: 'Teachers',
286 icon: '/static/icon/teacher.png', 286 icon: '/static/icon/teacher.png',
287 }, 287 },
288 { 288 {
289 title: 'Students', 289 title: 'Students',
290 // group: 'apps', 290 // group: 'apps',
291 name: 'Students', 291 name: 'Students',
292 icon: '/static/icon/student.png', 292 icon: '/static/icon/student.png',
293 }, 293 },
294 { 294 {
295 title: 'Academic', 295 title: 'Academic',
296 group: 'Academic', 296 group: 'Academic',
297 component: 'Academic', 297 component: 'Academic',
298 icon: '/static/icon/school.png', 298 icon: '/static/icon/school.png',
299 items: [ 299 items: [
300 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, 300 { name: 'Subject', title: 'Subject', component: 'Subject', action: '', },
301 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, 301 { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', },
302 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, 302 { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', },
303 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, 303 { name: 'Routine', title: 'Routine', component: 'Routine', action: '', },
304 ] 304 ]
305 }, 305 },
306 { 306 {
307 title: 'Course', 307 title: 'Course',
308 group: 'Course', 308 group: 'Course',
309 component: 'Course', 309 component: 'Course',
310 icon: '/static/icon/school.png', 310 icon: '/static/icon/school.png',
311 items: [ 311 items: [
312 { name: 'Course', title: 'Course', component: 'Course', action: '', }, 312 { name: 'Course', title: 'Course', component: 'Course', action: '', },
313 { name: 'Enroll Students', title: 'Enroll Students', component: 'Enroll Students', action: '', }, 313 { name: 'Enroll Students', title: 'Enroll Students', component: 'Enroll Students', action: '', },
314 { name: 'Course Detail', title: 'Course Detail', component: 'Course Detail', action: '', }, 314 { name: 'Course Detail', title: 'Course Detail', component: 'Course Detail', action: '', },
315 // { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, 315 { name: 'Course Discussion', title: 'Course Discussion', component: 'Course Discussion', action: '', },
316 ] 316 ]
317 }, 317 },
318 { 318 {
319 title: 'Annoucement', 319 title: 'Annoucement',
320 // group: 'apps', 320 // group: 'apps',
321 name: 'Annoucement', 321 name: 'Annoucement',
322 icon: '/static/icon/student.png', 322 icon: '/static/icon/student.png',
323 }, 323 },
324 { 324 {
325 title: 'Meeting Event', 325 title: 'Meeting Event',
326 // group: 'apps', 326 // group: 'apps',
327 name: 'Meeting Event', 327 name: 'Meeting Event',
328 icon: '/static/icon/student.png', 328 icon: '/static/icon/student.png',
329 }, 329 },
330 { 330 {
331 title: 'Attendance', 331 title: 'Attendance',
332 group: 'Attendance', 332 group: 'Attendance',
333 component: 'Attendance', 333 component: 'Attendance',
334 icon: '/static/icon/attendence.png', 334 icon: '/static/icon/attendence.png',
335 items: [ 335 items: [
336 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, 336 { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', },
337 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, 337 { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', },
338 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, 338 // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', },
339 ] 339 ]
340 }, 340 },
341 { 341 {
342 title: 'Exam', 342 title: 'Exam',
343 group: 'Exam', 343 group: 'Exam',
344 component: 'Exam', 344 component: 'Exam',
345 icon: '/static/icon/exam.png', 345 icon: '/static/icon/exam.png',
346 items: [ 346 items: [
347 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, 347 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', },
348 { name: 'ExamAttendence', title: 'Exam Attendence', component: 'Exam Attendence', action: '', } 348 { name: 'ExamAttendence', title: 'Exam Attendence', component: 'Exam Attendence', action: '', }
349 ] 349 ]
350 }, 350 },
351 { 351 {
352 title: 'Marks', 352 title: 'Marks',
353 group: 'Mark', 353 group: 'Mark',
354 component: 'Mark', 354 component: 'Mark',
355 icon: '/static/icon/marks.png', 355 icon: '/static/icon/marks.png',
356 items: [ 356 items: [
357 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', } 357 { name: 'Mark', title: 'Mark', component: 'Mark', action: '', }
358 ] 358 ]
359 }, 359 },
360 { 360 {
361 title: 'Report', 361 title: 'Report',
362 group: 'Report', 362 group: 'Report',
363 component: 'Report', 363 component: 'Report',
364 icon: '/static/icon/reports.png', 364 icon: '/static/icon/reports.png',
365 items: [ 365 items: [
366 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, 366 { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', },
367 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, 367 { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', },
368 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, 368 { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', },
369 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } 369 { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', }
370 ] 370 ]
371 }, 371 },
372 { 372 {
373 title: 'Library', 373 title: 'Library',
374 group: 'Library', 374 group: 'Library',
375 component: 'Library', 375 component: 'Library',
376 icon: '/static/icon/library.png', 376 icon: '/static/icon/library.png',
377 items: [ 377 items: [
378 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 378 { name: 'Books', title: 'Books', component: 'Books', action: '', },
379 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } 379 { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', }
380 380
381 ] 381 ]
382 }, 382 },
383 { 383 {
384 title: 'Meet', 384 title: 'Meet',
385 name: 'Meet', 385 name: 'Meet',
386 icon: '/static/icon/parents.png', 386 icon: '/static/icon/parents.png',
387 } 387 }
388 ]; 388 ];
389 389
390 const parentMenu = [{ 390 const parentMenu = [{
391 title: 'Dashboard', 391 title: 'Dashboard',
392 name: 'Dashboard', 392 name: 'Dashboard',
393 icon: '/static/icon/dashboard.png', 393 icon: '/static/icon/dashboard.png',
394 }]; 394 }];
395 // reorder menu 395 // reorder menu
396 // Menu.forEach((item) => { 396 // Menu.forEach((item) => {
397 // if (item.items) { 397 // if (item.items) {
398 // item.items.sort((x, y) => { 398 // item.items.sort((x, y) => {
399 // let textA = x.title.toUpperCase(); 399 // let textA = x.title.toUpperCase();
400 // let textB = y.title.toUpperCase(); 400 // let textB = y.title.toUpperCase();
401 // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; 401 // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
402 // }); 402 // });
403 // } 403 // }
404 // }); 404 // });
405 405
406 export default { adminMenu, schoolMenu, teacherMenu, libraryMenu, accountMenu, parentMenu }; 406 export default { adminMenu, schoolMenu, teacherMenu, libraryMenu, accountMenu, parentMenu };
src/pages/Course/courseDiscussion.vue
File was created 1 <template>
2 <v-container fluid class="body-color">
3 <v-dialog v-model="editDialog" max-width="600px" scrollable>
4 <v-card flat class="card-style pa-2" dark>
5 <v-layout>
6 <v-flex xs12>
7 <label class="title text-xs-center">Edit Course Discussion</label>
8 <v-icon size="24" class="right" @click="editDialog = false">cancel</v-icon>
9 </v-flex>
10 </v-layout>
11 <v-card-text>
12 <v-form ref="form">
13 <v-container fluid>
14 <v-layout>
15 <v-flex xs12 class="text-xs-center text-sm-center text-md-center text-lg-center">
16 <v-avatar size="100px" v-if="!editedItem.attachementUrl && !editImageUrl">
17 <img src="/static/icon/user.png" />
18 </v-avatar>
19 <img
20 :src="editedItem.attachementUrl"
21 v-else-if="editedItem.attachementUrl && !editImageUrl"
22 height="150"
23 style="border-radius:50%; width:150px"
24 />
25 <img
26 v-if="editImageUrl"
27 :src="editImageUrl"
28 style="border-radius:50%; width:150px;height:150px"
29 />
30 <input
31 type="file"
32 style="display: none"
33 ref="editDataImage"
34 accept="image/*"
35 @change="onEditFilePicked"
36 />
37 </v-flex>
38 </v-layout>
39 <v-layout wrap>
40 <v-flex xs12 sm12>
41 <v-layout>
42 <v-flex xs4 sm5 class="pt-4 subheading">
43 <label class="right hidden-xs-only hidden-sm-only">Select Class:</label>
44 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label>
45 </v-flex>
46 <v-flex xs8 sm7 class="ml-3">
47 <v-select
48 :items="addclass"
49 v-model="editedItem.classId"
50 item-text="classNum"
51 item-value="_id"
52 name="Select Class"
53 required
54 @change="editGetCourses(editedItem.classId)"
55 ></v-select>
56 </v-flex>
57 </v-layout>
58 <v-layout>
59 <v-flex xs12 sm12>
60 <v-layout>
61 <v-flex xs4 sm5 class="pt-4 subheading">
62 <label class="right">Select Course:</label>
63 </v-flex>
64 <v-flex xs8 sm7 class="ml-3">
65 <v-select
66 :items="editCourseData"
67 label="Select Course"
68 v-model="editedItem.courseId"
69 item-text="courseName"
70 item-value="_id"
71 required
72 class="ml-2"
73 ></v-select>
74 </v-flex>
75 </v-layout>
76 </v-flex>
77 </v-layout>
78 <v-layout>
79 <v-flex xs4 sm5 class="pt-4 subheading">
80 <label class="right">Subject:</label>
81 </v-flex>
82 <v-flex xs8 sm7 class="ml-3">
83 <v-text-field v-model="editedItem.subject" type="text" required></v-text-field>
84 </v-flex>
85 </v-layout>
86 <v-layout>
87 <v-flex xs4 sm5 class="pt-4 subheading">
88 <label class="right">Description:</label>
89 </v-flex>
90 <v-flex xs8 sm7 class="ml-3">
91 <v-text-field v-model="editedItem.description" type="text" required></v-text-field>
92 </v-flex>
93 </v-layout>
94 <v-layout>
95 <v-flex xs4 sm5 class="pt-4 subheading">
96 <label class="right hidden-xs-only hidden-sm-only">Upload Image:</label>
97 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Upload:</label>
98 </v-flex>
99 <v-flex xs8 sm7 class="ml-3">
100 <v-text-field
101 @click="pickEditFile"
102 v-model="editImageName"
103 append-icon="attach_file"
104 ></v-text-field>
105 </v-flex>
106 </v-layout>
107 </v-flex>
108 </v-layout>
109 <v-layout>
110 <v-flex xs12 sm12 class="px-0 mx-0">
111 <v-layout class="right">
112 <v-btn @click="save" round dark :loading="editLoading" class="add-button">Save</v-btn>
113 </v-layout>
114 </v-flex>
115 </v-layout>
116 </v-container>
117 </v-form>
118 </v-card-text>
119 </v-card>
120 </v-dialog>
121 <!-- ****** DIsCUSIION TABLE ****** -->
122 <v-toolbar color="transparent" flat>
123 <v-spacer></v-spacer>
124 <v-flex xs12 sm4 md2>
125 <v-select
126 small
127 :items="addclass"
128 label="Select Class"
129 v-model="getSelectedData.classId"
130 item-text="classNum"
131 item-value="_id"
132 name="Select Class"
133 @change="getCourses(getSelectedData.classId)"
134 class="mr-2"
135 required
136 ></v-select>
137 </v-flex>
138 <v-flex xs12 sm4 md2>
139 <v-select
140 :items="courseData"
141 label="Select Course"
142 v-model="getSelectedData.courseId"
143 item-text="courseName"
144 item-value="_id"
145 required
146 class="ml-2"
147 @change="getCourseDiscussionTable(getSelectedData.courseId)"
148 ></v-select>
149 </v-flex>
150 <v-card-title class="body-1" v-show="show">
151 <v-btn icon large flat @click="displaySearch">
152 <v-avatar size="27">
153 <img src="/static/icon/search.png" alt="icon" />
154 </v-avatar>
155 </v-btn>
156 </v-card-title>
157 <v-flex xs8 sm8 md3 lg2 v-show="showSearch">
158 <v-layout>
159 <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field>
160 <v-icon @click="closeSearch" color="error">close</v-icon>
161 </v-layout>
162 </v-flex>
163 </v-toolbar>
164 <v-data-table
165 :headers="headers"
166 :items="courseDiscussionData"
167 :pagination.sync="pagination"
168 :search="search"
169 >
170 <template slot="items" slot-scope="props">
171 <tr class="tr">
172 <td class="text-xs-center td td-row">
173 <v-avatar size="40">
174 <img :src="props.item.attachementUrl" v-if="props.item.attachementUrl" />
175 <img src="/static/icon/user.png" v-else-if="!props.item.attachementUrl" />
176 </v-avatar>
177 </td>
178 <td class="text-xs-center td td-row">
179 <router-link
180 :to="{ name:'Course Discussiones Form',params: { discussionId:props.item._id } }"
181 >{{ props.item.subject }}</router-link>
182 </td>
183 <td class="text-xs-center td td-row">{{ props.item.studentId.name}}</td>
184 <td class="text-xs-center td td-row">-</td>
185 <td class="text-xs-center td td-row">{{ props.item.forumThread.length }}</td>
186 <td class="text-xs-center td td-row">
187 <span>
188 <v-tooltip top>
189 <img
190 slot="activator"
191 style="cursor:pointer; width:20px; height:18px; "
192 class="mr-3"
193 @click="editItem(props.item)"
194 src="/static/icon/edit.png"
195 />
196 <span>Edit</span>
197 </v-tooltip>
198 <v-tooltip top>
199 <img
200 slot="activator"
201 style="cursor:pointer; width:20px; height:20px; "
202 class="mr-3"
203 @click="deleteItem(props.item)"
204 src="/static/icon/delete.png"
205 />
206 <span>Delete</span>
207 </v-tooltip>
208 </span>
209 </td>
210 </tr>
211 </template>
212 <v-alert
213 slot="no-results"
214 :value="true"
215 color="error"
216 icon="warning"
217 >Your search for "{{ search }}" found no results.</v-alert>
218 </v-data-table>
219 <v-snackbar
220 :timeout="timeout"
221 :top="y === 'top'"
222 :right="x === 'right'"
223 :vertical="mode === 'vertical'"
224 v-model="snackbar"
225 color="success"
226 >{{ text }}</v-snackbar>
227 <div class="loader" v-if="showLoader">
228 <v-progress-circular indeterminate color="white"></v-progress-circular>
229 </div>
230 </v-container>
231 </template>
232
233 <script>
234 import http from "@/Services/http.js";
235 import moment from "moment";
236
237 export default {
238 data: () => ({
239 snackbar: false,
240 y: "top",
241 x: "right",
242 mode: "",
243 timeout: 3000,
244 text: "",
245 show: true,
246 showSearch: false,
247 showLoader: false,
248 loading: false,
249 date: null,
250 search: "",
251 addclass: [],
252 pagination: {
253 rowsPerPage: 10
254 },
255 headers: [
256 {
257 text: "Image",
258 value: "subjattachementUrlect",
259 sortable: false,
260 align: "center"
261 },
262 {
263 text: "Discussion",
264 value: "subject",
265 sortable: false,
266 align: "center"
267 },
268 { text: "Started", value: "studentId", sortable: false, align: "center" },
269 {
270 text: "Last Post",
271 value: "forumThread",
272 sortable: false,
273 align: "center"
274 },
275 { text: "replies", value: "email", sortable: false, align: "center" },
276 { text: "Action", value: "", sortable: false, align: "center" }
277 ],
278 token: "",
279 selectStudents: {
280 select: "",
281 selectSection: ""
282 },
283
284 role: "",
285 schoolRole: "",
286 menu: false,
287 valid: true,
288
289 getSelectedData: {},
290 courseDiscussionData: [],
291 courseData: [],
292 editCourseData: [],
293 addSection: [],
294 editedItem: {},
295 editDialog: false,
296 editedIndex: -1,
297 editiImageFile: "",
298 editImageName: "",
299 editImageUrl: "",
300 editLoading: false
301 }),
302 methods: {
303 // save(date) {
304 // this.$refs.menu.save(date);
305 // },
306 pickEditFile() {
307 this.$refs.editDataImage.click();
308 },
309 onEditFilePicked(e) {
310 console.log(e);
311 const files = e.target.files;
312 if (files[0] !== undefined) {
313 this.editImageName = files[0].name;
314 console.log("this.editImageName", this.editImageName);
315
316 if (this.editImageName.lastIndexOf(".") <= 0) {
317 return;
318 }
319 const fr = new FileReader();
320 fr.readAsDataURL(files[0]);
321 fr.addEventListener("load", () => {
322 this.editImageUrl = fr.result;
323 this.editiImageFile = files[0]; // this is an image file that can be sent to server...
324 });
325 } else {
326 this.editImageName = "";
327 this.editiImageFile = "";
328 }
329 },
330 getAllClass() {
331 http()
332 .get("/getClassesList", {
333 headers: { Authorization: "Bearer " + this.token }
334 })
335 .then(response => {
336 this.addclass = response.data.data;
337 })
338 .catch(error => {
339 // console.log("err====>", err);
340 // this.$router.replace({ path: "/" });
341 });
342 },
343 getCourses(classId) {
344 this.showLoader = true;
345 http()
346 .get("/getCourseesList", {
347 params: {
348 classId: classId
349 }
350 })
351 .then(response => {
352 this.courseData = response.data.data;
353 this.showLoader = false;
354 })
355 .catch(err => {
356 console.log("err====>", err);
357 this.showLoader = false;
358 });
359 },
360 editGetCourses(classId) {
361 this.showLoader = true;
362 http()
363 .get("/getCourseesList", {
364 params: {
365 classId: classId
366 }
367 })
368 .then(response => {
369 this.editCourseData = response.data.data;
370 this.showLoader = false;
371 })
372 .catch(err => {
373 console.log("err====>", err);
374 this.showLoader = false;
375 });
376 },
377 getCourseDiscussionTable(id) {
378 // console.log("id", this.getSelectedData.courseId);
379 this.showLoader = true;
380 http()
381 .get("/getCourseDiscussionesList", {
382 params: {
383 classId: this.getSelectedData.classId,
384 courseId: id
385 }
386 })
387 .then(response => {
388 // console.log("response", response.data.data);
389 this.courseDiscussionData = response.data.data;
390 this.showLoader = false;
391 })
392 .catch(error => {
393 console.log("err====>", error);
394 this.showLoader = false;
395 });
396 },
397 editItem(item) {
398 this.editedIndex = this.courseDiscussionData.indexOf(item);
399 this.editedItem = Object.assign({}, item);
400 this.editDialog = true;
401 },
402 save() {
403 console.log("this.editedItem", this.editedItem);
404 let editCourseDiscuss = {
405 courseDiscussionId: this.editedItem._id,
406 courseId: this.editedItem.courseId,
407 studentId: this.editedItem.studentId._id,
408 subject: this.editedItem.subject,
409 description: this.editedItem.description
410 };
411 if (this.editedItem.classId._id) {
412 editCourseDiscuss.classId = this.editedItem.classId._id;
413 }
414 if (!this.editedItem.classId._id) {
415 editCourseDiscuss.classId = this.editedItem.classId;
416 }
417 if (this.editImageUrl) {
418 var str = this.editImageUrl;
419 const [baseUrl, editImageUrl] = str.split(/,/);
420 editCourse.upload = editImageUrl;
421 }
422 this.editLoading = true;
423 http()
424 .put("/updateCourseDiscussion", editCourseDiscuss)
425 .then(response => {
426 this.snackbar = true;
427 this.text = response.data.message;
428 this.color = "green";
429 this.imageUrl = "";
430 this.getCourseDiscussionTable();
431 this.editDialog = false;
432 this.editLoading = false;
433 })
434 .catch(error => {
435 this.editLoading = false;
436 this.snackbar = true;
437 this.text = error.response.data.statusText;
438 this.color = "error";
439 });
440 },
441 deleteItem(item) {
442 let deleteCourseDiscussion = {
443 courseDiscussionId: item._id
444 };
445 http()
446 .delete(
447 "/deleteCourseDiscussion",
448 confirm("Are you sure you want to delete this?") && {
449 params: deleteCourseDiscussion
450 }
451 )
452 .then(response => {
453 this.snackbar = true;
454 this.text = response.data.message;
455 this.color = "green";
456 this.getCourseDiscussionTable();
457 })
458 .catch(error => {
459 this.snackbar = true;
460 this.text = error.response.data.message;
461 this.color = "error";
462 });
463 },
464 displaySearch() {
465 this.show = false;
466 this.showSearch = true;
467 },
468 closeSearch() {
469 this.showSearch = false;
470 this.show = true;
471 this.search = "";
472 }
473 },
474 mounted() {
475 // this.getStudentList();
476 this.token = this.$store.state.token;
477 this.role = this.$store.state.role;
478 this.getAllClass();
479 }
480 };
481 </script>
src/pages/Course/discussion.vue
File was created 1 <template>
2 <v-container fluid class="body-color">
3 <!-- ******COURSE DISCUSIION COMMENT ****** -->
4 <v-layout>
5 <v-flex xs12 v-for="(courseDiscussionData,i) in courseDiscussionData" :key="i">
6 <v-card class="elevation-0 grey lighten-3 pa-2" flat>
7 <v-list two-line subheader>
8 <v-list-tile>
9 <v-list-tile-avatar>
10 <v-avatar size="46">
11 <img
12 :src="courseDiscussionData.attachementUrl"
13 v-if="courseDiscussionData.attachementUrl"
14 />
15 <img src="/static/icon/user.png" v-else-if="!courseDiscussionData.attachementUrl" />
16 </v-avatar>
17 </v-list-tile-avatar>
18 <v-list-tile-content>
19 <v-list-tile-title>{{ courseDiscussionData.subject }}</v-list-tile-title>
20 <v-list-tile-sub-title>
21 By
22 <span class="info--text">{{ courseDiscussionData.studentId.name }}</span>
23 - {{dates(courseDiscussionData.created ) }}
24 </v-list-tile-sub-title>
25 </v-list-tile-content>
26 <v-list-tile-action>
27 <div>
28 <v-btn flat round dark class="reply-btn" @click="showReplyBox = true">Reply</v-btn>
29 </div>
30 </v-list-tile-action>
31 </v-list-tile>
32 </v-list>
33 </v-card>
34 <v-flex
35 xs12
36 class="mt-4 pl-5 mx-auto"
37 v-for="(replyThread,i) in courseDiscussionData.forumThread"
38 :key="i"
39 >
40 <v-card class="elevation-0 grey lighten-3" flat>
41 <v-list two-line subheader class="grey lighten-3 pa-1">
42 <v-list-tile>
43 <v-list-tile-avatar>
44 <v-avatar size="46">
45 <img
46 :src="courseDiscussionData.attachementUrl"
47 v-if="courseDiscussionData.attachementUrl"
48 />
49 <img
50 src="/static/icon/user.png"
51 v-else-if="!courseDiscussionData.attachementUrl"
52 />
53 </v-avatar>
54 </v-list-tile-avatar>
55 <v-list-tile-content>
56 <v-list-tile-title>Re: {{ courseDiscussionData.subject }}</v-list-tile-title>
57 <v-list-tile-sub-title>
58 By
59 <span class="info--text">{{ replyThread.teacherId.name }}</span>
60 - {{dates(replyThread.created ) }}
61 </v-list-tile-sub-title>
62 </v-list-tile-content>
63 </v-list-tile>
64 </v-list>
65 <v-list class="pa-2 reply-desc">
66 <v-list-tile-content>
67 <v-list-tile-title
68 v-show="replyThread.showDescriptionReplyThread"
69 >{{ replyThread.description }}</v-list-tile-title>
70 <v-flex xs12 sm12 md4 v-show="replyThread.showUpdateReplyThread == true">
71 <v-text-field v-model="replyThread.description"></v-text-field>
72 <v-btn
73 flat
74 round
75 dark
76 class="reply-btn right"
77 @click="updateRelpyThreadDiscussion(replyThread)"
78 >Save</v-btn>
79 </v-flex>
80 </v-list-tile-content>
81 </v-list>
82 <v-list class="grey lighten-4 pa-0">
83 <v-list-tile-action>
84 <v-spacer></v-spacer>
85 <div>
86 <v-btn
87 flat
88 round
89 dark
90 class="reply-btn"
91 @click="deleteRelpyThreadDiscussion(replyThread._id)"
92 >Delete</v-btn>
93 <v-btn
94 flat
95 round
96 dark
97 class="reply-btn mr-4"
98 @click="showUpdateReplyThreadDiscussion(replyThread)"
99 >Edit</v-btn>
100 </div>
101 </v-list-tile-action>
102 </v-list>
103 </v-card>
104 </v-flex>
105 <v-flex xs12 class="mt-4" v-show="showReplyBox">
106 <v-textarea
107 name="input-7-1"
108 solo
109 label="Label Text"
110 multi-line
111 v-model="replyDescription"
112 ></v-textarea>
113 <v-btn round dark class="open-dialog-button" flat @click="showReplyBox = false">Cancel</v-btn>
114 <v-btn
115 round
116 dark
117 :loading="loading"
118 class="reply-btn"
119 @click="replyThreadDiscussion()"
120 >Submit</v-btn>
121 </v-flex>
122 </v-flex>
123 </v-layout>
124 <v-snackbar
125 :timeout="timeout"
126 :top="y === 'top'"
127 :right="x === 'right'"
128 :vertical="mode === 'vertical'"
129 v-model="snackbar"
130 color="success"
131 >{{ text }}</v-snackbar>
132 <div class="loader" v-if="showLoader">
133 <v-progress-circular indeterminate color="white"></v-progress-circular>
134 </div>
135 </v-container>
136 </template>
137
138 <script>
139 import http from "@/Services/http.js";
140 import moment from "moment";
141
142 export default {
143 data: () => ({
144 snackbar: false,
145 y: "top",
146 x: "right",
147 mode: "",
148 timeout: 3000,
149 text: "",
150 showLoader: false,
151 loading: false,
152 date: null,
153 token: "",
154 role: "",
155 schoolRole: "",
156 menu: false,
157 courseDiscussionData: {},
158 showReplyBox: false,
159 replyDescription: "",
160 loginId: "",
161 editedIndex: -1
162 }),
163 methods: {
164 dates: function(date) {
165 return moment(date).format("MMMM DD, YYYY hh:mm A");
166 },
167 getDiscussionesThread() {
168 // console.log("id", this.getSelectedData.courseId);
169 this.showLoader = true;
170 http()
171 .get("/getParticularCourseDiscussion", {
172 params: {
173 courseDiscussionId: this.$route.params.discussionId
174 }
175 })
176 .then(response => {
177 // console.log("response", response.data.data);
178 this.courseDiscussionData = response.data.data;
179 for (let i = 0; i < this.courseDiscussionData.length; i++) {
180 for (
181 let j = 0;
182 j < this.courseDiscussionData[i].forumThread.length;
183 j++
184 ) {
185 this.courseDiscussionData[i].forumThread[
186 j
187 ].showUpdateReplyThread = false;
188 this.courseDiscussionData[i].forumThread[
189 j
190 ].showDescriptionReplyThread = true;
191 }
192 }
193 this.showLoader = false;
194 this.showReplyBox = false;
195 })
196 .catch(error => {
197 console.log("err====>", error);
198 this.showLoader = false;
199 });
200 },
201 replyThreadDiscussion() {
202 this.showLoader = true;
203 var payloadData = {
204 courseDiscussionId: this.$route.params.discussionId,
205 teacherId: this.loginId,
206 description: this.replyDescription
207 };
208 http()
209 .put("/replyForumThread", payloadData)
210 .then(response => {
211 // console.log("response", response.data.data);
212 this.showLoader = false;
213 this.getDiscussionesThread();
214 })
215 .catch(error => {
216 this.showLoader = false;
217 });
218 },
219 showUpdateReplyThreadDiscussion(item) {
220 this.editedIndex = this.courseDiscussionData.indexOf(item);
221 var editedItem = Object.assign({}, item);
222 var arrayOfcourseDiscussionData = [];
223 for (let i = 0; i < this.courseDiscussionData.length; i++) {
224 for (
225 let j = 0;
226 j < this.courseDiscussionData[i].forumThread.length;
227 j++
228 ) {
229 if (
230 editedItem._id == this.courseDiscussionData[i].forumThread[j]._id
231 ) {
232 this.courseDiscussionData[i].forumThread[
233 j
234 ].showUpdateReplyThread = true;
235 this.courseDiscussionData[i].forumThread[
236 j
237 ].showDescriptionReplyThread = false;
238 }
239 }
240 arrayOfcourseDiscussionData.push(this.courseDiscussionData[i]);
241 }
242 this.courseDiscussionData = arrayOfcourseDiscussionData;
243 },
244 updateRelpyThreadDiscussion(replyThread) {
245 this.showLoader = true;
246 var payloadData = {
247 forumThreadId: replyThread._id,
248 courseDiscussionId: this.$route.params.discussionId,
249 teacherId: this.loginId,
250 description: replyThread.description
251 };
252 http()
253 .put("/updateForumThread", payloadData)
254 .then(response => {
255 this.showLoader = false;
256 this.getDiscussionesThread();
257 })
258 .catch(error => {
259 this.showLoader = false;
260 });
261 },
262 deleteRelpyThreadDiscussion(id) {
263 this.showLoader = true;
264 var payloadData = {
265 forumThreadId: id,
266 courseDiscussionId: this.$route.params.discussionId
267 };
268 http()
269 .put(
270 "/deleteForumThread",
271 confirm("Are you sure you want to delete this?") && payloadData
272 )
273 .then(response => {
274 this.showLoader = false;
275 this.getDiscussionesThread();
276 })
277 .catch(error => {
278 this.showLoader = false;
279 });
280 }
281 },
282 mounted() {
283 // this.getStudentList();
284 this.token = this.$store.state.token;
285 this.role = this.$store.state.role;
286 this.loginId = this.$store.state.id;
287 this.getDiscussionesThread();
288 }
289 };
290 </script>
291
292 <style>
293 .reply-desc {
294 border: 1px solid #f2f2f2;
295 }
296 .open-dialog-button {
297 background: #827bfa !important;
298 border-color: #827bfa !important;
299 text-transform: none !important;
300 }
301
302 .reply-btn {
303 background: #feb83c !important;
304 border-color: #feb83c !important;
305 text-transform: none !important;
306 -webkit-box-shadow: none !important;
307 box-shadow: none !important;
308 }
309 </style>
src/pages/Course/enrollStudents.vue
1 <template> 1 <template>
2 <v-container fluid class="body-color"> 2 <v-container fluid class="body-color">
3 <!-- ****** STUDENTS TABLE ****** --> 3 <!-- ****** STUDENTS TABLE ****** -->
4 <v-toolbar color="transparent" flat> 4 <v-toolbar color="transparent" flat>
5 <v-spacer></v-spacer> 5 <v-spacer></v-spacer>
6 <v-flex xs12 sm4 md2> 6 <v-flex xs12 sm4 md2>
7 <v-select 7 <v-select
8 small 8 small
9 :items="addclass" 9 :items="addclass"
10 label="Select Class" 10 label="Select Class"
11 v-model="getReport.classId" 11 v-model="getReport.classId"
12 item-text="classNum" 12 item-text="classNum"
13 item-value="_id" 13 item-value="_id"
14 name="Select Class" 14 name="Select Class"
15 @change="getCourses(getReport.classId)" 15 @change="getCourses(getReport.classId)"
16 class="mr-2" 16 class="mr-2"
17 required 17 required
18 ></v-select> 18 ></v-select>
19 </v-flex> 19 </v-flex>
20 <v-flex xs12 sm4 md2> 20 <v-flex xs12 sm4 md2>
21 <v-select 21 <v-select
22 :items="courseData" 22 :items="courseData"
23 label="Select Course" 23 label="Select Course"
24 v-model="getReport.courseId" 24 v-model="getReport.courseId"
25 item-text="courseName" 25 item-text="courseName"
26 item-value="_id" 26 item-value="_id"
27 required 27 required
28 class="ml-2" 28 class="ml-2"
29 @change="getStudentTable(getReport.courseId)" 29 @change="getStudentTable(getReport.courseId)"
30 ></v-select> 30 ></v-select>
31 </v-flex> 31 </v-flex>
32 <v-card-title class="body-1" v-show="show"> 32 <v-card-title class="body-1" v-show="show">
33 <v-btn icon large flat @click="displaySearch"> 33 <v-btn icon large flat @click="displaySearch">
34 <v-avatar size="27"> 34 <v-avatar size="27">
35 <img src="/static/icon/search.png" alt="icon" /> 35 <img src="/static/icon/search.png" alt="icon" />
36 </v-avatar> 36 </v-avatar>
37 </v-btn> 37 </v-btn>
38 </v-card-title> 38 </v-card-title>
39 <v-flex xs8 sm8 md3 lg2 v-show="showSearch"> 39 <v-flex xs8 sm8 md3 lg2 v-show="showSearch">
40 <v-layout> 40 <v-layout>
41 <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field> 41 <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field>
42 <v-icon @click="closeSearch" color="error">close</v-icon> 42 <v-icon @click="closeSearch" color="error">close</v-icon>
43 </v-layout> 43 </v-layout>
44 </v-flex> 44 </v-flex>
45 </v-toolbar> 45 </v-toolbar>
46 <v-data-table 46 <v-data-table
47 :headers="headers" 47 :headers="headers"
48 :items="studentsData" 48 :items="studentsData"
49 :pagination.sync="pagination" 49 :pagination.sync="pagination"
50 :search="search" 50 :search="search"
51 select-all 51 select-all
52 v-model="selected" 52 v-model="selected"
53 item-key="name" 53 item-key="name"
54 > 54 >
55 <template slot="items" slot-scope="props"> 55 <template slot="items" slot-scope="props">
56 <tr class="tr" :active="props.selected" @click="props.selected = !props.selected"> 56 <tr class="tr" :active="props.selected" @click="props.selected = !props.selected">
57 <td class="text-xs-center td td-row"> 57 <td class="text-xs-center td td-row">
58 <v-checkbox 58 <v-checkbox
59 v-model="props.item.enroll" 59 v-model="props.item.enroll"
60 @change="selectParticularStudent(props.item)" 60 @change="selectParticularStudent(props.item)"
61 primary 61 primary
62 hide-details 62 hide-details
63 ></v-checkbox> 63 ></v-checkbox>
64 </td> 64 </td>
65 <td class="text-xs-center td td-row"> 65 <td class="text-xs-center td td-row">
66 <v-avatar size="40"> 66 <v-avatar size="40">
67 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> 67 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
68 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> 68 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
69 </v-avatar> 69 </v-avatar>
70 </td> 70 </td>
71 <td class="text-xs-center td td-row">{{ props.item.name}}</td> 71 <td class="text-xs-center td td-row">{{ props.item.name}}</td>
72 <td class="text-xs-center td td-row">{{ props.item.fatherCellNo}}</td> 72 <td class="text-xs-center td td-row">{{ props.item.fatherCellNo}}</td>
73 <td class="text-xs-center td td-row">{{ props.item.email }}</td> 73 <td class="text-xs-center td td-row">{{ props.item.email }}</td>
74 </tr> 74 </tr>
75 </template> 75 </template>
76 <template slot="headers" slot-scope="props"> 76 <template slot="headers" slot-scope="props">
77 <tr> 77 <tr>
78 <th> 78 <th>
79 <v-checkbox 79 <v-checkbox
80 :input-value="props.all" 80 :input-value="props.all"
81 :indeterminate="props.indeterminate" 81 :indeterminate="props.indeterminate"
82 primary 82 primary
83 hide-details 83 hide-details
84 @click.native="toggleAll" 84 @click.native="toggleAll"
85 ></v-checkbox> 85 ></v-checkbox>
86 </th> 86 </th>
87 <th 87 <th
88 v-for="header in props.headers" 88 v-for="header in props.headers"
89 :key="header.text" 89 :key="header.text"
90 :class="['column sortable', pagination.descending ? 'desc' : 'asc', header.value === pagination.sortBy ? 'active' : '']" 90 :class="['column sortable', pagination.descending ? 'desc' : 'asc', header.value === pagination.sortBy ? 'active' : '']"
91 @click="changeSort(header.value)" 91 @click="changeSort(header.value)"
92 > 92 >
93 <v-icon small>arrow_upward</v-icon> 93 <v-icon small>arrow_upward</v-icon>
94 {{ header.text }} 94 {{ header.text }}
95 </th> 95 </th>
96 </tr> 96 </tr>
97 </template> 97 </template>
98 <v-alert 98 <v-alert
99 slot="no-results" 99 slot="no-results"
100 :value="true" 100 :value="true"
101 color="error" 101 color="error"
102 icon="warning" 102 icon="warning"
103 >Your search for "{{ search }}" found no results.</v-alert> 103 >Your search for "{{ search }}" found no results.</v-alert>
104 </v-data-table> 104 </v-data-table>
105 <v-snackbar 105 <v-snackbar
106 :timeout="timeout" 106 :timeout="timeout"
107 :top="y === 'top'" 107 :top="y === 'top'"
108 :right="x === 'right'" 108 :right="x === 'right'"
109 :vertical="mode === 'vertical'" 109 :vertical="mode === 'vertical'"
110 v-model="snackbar" 110 v-model="snackbar"
111 color="success" 111 color="success"
112 >{{ text }}</v-snackbar> 112 >{{ text }}</v-snackbar>
113 <div class="loader" v-if="showLoader"> 113 <div class="loader" v-if="showLoader">
114 <v-progress-circular indeterminate color="white"></v-progress-circular> 114 <v-progress-circular indeterminate color="white"></v-progress-circular>
115 </div> 115 </div>
116 </v-container> 116 </v-container>
117 </template> 117 </template>
118 118
119 <script> 119 <script>
120 import http from "@/Services/http.js"; 120 import http from "@/Services/http.js";
121 import moment from "moment"; 121 import moment from "moment";
122 122
123 export default { 123 export default {
124 data: () => ({ 124 data: () => ({
125 snackbar: false, 125 snackbar: false,
126 y: "top", 126 y: "top",
127 x: "right", 127 x: "right",
128 mode: "", 128 mode: "",
129 timeout: 3000, 129 timeout: 3000,
130 text: "", 130 text: "",
131 show: true, 131 show: true,
132 showSearch: false, 132 showSearch: false,
133 showLoader: false, 133 showLoader: false,
134 loading: false, 134 loading: false,
135 date: null, 135 date: null,
136 search: "", 136 search: "",
137 addclass: [], 137 addclass: [],
138 pagination: { 138 pagination: {
139 rowsPerPage: 10 139 rowsPerPage: 10
140 }, 140 },
141 headers: [ 141 headers: [
142 { 142 {
143 text: "Profile Pic", 143 text: "Profile Pic",
144 value: "profilprofilePicUrlePicUrl", 144 value: "profilprofilePicUrlePicUrl",
145 sortable: false, 145 sortable: false,
146 align: "center" 146 align: "center"
147 }, 147 },
148 { text: "Name", value: "name", sortable: false, align: "center" }, 148 { text: "Name", value: "name", sortable: false, align: "center" },
149 { 149 {
150 text: "Mobile No", 150 text: "Mobile No",
151 value: "fatherCellNo", 151 value: "fatherCellNo",
152 sortable: false, 152 sortable: false,
153 align: "center" 153 align: "center"
154 }, 154 },
155 { text: "Email", value: "email", sortable: false, align: "center" } 155 { text: "Email", value: "email", sortable: false, align: "center" }
156 // { text: "Action", value: "", sortable: false, align: "center" } 156 // { text: "Action", value: "", sortable: false, align: "center" }
157 ], 157 ],
158 token: "", 158 token: "",
159 selectStudents: { 159 selectStudents: {
160 select: "", 160 select: "",
161 selectSection: "" 161 selectSection: ""
162 }, 162 },
163 163
164 role: "", 164 role: "",
165 schoolRole: "", 165 schoolRole: "",
166 menu: false, 166 menu: false,
167 valid: true, 167 valid: true,
168 168
169 getReport: {}, 169 getReport: {},
170 studentsData: [], 170 studentsData: [],
171 courseData: [], 171 courseData: [],
172 addSection: [], 172 addSection: [],
173 selected: [] 173 selected: []
174 }), 174 }),
175 methods: { 175 methods: {
176 save(date) { 176 save(date) {
177 this.$refs.menu.save(date); 177 this.$refs.menu.save(date);
178 }, 178 },
179 getAllClass() { 179 getAllClass() {
180 http() 180 http()
181 .get("/getClassesList", { 181 .get("/getClassesList", {
182 headers: { Authorization: "Bearer " + this.token } 182 headers: { Authorization: "Bearer " + this.token }
183 }) 183 })
184 .then(response => { 184 .then(response => {
185 this.addclass = response.data.data; 185 this.addclass = response.data.data;
186 }) 186 })
187 .catch(error => { 187 .catch(error => {
188 // console.log("err====>", err); 188 // console.log("err====>", err);
189 // this.$router.replace({ path: "/" }); 189 // this.$router.replace({ path: "/" });
190 }); 190 });
191 }, 191 },
192 getCourses(classId) { 192 getCourses(classId) {
193 this.showLoader = true; 193 this.showLoader = true;
194 http() 194 http()
195 .get("/getCourseesList", { 195 .get("/getCourseesList", {
196 params: { 196 params: {
197 classId: classId 197 classId: classId
198 } 198 }
199 }) 199 })
200 .then(response => { 200 .then(response => {
201 this.courseData = response.data.data; 201 this.courseData = response.data.data;
202 this.showLoader = false; 202 this.showLoader = false;
203 }) 203 })
204 .catch(err => { 204 .catch(err => {
205 console.log("err====>", err); 205 console.log("err====>", err);
206 this.showLoader = false; 206 this.showLoader = false;
207 }); 207 });
208 }, 208 },
209 getStudents() { 209 getStudents() {
210 this.showLoader = true; 210 this.showLoader = true;
211 http() 211 http()
212 .get("/getStudentsList", { 212 .get("/getStudentsList", {
213 params: { 213 params: {
214 classId: this.getReport.classId 214 classId: this.getReport.classId
215 } 215 }
216 }) 216 })
217 .then(response => { 217 .then(response => {
218 this.studentsData = response.data.data; 218 this.studentsData = response.data.data;
219 this.showLoader = false; 219 this.showLoader = false;
220 // this.addStudentAttendenceDialog = false; 220 // this.addStudentAttendenceDialog = false;
221 var attendence = ""; 221 var attendence = "";
222 for (let i = 0; i < this.studentsData.length; i++) { 222 for (let i = 0; i < this.studentsData.length; i++) {
223 this.studentsData[i].attendence = true; 223 this.studentsData[i].attendence = true;
224 } 224 }
225 this.getParticularCourse(); 225 this.getParticularCourse();
226 }) 226 })
227 .catch(error => { 227 .catch(error => {
228 console.log("err====>", error); 228 console.log("err====>", error);
229 this.showLoader = false; 229 this.showLoader = false;
230 }); 230 });
231 }, 231 },
232 getStudentTable(id) { 232 getStudentTable(id) {
233 // console.log("id", this.getReport.courseId); 233 // console.log("id", this.getReport.courseId);
234 this.getStudents(); 234 this.getStudents();
235 }, 235 },
236 update() { 236 update() {
237 var studentsAttendence = []; 237 var studentsAttendence = [];
238 for (var j = 0; j < this.studentsData.length; j++) { 238 for (var j = 0; j < this.studentsData.length; j++) {
239 studentsAttendence.push({ 239 studentsAttendence.push({
240 studentId: this.studentsData[j]._id, 240 studentId: this.studentsData[j]._id,
241 isPresent: this.studentsData[j].attendence 241 isPresent: this.studentsData[j].attendence
242 }); 242 });
243 } 243 }
244 if (this.$refs.form.validate()) { 244 if (this.$refs.form.validate()) {
245 let attendanceData = { 245 let attendanceData = {
246 sectionId: this.getReport.sectionId, 246 sectionId: this.getReport.sectionId,
247 date: this.date, 247 date: this.date,
248 students: studentsAttendence 248 students: studentsAttendence
249 }; 249 };
250 http() 250 http()
251 .put("/updateAttendance", attendanceData) 251 .put("/updateAttendance", attendanceData)
252 .then(response => { 252 .then(response => {
253 this.snackbar = true; 253 this.snackbar = true;
254 this.text = response.data.message; 254 this.text = response.data.message;
255 this.addStudentAttendenceDialog = false; 255 this.addStudentAttendenceDialog = false;
256 }) 256 })
257 .catch(error => { 257 .catch(error => {
258 this.snackbar = true; 258 this.snackbar = true;
259 this.text = error.response.data.message; 259 this.text = error.response.data.message;
260 }); 260 });
261 } 261 }
262 }, 262 },
263 toggleAll() { 263 toggleAll() {
264 if (this.selected.length) this.selected = []; 264 if (this.selected.length) this.selected = [];
265 else this.selected = this.studentsData.slice(); 265 else this.selected = this.studentsData.slice();
266 let selectedStudentsArray = []; 266 let selectedStudentsArray = [];
267 for (let i = 0; i < this.selected.length; i++) { 267 for (let i = 0; i < this.selected.length; i++) {
268 selectedStudentsArray.push({ studentId: this.selected[i]._id }); 268 selectedStudentsArray.push({ studentId: this.selected[i]._id });
269 } 269 }
270 // console.log("selectedStudentsArray", selectedStudentsArray); 270 // console.log("selectedStudentsArray", selectedStudentsArray);
271 var payload = { 271 var payload = {
272 courseId: this.getReport.courseId, 272 courseId: this.getReport.courseId,
273 enrollStudents: selectedStudentsArray 273 enrollStudents: selectedStudentsArray
274 }; 274 };
275 http() 275 http()
276 .put("/enrollStudents", payload) 276 .put("/enrollStudents", payload)
277 .then(response => { 277 .then(response => {
278 this.snackbar = true; 278 this.snackbar = true;
279 this.text = response.data.message; 279 this.text = response.data.message;
280 this.getParticularCourse() 280 this.getParticularCourse();
281 }) 281 })
282 .catch(error => { 282 .catch(error => {
283 this.snackbar = true; 283 this.snackbar = true;
284 this.text = error.response.data.message; 284 this.text = error.response.data.message;
285 }); 285 });
286 }, 286 },
287 selectParticularStudent(selected) { 287 selectParticularStudent(selected) {
288 console.log("selected", selected); 288 console.log("selected", selected);
289 let selectedStudentsArray = []; 289 let selectedStudentsArray = [];
290 selectedStudentsArray.push({ studentId: selected._id }); 290 selectedStudentsArray.push({ studentId: selected._id });
291 if ( 291 // console.log("selected.enroll", selected.enroll);
292 selected.enroll === true && 292 if (selected.enroll === true) {
293 selected.enroll === undefined &&
294 selected.enroll === null
295 ) {
296 var payload = { 293 var payload = {
297 courseId: this.getReport.courseId, 294 courseId: this.getReport.courseId,
298 enrollStudents: selectedStudentsArray 295 enrollStudents: selectedStudentsArray
299 }; 296 };
300 http() 297 http()
301 .put("/enrollStudents", payload) 298 .put("/enrollStudents", payload)
302 .then(response => { 299 .then(response => {
303 this.snackbar = true; 300 this.snackbar = true;
304 this.text = response.data.message; 301 this.text = response.data.message;
302 this.getParticularCourse();
305 }) 303 })
306 .catch(error => { 304 .catch(error => {
307 this.snackbar = true; 305 this.snackbar = true;
308 this.text = error.response.data.message; 306 this.text = error.response.data.message;
309 }); 307 });
310 } 308 }
311 if ( 309 if (
312 selected.enroll == false && 310 selected.enroll == false &&
313 selected.enroll != undefined && 311 selected.enroll != undefined &&
314 selected.enroll != null 312 selected.enroll != null
315 ) { 313 ) {
316 var payloadDeleteStudents = { 314 var payloadDeleteStudents = {
317 courseId: this.getReport.courseId, 315 courseId: this.getReport.courseId,
318 enrollStudentsId: selected.enrollId 316 enrollStudentsId: selected.enrollId
319 }; 317 };
320 http() 318 http()
321 .put("/deleteStudents", payloadDeleteStudents) 319 .put("/deleteStudents", payloadDeleteStudents)
322 .then(response => { 320 .then(response => {
323 this.snackbar = true; 321 this.snackbar = true;
324 this.text = response.data.message; 322 this.text = response.data.message;
323 this.getParticularCourse();
325 }) 324 })
326 .catch(error => { 325 .catch(error => {
327 this.snackbar = true; 326 this.snackbar = true;
328 this.text = error.response.data.message; 327 this.text = error.response.data.message;
329 }); 328 });
330 } 329 }
331 }, 330 },
332 getParticularCourse() { 331 getParticularCourse() {
333 var payload = { 332 var payload = {
334 courseId: this.getReport.courseId 333 courseId: this.getReport.courseId
335 }; 334 };
336 http() 335 http()
337 .get("/getParticularCourse", { 336 .get("/getParticularCourse", {
338 params: payload 337 params: payload
339 }) 338 })
340 .then(response => { 339 .then(response => {
341 for (let i = 0; i < response.data.data.enrollStudents.length; i++) { 340 for (let i = 0; i < response.data.data.enrollStudents.length; i++) {
342 var studentId = {}; 341 var studentId = {};
343 studentId = response.data.data.enrollStudents[i]; 342 studentId = response.data.data.enrollStudents[i];
344 for (let j = 0; j < this.studentsData.length; j++) { 343 for (let j = 0; j < this.studentsData.length; j++) {
345 if (studentId.studentId == this.studentsData[j]._id) { 344 if (studentId.studentId == this.studentsData[j]._id) {
346 console.log("studentId._id", studentId._id); 345 // console.log("studentId._id", studentId._id);
347 this.studentsData[j].enroll = true; 346 this.studentsData[j].enroll = true;
348 this.studentsData[j].enrollId = studentId._id; 347 this.studentsData[j].enrollId = studentId._id;
349 } 348 }
350 } 349 }
351 } 350 }
352 this.snackbar = true; 351 this.snackbar = true;
353 this.text = response.data.message; 352 this.text = response.data.message;
354 }) 353 })
355 .catch(error => { 354 .catch(error => {
356 this.snackbar = true; 355 this.snackbar = true;
357 this.text = error.response.data.message; 356 this.text = error.response.data.message;
358 }); 357 });
359 }, 358 },
360 changeSort(column) { 359 changeSort(column) {
361 if (this.pagination.sortBy === column) { 360 if (this.pagination.sortBy === column) {
362 this.pagination.descending = !this.pagination.descending; 361 this.pagination.descending = !this.pagination.descending;
363 } else { 362 } else {
364 this.pagination.sortBy = column; 363 this.pagination.sortBy = column;
365 this.pagination.descending = false; 364 this.pagination.descending = false;
366 } 365 }
367 }, 366 },
368 displaySearch() { 367 displaySearch() {
369 this.show = false; 368 this.show = false;
370 this.showSearch = true; 369 this.showSearch = true;
371 }, 370 },
372 closeSearch() { 371 closeSearch() {
373 this.showSearch = false; 372 this.showSearch = false;
374 this.show = true; 373 this.show = true;
375 this.search = ""; 374 this.search = "";
376 } 375 }
377 }, 376 },
378 mounted() { 377 mounted() {
379 // this.getStudentList(); 378 // this.getStudentList();
380 this.token = this.$store.state.token; 379 this.token = this.$store.state.token;
381 this.role = this.$store.state.role; 380 this.role = this.$store.state.role;
382 this.getAllClass(); 381 this.getAllClass();
383 } 382 }
src/pages/Dashboard/dashboard.vue
1 <template> 1 <template>
2 <v-app id="pages-dasboard"> 2 <v-app id="pages-dasboard">
3 <!-- ****** VIEW PROFIL NOTICE BOARD ****** --> 3 <!-- ****** VIEW PROFIL NOTICE BOARD ****** -->
4 <!-- <v-dialog v-model="dialogNotice" max-width="940px" scrollable> 4 <!-- <v-dialog v-model="dialogNotice" max-width="940px" scrollable>
5 <v-card> 5 <v-card>
6 <v-toolbar color="grey lighten-2" flat> 6 <v-toolbar color="grey lighten-2" flat>
7 <v-spacer></v-spacer> 7 <v-spacer></v-spacer>
8 <v-toolbar-title> 8 <v-toolbar-title>
9 <h3>Notice Board</h3> 9 <h3>Notice Board</h3>
10 </v-toolbar-title> 10 </v-toolbar-title>
11 <v-spacer></v-spacer> 11 <v-spacer></v-spacer>
12 <v-icon @click="closeNotice">close</v-icon> 12 <v-icon @click="closeNotice">close</v-icon>
13 </v-toolbar> 13 </v-toolbar>
14 <v-card-text> 14 <v-card-text>
15 <v-layout> 15 <v-layout>
16 <v-flex align-center justify-center layout text-xs-center class="mt-2"> 16 <v-flex align-center justify-center layout text-xs-center class="mt-2">
17 <img src="/static/icon/user.png" width="70px" v-if="!notice.eventImageUrl" /> 17 <img src="/static/icon/user.png" width="70px" v-if="!notice.eventImageUrl" />
18 <img :src="notice.eventImageUrl" width="280px" v-else-if="notice.eventImageUrl" /> 18 <img :src="notice.eventImageUrl" width="280px" v-else-if="notice.eventImageUrl" />
19 </v-flex> 19 </v-flex>
20 </v-layout> 20 </v-layout>
21 <v-container grid-list-md> 21 <v-container grid-list-md>
22 <v-layout wrap> 22 <v-layout wrap>
23 <v-flex> 23 <v-flex>
24 <v-layout> 24 <v-layout>
25 <v-flex xs5 sm6> 25 <v-flex xs5 sm6>
26 <h5 class="right my-1"> 26 <h5 class="right my-1">
27 <b>Title:</b> 27 <b>Title:</b>
28 </h5> 28 </h5>
29 </v-flex> 29 </v-flex>
30 <v-flex sm6 xs8> 30 <v-flex sm6 xs8>
31 <h5 class="my-1">{{ notice.title }}</h5> 31 <h5 class="my-1">{{ notice.title }}</h5>
32 </v-flex> 32 </v-flex>
33 </v-layout> 33 </v-layout>
34 <v-layout> 34 <v-layout>
35 <v-flex xs5 sm6> 35 <v-flex xs5 sm6>
36 <h5 class="right my-1"> 36 <h5 class="right my-1">
37 <b>Description:</b> 37 <b>Description:</b>
38 </h5> 38 </h5>
39 </v-flex> 39 </v-flex>
40 <v-flex sm6 xs8> 40 <v-flex sm6 xs8>
41 <h5 class="my-1">{{ notice.description }}</h5> 41 <h5 class="my-1">{{ notice.description }}</h5>
42 </v-flex> 42 </v-flex>
43 </v-layout> 43 </v-layout>
44 </v-flex> 44 </v-flex>
45 </v-layout> 45 </v-layout>
46 </v-container> 46 </v-container>
47 </v-card-text> 47 </v-card-text>
48 </v-card> 48 </v-card>
49 </v-dialog>--> 49 </v-dialog>-->
50 <!-- <v-container fluid grid-list-xl> --> 50 <!-- <v-container fluid grid-list-xl> -->
51 51
52 <!-- LOADER --> 52 <!-- LOADER -->
53 <div class="loader" v-if="showLoader"> 53 <div class="loader" v-if="showLoader">
54 <v-progress-circular indeterminate color="white"></v-progress-circular> 54 <v-progress-circular indeterminate color="white"></v-progress-circular>
55 </div> 55 </div>
56 56
57 <!-- SNACKBAR --> 57 <!-- SNACKBAR -->
58 <v-snackbar 58 <v-snackbar
59 :timeout="timeout" 59 :timeout="timeout"
60 :top="y === 'top'" 60 :top="y === 'top'"
61 :right="x === 'right'" 61 :right="x === 'right'"
62 :vertical="mode === 'vertical'" 62 :vertical="mode === 'vertical'"
63 v-model="snackbar" 63 v-model="snackbar"
64 :color="snackbarColor" 64 :color="snackbarColor"
65 > 65 >
66 {{ text }} 66 {{ text }}
67 <v-spacer></v-spacer> 67 <v-spacer></v-spacer>
68 <v-btn flat text @click="snackbar = false">X</v-btn> 68 <v-btn flat text @click="snackbar = false">X</v-btn>
69 </v-snackbar> 69 </v-snackbar>
70 70
71 <v-layout wrap row> 71 <v-layout wrap row>
72 <v-flex xs12 sm12 md9> 72 <v-flex xs12 sm12 md9>
73 <v-container fluid grid-list-xl> 73 <v-container fluid grid-list-xl>
74 <!-- ***** Total Students ***** --> 74 <!-- ***** Total Students ***** -->
75 <!-- <v-flex xs12 sm12 md12> 75 <!-- <v-flex xs12 sm12 md12>
76 <v-layout wrap class> 76 <v-layout wrap class>
77 <v-flex xs12 sm12 md3> 77 <v-flex xs12 sm12 md3>
78 <router-link :to="{ name:'Students' }"> 78 <router-link :to="{ name:'Students' }">
79 <v-card class="card pink-bgcolor"> 79 <v-card class="card pink-bgcolor">
80 <v-card-title primary-title class="titleCard white--text py-3">Students</v-card-title> 80 <v-card-title primary-title class="titleCard white--text py-3">Students</v-card-title>
81 <img src="/static/icon/student.png" class="ml-2" width="40" alt="icons" /> 81 <img src="/static/icon/student.png" class="ml-2" width="40" alt="icons" />
82 <v-card-title class="headline py-1 white--text">{{ students.length }}</v-card-title> 82 <v-card-title class="headline py-1 white--text">{{ students.length }}</v-card-title>
83 </v-card> 83 </v-card>
84 </router-link> 84 </router-link>
85 </v-flex>--> 85 </v-flex>-->
86 <!-- ***** Total Teachers***** --> 86 <!-- ***** Total Teachers***** -->
87 <!-- <v-flex xs12 sm12 md3> 87 <!-- <v-flex xs12 sm12 md3>
88 <router-link :to="{ name:'Teachers' }"> 88 <router-link :to="{ name:'Teachers' }">
89 <v-card flat class="card elevation-2 firozi-bgcolor"> 89 <v-card flat class="card elevation-2 firozi-bgcolor">
90 <v-card-title primary-title class="titleCard white--text py-3">Teachers</v-card-title> 90 <v-card-title primary-title class="titleCard white--text py-3">Teachers</v-card-title>
91 <img src="/static/icon/teacher.png" class="ml-2" width="40" alt="icons" /> 91 <img src="/static/icon/teacher.png" class="ml-2" width="40" alt="icons" />
92 92
93 <v-card-title class="headline py-1 white--text">{{ teachers.length }}</v-card-title> 93 <v-card-title class="headline py-1 white--text">{{ teachers.length }}</v-card-title>
94 </v-card> 94 </v-card>
95 </router-link> 95 </router-link>
96 </v-flex>--> 96 </v-flex>-->
97 <!-- ***** Total Parents ***** --> 97 <!-- ***** Total Parents ***** -->
98 <!-- <v-flex xs12 sm12 md3> 98 <!-- <v-flex xs12 sm12 md3>
99 <router-link :to="{ name:'Parents' }"> 99 <router-link :to="{ name:'Parents' }">
100 <v-card flat class="card yellow darken-3"> 100 <v-card flat class="card yellow darken-3">
101 <v-card-title primary-title class="titleCard white--text py-3">Parents</v-card-title> 101 <v-card-title primary-title class="titleCard white--text py-3">Parents</v-card-title>
102 <img src="/static/icon/parents.png" class="ml-3" width="40px" alt="icons" /> 102 <img src="/static/icon/parents.png" class="ml-3" width="40px" alt="icons" />
103 <v-card-title class="headline py-1 white--text">{{ parents.length }}</v-card-title> 103 <v-card-title class="headline py-1 white--text">{{ parents.length }}</v-card-title>
104 </v-card> 104 </v-card>
105 </router-link> 105 </router-link>
106 </v-flex>--> 106 </v-flex>-->
107 <!-- ***** Total Class***** --> 107 <!-- ***** Total Class***** -->
108 <!-- <v-flex xs12 sm12 md3> 108 <!-- <v-flex xs12 sm12 md3>
109 <router-link :to="{ name:'Class' }"> 109 <router-link :to="{ name:'Class' }">
110 <v-card flat class="card darkBlue-bgcolor"> 110 <v-card flat class="card darkBlue-bgcolor">
111 <v-card-title primary-title class="titleCard white--text py-3">Class</v-card-title> 111 <v-card-title primary-title class="titleCard white--text py-3">Class</v-card-title>
112 <img src="/static/icon/class.png" width="40" alt="icons" class="ml-2" /> 112 <img src="/static/icon/class.png" width="40" alt="icons" class="ml-2" />
113 <v-card-title class="headline py-1 white--text">{{ classes.length }}</v-card-title> 113 <v-card-title class="headline py-1 white--text">{{ classes.length }}</v-card-title>
114 </v-card> 114 </v-card>
115 </router-link> 115 </router-link>
116 </v-flex> 116 </v-flex>
117 </v-layout> 117 </v-layout>
118 </v-flex>--> 118 </v-flex>-->
119 <p 119 <p
120 v-if="studentsData.length === 0 && role == 'PARENT'" 120 v-if="studentsData.length === 0 && role == 'PARENT'"
121 class="text-center title grey lighten-4 error--text" 121 class="text-center title grey lighten-4 error--text"
122 >You have no student registered with school</p> 122 >You have no student registered with school</p>
123 <v-layout v-if="role != 'PARENT'"> 123 <v-layout v-if="role != 'PARENT'">
124 <v-flex xs12> 124 <v-flex xs12>
125 <v-card class="card mt-2 account-Card"> 125 <v-card class="card mt-2 account-Card">
126 <h4> 126 <h4>
127 <b>Account</b> 127 <b>Account</b>
128 </h4> 128 </h4>
129 <v-layout wrap> 129 <v-layout wrap>
130 <v-flex xs12 sm12 md3> 130 <v-flex xs12 sm12 md3>
131 <v-list two-line> 131 <v-list two-line>
132 <template> 132 <template>
133 <v-list-tile> 133 <v-list-tile>
134 <v-list-tile-avatar> 134 <v-list-tile-avatar>
135 <v-icon class="account-circle darkBlue-color">panorama_fish_eye</v-icon> 135 <v-icon class="account-circle darkBlue-color">panorama_fish_eye</v-icon>
136 </v-list-tile-avatar> 136 </v-list-tile-avatar>
137 <v-list-tile-content> 137 <v-list-tile-content>
138 <v-list-tile-title class="mt-2"> 138 <v-list-tile-title class="mt-2">
139 <p class="subheading font-color">Fees</p> 139 <p class="subheading font-color">Fees</p>
140 </v-list-tile-title> 140 </v-list-tile-title>
141 <v-list-tile-title>Rs. {{ feeData.totalFees }}</v-list-tile-title> 141 <v-list-tile-title>Rs. {{ feeData.totalFees }}</v-list-tile-title>
142 </v-list-tile-content> 142 </v-list-tile-content>
143 </v-list-tile> 143 </v-list-tile>
144 <v-list-tile> 144 <v-list-tile>
145 <v-list-tile-avatar> 145 <v-list-tile-avatar>
146 <v-icon class="account-circle yellowDark-color">panorama_fish_eye</v-icon> 146 <v-icon class="account-circle yellowDark-color">panorama_fish_eye</v-icon>
147 </v-list-tile-avatar> 147 </v-list-tile-avatar>
148 <v-list-tile-content> 148 <v-list-tile-content>
149 <v-list-tile-title class="mt-2"> 149 <v-list-tile-title class="mt-2">
150 <p class="subheading font-color">Collection</p> 150 <p class="subheading font-color">Collection</p>
151 </v-list-tile-title> 151 </v-list-tile-title>
152 <v-list-tile-title>Rs. {{ feeData.totalCollection }}</v-list-tile-title> 152 <v-list-tile-title>Rs. {{ feeData.totalCollection }}</v-list-tile-title>
153 </v-list-tile-content> 153 </v-list-tile-content>
154 </v-list-tile> 154 </v-list-tile>
155 <v-list-tile> 155 <v-list-tile>
156 <v-list-tile-avatar> 156 <v-list-tile-avatar>
157 <v-icon class="account-circle pink-color">panorama_fish_eye</v-icon> 157 <v-icon class="account-circle pink-color">panorama_fish_eye</v-icon>
158 </v-list-tile-avatar> 158 </v-list-tile-avatar>
159 <v-list-tile-content> 159 <v-list-tile-content>
160 <v-list-tile-title class="mt-2"> 160 <v-list-tile-title class="mt-2">
161 <p class="subheading font-color">Expences</p> 161 <p class="subheading font-color">Expences</p>
162 </v-list-tile-title> 162 </v-list-tile-title>
163 <v-list-tile-title>Rs. {{ expenseData.sum }}</v-list-tile-title> 163 <v-list-tile-title>Rs. {{ expenseData.sum }}</v-list-tile-title>
164 </v-list-tile-content> 164 </v-list-tile-content>
165 </v-list-tile> 165 </v-list-tile>
166 </template> 166 </template>
167 </v-list> 167 </v-list>
168 </v-flex> 168 </v-flex>
169 <v-flex xs12 sm12 md9 lg9> 169 <v-flex xs12 sm12 md9 lg9>
170 <div id="chart"> 170 <div id="chart">
171 <div v-if="this.series"> 171 <div v-if="this.series">
172 <apexchart 172 <apexchart
173 type="bar" 173 type="bar"
174 height="250" 174 height="250"
175 style="max-width: 800px !important" 175 style="max-width: 800px !important"
176 :options="chartOptions" 176 :options="chartOptions"
177 :series="series" 177 :series="series"
178 v-show="true" 178 v-show="true"
179 ></apexchart> 179 ></apexchart>
180 </div> 180 </div>
181 </div> 181 </div>
182 </v-flex> 182 </v-flex>
183 </v-layout> 183 </v-layout>
184 </v-card> 184 </v-card>
185 </v-flex> 185 </v-flex>
186 </v-layout> 186 </v-layout>
187 <v-card class="mt-2 card" v-if="role != 'PARENT'"> 187 <v-card class="mt-2 card" v-if="role != 'PARENT'">
188 <!-- <full-calendar 188 <!-- <full-calendar
189 ref="calendar" 189 ref="calendar"
190 defaultView="month" 190 defaultView="month"
191 droppable="false" 191 droppable="false"
192 :events="events" 192 :events="events"
193 :config="config" 193 :config="config"
194 ></full-calendar>--> 194 ></full-calendar>-->
195 <h4 class="pa-3"> 195 <h4 class="pa-3">
196 <b>Notice</b> 196 <b>Notice</b>
197 </h4> 197 </h4>
198 198
199 <v-data-table 199 <v-data-table
200 :items="noticeData" 200 :items="noticeData"
201 class="elevation-0" 201 class="elevation-0"
202 flat 202 flat
203 hide-actions 203 hide-actions
204 hide-headers 204 hide-headers
205 style="border-spacing: 0 !important;" 205 style="border-spacing: 0 !important;"
206 > 206 >
207 <template 207 <template
208 slot="items" 208 slot="items"
209 slot-scope="props" 209 slot-scope="props"
210 v-if="props.index < 5" 210 v-if="props.index < 5"
211 style="border-spacing: 0 !important;" 211 style="border-spacing: 0 !important;"
212 > 212 >
213 <tr class="td-notice"> 213 <tr class="td-notice">
214 <td class="grey--text" style="width:18px">{{ props.index + 1}}</td> 214 <td class="grey--text" style="width:18px">{{ props.index + 1}}</td>
215 <td> 215 <td>
216 <span class="grey--text caption">{{ date(props.item.created) }}</span> 216 <span class="grey--text caption">{{ date(props.item.created) }}</span>
217 <br /> 217 <br />
218 <span class="body-2">{{ props.item.title}}</span> 218 <span class="body-2">{{ props.item.title}}</span>
219 </td> 219 </td>
220 <td class="noticeDecritpion grey--text mt-2">{{ props.item.description}}</td> 220 <td class="noticeDecritpion grey--text mt-2">{{ props.item.description}}</td>
221 221
222 <td class="text-xs-center"> 222 <td class="text-xs-center">
223 <span> 223 <span>
224 <v-tooltip top> 224 <v-tooltip top>
225 <img 225 <img
226 slot="activator" 226 slot="activator"
227 style="cursor:pointer; width:25px; height:25px; " 227 style="cursor:pointer; width:25px; height:25px; "
228 @click="profile" 228 @click="profile"
229 src="/static/icon/view.png" 229 src="/static/icon/view.png"
230 /> 230 />
231 <span>View</span> 231 <span>View</span>
232 </v-tooltip> 232 </v-tooltip>
233 </span> 233 </span>
234 </td> 234 </td>
235 </tr> 235 </tr>
236 </template> 236 </template>
237 </v-data-table> 237 </v-data-table>
238 </v-card> 238 </v-card>
239 <!-- COURSES --> 239 <!-- COURSES -->
240 <v-layout v-if="role == 'PARENT'"> 240 <v-layout v-if="role == 'PARENT'">
241 <v-flex xs12> 241 <v-flex xs12>
242 <v-card class="card mt-2 account-Card"> 242 <v-card class="card mt-2 account-Card">
243 <h4> 243 <h4>
244 <b>My Courses</b> 244 <b>My Courses</b>
245 </h4> 245 </h4>
246 <v-layout wrap> 246 <v-layout wrap>
247 <v-flex xs12 sm12> 247 <v-flex xs12 sm12>
248 <v-list two-line> 248 <v-list two-line>
249 <template> 249 <template>
250 <v-list-tile v-for="(course,i) in courseData" :key="i"> 250 <v-list-tile v-for="(course,i) in courseData" :key="i">
251 <v-list-tile-avatar> 251 <v-list-tile-avatar>
252 <v-icon 252 <v-icon
253 class="account-circle darkBlue-color" 253 class="account-circle darkBlue-color"
254 style="cursor: pointer;" 254 style="cursor: pointer;"
255 >panorama_fish_eye</v-icon> 255 >panorama_fish_eye</v-icon>
256 </v-list-tile-avatar> 256 </v-list-tile-avatar>
257 <v-list-tile-content> 257 <v-list-tile-content>
258 <v-list-tile-title 258 <v-list-tile-title
259 style="cursor: pointer;" 259 style="cursor: pointer;"
260 @click="routeToCourseDetails(course._id)" 260 @click="routeToCourseDetails(course._id)"
261 >{{ course.courseName }}</v-list-tile-title> 261 >{{ course.courseName }}</v-list-tile-title>
262 </v-list-tile-content> 262 </v-list-tile-content>
263 </v-list-tile> 263 </v-list-tile>
264 </template> 264 </template>
265 </v-list> 265 </v-list>
266 </v-flex> 266 </v-flex>
267 </v-layout> 267 </v-layout>
268 </v-card> 268 </v-card>
269 </v-flex> 269 </v-flex>
270 </v-layout> 270 </v-layout>
271 <v-layout v-if="role == 'PARENT'"> 271 <v-layout v-if="role == 'PARENT'">
272 <v-flex xs6> 272 <v-flex xs6>
273 <v-card class="mt-2 card"> 273 <v-card class="mt-2 card">
274 <h4 class="pa-3"> 274 <h4 class="pa-3">
275 <b>Latest Annoucements</b> 275 <b>Latest Annoucements</b>
276 </h4> 276 </h4>
277 277
278 <v-data-table 278 <v-data-table
279 :items="annoucementData" 279 :items="annoucementData"
280 class="elevation-0" 280 class="elevation-0"
281 flat 281 flat
282 hide-actions 282 hide-actions
283 hide-headers 283 hide-headers
284 style="border-spacing: 0 !important;" 284 style="border-spacing: 0 !important;"
285 > 285 >
286 <template 286 <template
287 slot="items" 287 slot="items"
288 slot-scope="props" 288 slot-scope="props"
289 v-if="props.index < 5" 289 v-if="props.index < 5"
290 style="border-spacing: 0 !important;" 290 style="border-spacing: 0 !important;"
291 > 291 >
292 <tr class="td-notice"> 292 <tr class="td-notice">
293 <td class="grey--text" style="width:18px">{{ props.index + 1}}</td> 293 <td class="grey--text" style="width:18px">{{ props.index + 1}}</td>
294 <td> 294 <td>
295 <span class="grey--text caption">{{ date(props.item.created) }}</span> 295 <span class="grey--text caption">{{ date(props.item.created) }}</span>
296 <br /> 296 <br />
297 <span class="body-2">{{ props.item.discussionType}}</span> 297 <span class="body-2">{{ props.item.discussionType}}</span>
298 </td> 298 </td>
299 <td class="text-xs-center"> 299 <td class="text-xs-center">
300 <span> 300 <span>
301 <v-tooltip top> 301 <v-tooltip top>
302 <img 302 <img
303 slot="activator" 303 slot="activator"
304 style="cursor:pointer; width:25px; height:25px; " 304 style="cursor:pointer; width:25px; height:25px; "
305 src="/static/icon/view.png" 305 src="/static/icon/view.png"
306 /> 306 />
307 <span>View</span> 307 <span>View</span>
308 </v-tooltip> 308 </v-tooltip>
309 </span> 309 </span>
310 </td> 310 </td>
311 </tr> 311 </tr>
312 </template> 312 </template>
313 </v-data-table> 313 </v-data-table>
314 </v-card> 314 </v-card>
315 </v-flex> 315 </v-flex>
316 <v-flex xs6> 316 <v-flex xs6>
317 <v-card class="mt-2 card"> 317 <v-card class="mt-2 card">
318 <h4 class="pa-3"> 318 <h4 class="pa-3">
319 <b>Online User</b> 319 <b>Online User</b>
320 </h4> 320 </h4>
321 321
322 <v-data-table 322 <v-data-table
323 :items="onlineUser" 323 :items="onlineUser"
324 class="elevation-0" 324 class="elevation-0"
325 flat 325 flat
326 hide-actions 326 hide-actions
327 hide-headers 327 hide-headers
328 style="border-spacing: 0 !important;" 328 style="border-spacing: 0 !important;"
329 > 329 >
330 <template 330 <template
331 slot="items" 331 slot="items"
332 slot-scope="props" 332 slot-scope="props"
333 v-if="props.index < 5" 333 v-if="props.index < 5"
334 style="border-spacing: 0 !important;" 334 style="border-spacing: 0 !important;"
335 > 335 >
336 <tr class="td-notice"> 336 <tr class="td-notice">
337 <td class="grey--text" style="width:18px">{{ props.index + 1}}</td> 337 <td class="grey--text" style="width:18px">{{ props.index + 1}}</td>
338 <td> 338 <td>
339 <span class="body-2">{{ props.item.user }}</span> 339 <span class="body-2">{{ props.item.user }}</span>
340 </td> 340 </td>
341 <td class="text-xs-center"> 341 <td class="text-xs-center">
342 <span> 342 <span>
343 <v-tooltip top> 343 <v-tooltip top>
344 <img 344 <img
345 slot="activator" 345 slot="activator"
346 style="cursor:pointer; width:25px; height:25px; " 346 style="cursor:pointer; width:25px; height:25px; "
347 src="/static/icon/view.png" 347 src="/static/icon/view.png"
348 /> 348 />
349 <span>View</span> 349 <span>View</span>
350 </v-tooltip> 350 </v-tooltip>
351 </span> 351 </span>
352 </td> 352 </td>
353 </tr> 353 </tr>
354 </template> 354 </template>
355 </v-data-table> 355 </v-data-table>
356 </v-card> 356 </v-card>
357 </v-flex> 357 </v-flex>
358 </v-layout> 358 </v-layout>
359 </v-container> 359 </v-container>
360 </v-flex> 360 </v-flex>
361 <v-spacer></v-spacer> 361 <v-spacer></v-spacer>
362 <!-- SIDE BAR --> 362 <!-- SIDE BAR -->
363 <v-flex xs12 sm12 md3> 363 <v-flex xs12 sm12 md3>
364 <v-card height="100%" class="elevation-0 mt-3 profileDasboard"> 364 <v-card height="100%" class="elevation-0 mt-3 profileDasboard">
365 <v-card-text class="px-2"> 365 <v-card-text class="px-2">
366 <h4 class="text-xs-center py-3"> 366 <h4 class="text-xs-center py-3">
367 <b>Profile</b> 367 <b>Profile</b>
368 </h4> 368 </h4>
369 <v-flex xs12 class="py-3"> 369 <v-flex xs12 class="py-3">
370 <v-layout wrap> 370 <v-layout wrap>
371 <v-flex xs12 sm12 md4> 371 <v-flex xs12 sm12 md4>
372 <img src="/static/icon/user.png" v-if="!userData.schoolLogoUrl" width="80" /> 372 <img src="/static/icon/user.png" v-if="!userData.schoolLogoUrl" width="80" />
373 <img :src="userData.schoolLogoUrl" v-else-if="userData.schoolLogoUrl" width="80" /> 373 <img :src="userData.schoolLogoUrl" v-else-if="userData.schoolLogoUrl" width="80" />
374 </v-flex> 374 </v-flex>
375 <v-flex xs12 sm12 md6> 375 <v-flex xs12 sm12 md6>
376 <p class="mb-0 body-1"> 376 <p class="mb-0 body-1">
377 <i>{{ userData.name }}</i> 377 <i>{{ userData.name }}</i>
378 </p> 378 </p>
379 <p class="mb-0 caption grey--text">{{ userData.email }}</p> 379 <p class="mb-0 caption grey--text">{{ userData.email }}</p>
380 <p class="mb-0 caption grey--text">{{ userData.mobile }}</p> 380 <p class="mb-0 caption grey--text">{{ userData.mobile }}</p>
381 <address class="caption grey--text mb-3">{{ userData.address }}</address> 381 <address class="caption grey--text mb-3">{{ userData.address }}</address>
382 </v-flex> 382 </v-flex>
383 </v-layout> 383 </v-layout>
384 </v-flex> 384 </v-flex>
385 <hr /> 385 <hr />
386 <div class="text-xs-center py-3 subheading font-weight-bold">Calender</div> 386 <div class="text-xs-center py-3 subheading font-weight-bold">Calender</div>
387 <vue-event-calendar :events="activityEvents"></vue-event-calendar> 387 <vue-event-calendar :events="activityEvents"></vue-event-calendar>
388 <!-- LATEST ACTIVITY --> 388 <!-- LATEST ACTIVITY -->
389 <v-card class="my-3 elevation-0"> 389 <v-card class="my-3 elevation-0" v-if="role == 'PARENT'">
390 <v-card-text> 390 <v-card-text>
391 <v-card-title class="justify-center subheading font-weight-bold">Latest Activity</v-card-title> 391 <v-card-title class="justify-center subheading font-weight-bold">Latest Activity</v-card-title>
392 <div v-for="(activity,index) in activityList" :key="index" class="mt-2"> 392 <div v-for="(activity,index) in activityList" :key="index" class="mt-2">
393 <span 393 <span
394 :style="{ 'background-color': colorsArray[index%colorsArray.length] }" 394 :style="{ 'background-color': colorsArray[index%colorsArray.length] }"
395 style="height: 12px;width: 12px;border-radius: 50%;display: inline-block;vertical-align: top;" 395 style="height: 12px;width: 12px;border-radius: 50%;display: inline-block;vertical-align: top;"
396 ></span> 396 ></span>
397 <div style="display: inline-block;" class="ml-2"> 397 <div style="display: inline-block;" class="ml-2">
398 <div 398 <div
399 class="grey--text lighten-1 caption" 399 class="grey--text lighten-1 caption"
400 >{{moment(activity.meetingEvent.dateOfEvent).format("DD MMMM, YYYY")}}</div> 400 >{{moment(activity.meetingEvent.dateOfEvent).format("DD MMMM, YYYY")}}</div>
401 <div class="body-2">{{activity.meetingEvent.title}}</div> 401 <div class="body-2">{{activity.meetingEvent.title}}</div>
402 </div> 402 </div>
403 </div> 403 </div>
404 </v-card-text> 404 </v-card-text>
405 </v-card> 405 </v-card>
406 </v-card-text> 406 </v-card-text>
407 </v-card> 407 </v-card>
408 </v-flex> 408 </v-flex>
409 </v-layout> 409 </v-layout>
410 410
411 <v-dialog v-model="dialog" max-width="500"> 411 <v-dialog v-model="dialog" max-width="500">
412 <v-card color="grey lighten-4" flat> 412 <v-card color="grey lighten-4" flat>
413 <v-toolbar dark color="fixcolors"> 413 <v-toolbar dark color="fixcolors">
414 <v-spacer></v-spacer> 414 <v-spacer></v-spacer>
415 <v-btn icon @click="dialog= false"> 415 <v-btn icon @click="dialog= false">
416 <v-icon>close</v-icon> 416 <v-icon>close</v-icon>
417 </v-btn> 417 </v-btn>
418 </v-toolbar> 418 </v-toolbar>
419 <v-flex class="py-4"> 419 <v-flex class="py-4">
420 <v-list-tile> 420 <v-list-tile>
421 <v-list-tile-action> 421 <v-list-tile-action>
422 <v-icon>edit</v-icon> 422 <v-icon>edit</v-icon>
423 </v-list-tile-action> 423 </v-list-tile-action>
424 <v-list-tile-content> 424 <v-list-tile-content>
425 <v-list-tile-title>{{ selected.title }}</v-list-tile-title> 425 <v-list-tile-title>{{ selected.title }}</v-list-tile-title>
426 </v-list-tile-content> 426 </v-list-tile-content>
427 </v-list-tile> 427 </v-list-tile>
428 <v-list-tile> 428 <v-list-tile>
429 <v-list-tile-action> 429 <v-list-tile-action>
430 <v-icon>access_time</v-icon> 430 <v-icon>access_time</v-icon>
431 </v-list-tile-action> 431 </v-list-tile-action>
432 <v-list-tile-content> 432 <v-list-tile-content>
433 <v-list-tile-title>{{ date(selected.start)}}</v-list-tile-title> 433 <v-list-tile-title>{{ date(selected.start)}}</v-list-tile-title>
434 </v-list-tile-content> 434 </v-list-tile-content>
435 </v-list-tile> 435 </v-list-tile>
436 </v-flex> 436 </v-flex>
437 </v-card> 437 </v-card>
438 </v-dialog> 438 </v-dialog>
439 </v-app> 439 </v-app>
440 </template> 440 </template>
441 441
442 <script> 442 <script>
443 import http from "@/Services/http.js"; 443 import http from "@/Services/http.js";
444 import moment from "moment"; 444 import moment from "moment";
445 import AllApiCalls from "@/Services/AllApiCalls.js"; 445 import AllApiCalls from "@/Services/AllApiCalls.js";
446 // import { FunctionalCalendar } from "vue-functional-calendar"; 446 // import { FunctionalCalendar } from "vue-functional-calendar";
447 447
448 export default { 448 export default {
449 components: { 449 components: {
450 // FunctionalCalendar 450 // FunctionalCalendar
451 }, 451 },
452 mixins: [AllApiCalls], 452 mixins: [AllApiCalls],
453 data() { 453 data() {
454 return { 454 return {
455 // data: { 455 // data: {
456 // clieckedToday: false 456 // clieckedToday: false
457 // }, 457 // },
458 // markedDates: ["16/4/2019", "18/4/2019", "20/4/2019", "21/4/2019"], 458 // markedDates: ["16/4/2019", "18/4/2019", "20/4/2019", "21/4/2019"],
459 // calendarData: {}, 459 // calendarData: {},
460 // calendar: {}, 460 // calendar: {},
461 461
462 // CALENDER 462 // CALENDER
463 moment: moment, 463 moment: moment,
464 activityEvents: [], 464 activityEvents: [],
465 onlineUser: [ 465 onlineUser: [
466 { 466 {
467 user: "Student Demo" 467 user: "Student Demo"
468 }, 468 },
469 { 469 {
470 user: "Teacher Demo" 470 user: "Teacher Demo"
471 }, 471 },
472 { 472 {
473 user: "Priyansh Gupta" 473 user: "Priyansh Gupta"
474 }, 474 },
475 { 475 {
476 user: "Gaurav Aggarwal" 476 user: "Gaurav Aggarwal"
477 }, 477 },
478 { 478 {
479 user: "Approve Arorra" 479 user: "Approve Arorra"
480 } 480 }
481 ], 481 ],
482 showLoader: false, 482 showLoader: false,
483 calendarData: {}, 483 calendarData: {},
484 dialog: false, 484 dialog: false,
485 dialogNotice: false, 485 dialogNotice: false,
486 HolidaysList: [], 486 HolidaysList: [],
487 EventsList: [], 487 EventsList: [],
488 events: [], 488 events: [],
489 config: { 489 config: {
490 eventClick: event => { 490 eventClick: event => {
491 this.selected = event; 491 this.selected = event;
492 this.dialog = true; 492 this.dialog = true;
493 } 493 }
494 }, 494 },
495 selected: {}, 495 selected: {},
496 barGraph: [], 496 barGraph: [],
497 // notice: {}, 497 // notice: {},
498 userData: {}, 498 userData: {},
499 dated: new Date(2018, 0, 9), 499 dated: new Date(2018, 0, 9),
500 userList: [], 500 userList: [],
501 sectionList: [], 501 sectionList: [],
502 students: "", 502 students: "",
503 parents: "", 503 parents: "",
504 teachers: "", 504 teachers: "",
505 classes: "", 505 classes: "",
506 noticeData: [], 506 noticeData: [],
507 expenseData: [], 507 expenseData: [],
508 feeData: [], 508 feeData: [],
509 collectionData: [], 509 collectionData: [],
510 courseData: [], 510 courseData: [],
511 studentsData: [], 511 studentsData: [],
512 annoucementData: [], 512 annoucementData: [],
513 role: "", 513 role: "",
514 attrs: [ 514 attrs: [
515 { 515 {
516 key: "today", 516 key: "today",
517 highlight: true, 517 highlight: true,
518 dates: new Date() 518 dates: new Date()
519 } 519 }
520 ], 520 ],
521 drawer: true, 521 drawer: true,
522 items: [ 522 items: [
523 { title: "Home", icon: "dashboard" }, 523 { title: "Home", icon: "dashboard" },
524 { title: "About", icon: "question_answer" } 524 { title: "About", icon: "question_answer" }
525 ], 525 ],
526 right: null, 526 right: null,
527 527
528 series: [ 528 series: [
529 { 529 {
530 name: "Total", 530 name: "Total",
531 data: [] 531 data: []
532 } 532 }
533 ], 533 ],
534 chartOptions: { 534 chartOptions: {
535 chart: { 535 chart: {
536 type: "bar", 536 type: "bar",
537 height: 150, 537 height: 150,
538 stacked: true 538 stacked: true
539 // animations: { 539 // animations: {
540 // enabled: true, 540 // enabled: true,
541 // easing: "easeinout", 541 // easing: "easeinout",
542 // speed: 1200, 542 // speed: 1200,
543 // animateGradually: { 543 // animateGradually: {
544 // enabled: true, 544 // enabled: true,
545 // delay: 450 545 // delay: 450
546 // }, 546 // },
547 // dynamicAnimation: { 547 // dynamicAnimation: {
548 // enabled: true, 548 // enabled: true,
549 // speed: 450 549 // speed: 450
550 // } 550 // }
551 // } 551 // }
552 }, 552 },
553 plotOptions: { 553 plotOptions: {
554 bar: { 554 bar: {
555 horizontal: false, 555 horizontal: false,
556 columnWidth: "25%", 556 columnWidth: "25%",
557 // endingShape: "rounded", 557 // endingShape: "rounded",
558 distributed: true 558 distributed: true
559 } 559 }
560 }, 560 },
561 responsive: [ 561 responsive: [
562 { 562 {
563 breakpoint: 480, 563 breakpoint: 480,
564 options: { 564 options: {
565 legend: { 565 legend: {
566 position: "bottom", 566 position: "bottom",
567 offsetX: -10, 567 offsetX: -10,
568 offsetY: 0 568 offsetY: 0
569 } 569 }
570 } 570 }
571 } 571 }
572 ], 572 ],
573 legend: { 573 legend: {
574 show: false 574 show: false
575 }, 575 },
576 colors: ["#7852cc", "#f9a825", "#ff8a89"], 576 colors: ["#7852cc", "#f9a825", "#ff8a89"],
577 dataLabels: { 577 dataLabels: {
578 enabled: false 578 enabled: false
579 }, 579 },
580 stroke: { 580 stroke: {
581 show: true, 581 show: true,
582 width: 2, 582 width: 2,
583 colors: ["transparent"] 583 colors: ["transparent"]
584 }, 584 },
585 xaxis: { 585 xaxis: {
586 categories: ["Fee", "Collections", "Expences"] 586 categories: ["Fee", "Collections", "Expences"]
587 }, 587 },
588 yaxis: { 588 yaxis: {
589 title: { 589 title: {
590 text: "" 590 text: ""
591 } 591 }
592 }, 592 },
593 fill: { 593 fill: {
594 opacity: 1 594 opacity: 1
595 }, 595 },
596 tooltip: { 596 tooltip: {
597 y: { 597 y: {
598 formatter: function(val, opts) { 598 formatter: function(val, opts) {
599 // console.log("opts",opts.w.config.xaxis.categories) 599 // console.log("opts",opts.w.config.xaxis.categories)
600 return "" + val + " "; 600 return "" + val + " ";
601 } 601 }
602 } 602 }
603 } 603 }
604 }, 604 },
605 605
606 // LATEST ACTIVITY 606 // LATEST ACTIVITY
607 colorsArray: ["#ff8a89", "#71d9ea", "#7852cc", "#F9A825"], 607 colorsArray: ["#ff8a89", "#71d9ea", "#7852cc", "#F9A825"],
608 activityList: [] 608 activityList: []
609 }; 609 };
610 }, 610 },
611 mounted() { 611 mounted() {
612 // = this.$store.state.schoolToken; 612 // = this.$store.state.schoolToken;
613 // console.log("this.$store.state.role", this.token); 613 // console.log("this.$store.state.role", this.token);
614 if (this.$store.state.role === "ADMIN") { 614 if (this.$store.state.role === "ADMIN") {
615 this.token = this.$store.state.token; 615 this.token = this.$store.state.token;
616 } else if (this.$store.state.schoolRole === "SUPERADMIN") { 616 } else if (this.$store.state.schoolRole === "SUPERADMIN") {
617 this.token = this.$store.state.schoolToken; 617 this.token = this.$store.state.schoolToken;
618 } else if (this.$store.state.role === "TEACHER") { 618 } else if (this.$store.state.role === "TEACHER") {
619 this.token = this.$store.state.token; 619 this.token = this.$store.state.token;
620 } else if (this.$store.state.role === "ACCOUNTANT") { 620 } else if (this.$store.state.role === "ACCOUNTANT") {
621 this.token = this.$store.state.token; 621 this.token = this.$store.state.token;
622 } else if (this.$store.state.role === "LIBRARIAN") { 622 } else if (this.$store.state.role === "LIBRARIAN") {
623 this.token = this.$store.state.token; 623 this.token = this.$store.state.token;
624 } else if (this.$store.state.role === "PARENT") { 624 } else if (this.$store.state.role === "PARENT") {
625 this.token = this.$store.state.token; 625 this.token = this.$store.state.token;
626 } 626 }
627 this.role = this.$store.state.role; 627 this.role = this.$store.state.role;
628 // console.log("role", this.$store.state.schoolRole,"tt",this.$store.state.schoolToken); 628 // console.log("role", this.$store.state.schoolRole,"tt",this.$store.state.schoolToken);
629 // this.getData(); 629 // this.getData();
630 this.getStudents(); 630 this.getStudents();
631 this.getTeachers(); 631 this.getTeachers();
632 this.getParents(); 632 this.getParents();
633 this.getClasses(); 633 this.getClasses();
634 this.getNoticeData(); 634 this.getNoticeData();
635 this.getUserData(); 635 this.getUserData();
636 this.getFeesAndCollectionsData(); 636 this.getFeesAndCollectionsData();
637 this.getExpensesData(); 637 this.getExpensesData();
638 this.getparentStudents(); 638 this.getparentStudents();
639 // this.getUsersList(); 639 // this.getUsersList();
640 }, 640 },
641 methods: { 641 methods: {
642 async routeToCourseDetails(courseId) { 642 async routeToCourseDetails(courseId) {
643 /* getParticularCourseDetail- To get courseDetail - defined in GetApis.js*/ 643 /* getParticularCourseDetail- To get courseDetail - defined in GetApis.js*/
644 let response = await this.getParticularCourseDetail(courseId); 644 let response = await this.getParticularCourseDetail(courseId);
645 645
646 /* If the response is null then dont route */ 646 /* If the response is null then dont route */
647 if (response.data.data.length > 0) { 647 if (response.data.data.length > 0) {
648 this.$router.push({ 648 this.$router.push({
649 name: "Course Details", 649 name: "Course Details",
650 query: { courseId: courseId } 650 query: { courseId: courseId }
651 }); 651 });
652 } else { 652 } else {
653 this.seeSnackbar("No Data Available", "warning"); 653 this.seeSnackbar("No Data Available", "warning");
654 } 654 }
655 }, 655 },
656 656
657 closeNotice() { 657 closeNotice() {
658 this.dialogNotice = false; 658 this.dialogNotice = false;
659 }, 659 },
660 profile() { 660 profile() {
661 // this.editedIndex = this.desserts.indexOf(item); 661 // this.editedIndex = this.desserts.indexOf(item);
662 // this.notice = Object.assign({}, item); 662 // this.notice = Object.assign({}, item);
663 // this.dialogNotice = true; 663 // this.dialogNotice = true;
664 this.$router.push({ name: "NoticeBoard" }); 664 this.$router.push({ name: "NoticeBoard" });
665 }, 665 },
666 date: function(date) { 666 date: function(date) {
667 return moment(date).format("MMMM DD, YYYY HH:mm"); 667 return moment(date).format("MMMM DD, YYYY HH:mm");
668 }, 668 },
669 activityDate(date) { 669 activityDate(date) {
670 return moment(date).format("MMMM DD, YYYY"); 670 return moment(date).format("MMMM DD, YYYY");
671 }, 671 },
672 refreshEvents() { 672 refreshEvents() {
673 this.$refs.calendar.$emit("refetch-events"); 673 this.$refs.calendar.$emit("refetch-events");
674 }, 674 },
675 removeEvent() { 675 removeEvent() {
676 this.$refs.calendar.$emit("remove-event", this.selected); 676 this.$refs.calendar.$emit("remove-event", this.selected);
677 this.selected = {}; 677 this.selected = {};
678 }, 678 },
679 eventSelected(event) { 679 eventSelected(event) {
680 this.selected = event; 680 this.selected = event;
681 console.log("this.selected", this.selected); 681 console.log("this.selected", this.selected);
682 }, 682 },
683 // eventDropStart: function(event) { 683 // eventDropStart: function(event) {
684 // event.editable = false; 684 // event.editable = false;
685 // }, 685 // },
686 eventCreated(...test) { 686 eventCreated(...test) {
687 console.log(test); 687 console.log(test);
688 }, 688 },
689 getStudents() { 689 getStudents() {
690 http() 690 http()
691 .get("/getStudentsList", { 691 .get("/getStudentsList", {
692 headers: { 692 headers: {
693 Authorization: "Bearer " + this.token 693 Authorization: "Bearer " + this.token
694 } 694 }
695 }) 695 })
696 .then(response => { 696 .then(response => {
697 this.students = response.data.data; 697 this.students = response.data.data;
698 this.showLoader = false; 698 this.showLoader = false;
699 }) 699 })
700 .catch(error => { 700 .catch(error => {
701 // console.log("err====>", err); 701 // console.log("err====>", err);
702 this.showLoader = false; 702 this.showLoader = false;
703 if (error.response.status === 401) { 703 if (error.response.status === 401) {
704 this.$router.replace({ path: "/" }); 704 this.$router.replace({ path: "/" });
705 this.$store.dispatch("setToken", null); 705 this.$store.dispatch("setToken", null);
706 this.$store.dispatch("Id", null); 706 this.$store.dispatch("Id", null);
707 } 707 }
708 }); 708 });
709 }, 709 },
710 getParents() { 710 getParents() {
711 http() 711 http()
712 .get("/getParentsList", { 712 .get("/getParentsList", {
713 headers: { 713 headers: {
714 Authorization: "Bearer " + this.token 714 Authorization: "Bearer " + this.token
715 } 715 }
716 }) 716 })
717 .then(response => { 717 .then(response => {
718 this.parents = response.data.data; 718 this.parents = response.data.data;
719 this.showLoader = false; 719 this.showLoader = false;
720 }) 720 })
721 .catch(error => { 721 .catch(error => {
722 // console.log("err====>", err); 722 // console.log("err====>", err);
723 this.showLoader = false; 723 this.showLoader = false;
724 }); 724 });
725 }, 725 },
726 getTeachers() { 726 getTeachers() {
727 http() 727 http()
728 .get("/getTeachersList", { 728 .get("/getTeachersList", {
729 headers: { 729 headers: {
730 Authorization: "Bearer " + this.token 730 Authorization: "Bearer " + this.token
731 } 731 }
732 }) 732 })
733 .then(response => { 733 .then(response => {
734 this.teachers = response.data.data; 734 this.teachers = response.data.data;
735 this.showLoader = false; 735 this.showLoader = false;
736 }) 736 })
737 .catch(error => { 737 .catch(error => {
738 // console.log("err====>", err); 738 // console.log("err====>", err);
739 this.showLoader = false; 739 this.showLoader = false;
740 }); 740 });
741 }, 741 },
742 getClasses() { 742 getClasses() {
743 http() 743 http()
744 .get("/getClassesList", { 744 .get("/getClassesList", {
745 headers: { 745 headers: {
746 Authorization: "Bearer " + this.token 746 Authorization: "Bearer " + this.token
747 } 747 }
748 }) 748 })
749 .then(response => { 749 .then(response => {
750 this.classes = response.data.data; 750 this.classes = response.data.data;
751 this.showLoader = false; 751 this.showLoader = false;
752 }) 752 })
753 .catch(error => { 753 .catch(error => {
754 this.showLoader = false; 754 this.showLoader = false;
755 }); 755 });
756 }, 756 },
757 getNoticeData() { 757 getNoticeData() {
758 this.showLoader = true; 758 this.showLoader = true;
759 http() 759 http()
760 .get("/getEventsList", { 760 .get("/getEventsList", {
761 headers: { 761 headers: {
762 Authorization: "Bearer " + this.token 762 Authorization: "Bearer " + this.token
763 } 763 }
764 }) 764 })
765 .then(response => { 765 .then(response => {
766 this.noticeData = response.data.data; 766 this.noticeData = response.data.data;
767 this.showLoader = false; 767 this.showLoader = false;
768 }) 768 })
769 .catch(error => { 769 .catch(error => {
770 this.showLoader = false; 770 this.showLoader = false;
771 }); 771 });
772 }, 772 },
773 getUserData() { 773 getUserData() {
774 // this.showLoader = true; 774 // this.showLoader = true;
775 if (this.$store.state.role === "PARENT") { 775 if (this.$store.state.role === "PARENT") {
776 http() 776 http()
777 .get("/getParticularUserDetail", { 777 .get("/getParticularUserDetail", {
778 headers: { 778 headers: {
779 Authorization: "Bearer " + this.token 779 Authorization: "Bearer " + this.token
780 }, 780 },
781 params: { 781 params: {
782 studentId: localStorage.getItem("parentStudentId") 782 studentId: localStorage.getItem("parentStudentId")
783 } 783 }
784 }) 784 })
785 .then(response => { 785 .then(response => {
786 this.userData = response.data.data; 786 this.userData = response.data.data;
787 this.showLoader = false; 787 this.showLoader = false;
788 console.log("sdsdfsdfsd - ", response); 788 console.log("sdsdfsdfsd - ", response);
789 }) 789 })
790 .catch(error => { 790 .catch(error => {
791 this.showLoader = false; 791 this.showLoader = false;
792 }); 792 });
793 } else { 793 } else {
794 http() 794 http()
795 .get("/getParticularUserDetail", { 795 .get("/getParticularUserDetail", {
796 headers: { 796 headers: {
797 Authorization: "Bearer " + this.token 797 Authorization: "Bearer " + this.token
798 } 798 }
799 }) 799 })
800 .then(response => { 800 .then(response => {
801 this.userData = response.data.data; 801 this.userData = response.data.data;
802 this.showLoader = false; 802 this.showLoader = false;
803 }) 803 })
804 .catch(error => { 804 .catch(error => {
805 this.showLoader = false; 805 this.showLoader = false;
806 }); 806 });
807 } 807 }
808 }, 808 },
809 809
810 getFeesAndCollectionsData() { 810 getFeesAndCollectionsData() {
811 http() 811 http()
812 .get("/getTotalFeesAndCollections", { 812 .get("/getTotalFeesAndCollections", {
813 headers: { 813 headers: {
814 Authorization: "Bearer " + this.token 814 Authorization: "Bearer " + this.token
815 } 815 }
816 }) 816 })
817 .then(response => { 817 .then(response => {
818 this.feeData = response.data.data; 818 this.feeData = response.data.data;
819 // this.collectionData = response.data.data; 819 // this.collectionData = response.data.data;
820 this.series[0].data[0] = this.feeData.totalFees; 820 this.series[0].data[0] = this.feeData.totalFees;
821 this.series[0].data[1] = this.feeData.totalCollection; 821 this.series[0].data[1] = this.feeData.totalCollection;
822 // console.log("this.series====", this.series); 822 // console.log("this.series====", this.series);
823 823
824 this.showLoader = false; 824 this.showLoader = false;
825 }) 825 })
826 .catch(error => { 826 .catch(error => {
827 this.showLoader = false; 827 this.showLoader = false;
828 }); 828 });
829 }, 829 },
830 getExpensesData() { 830 getExpensesData() {
831 http() 831 http()
832 .get("/getTotalExpenses", { 832 .get("/getTotalExpenses", {
833 headers: { 833 headers: {
834 Authorization: "Bearer " + this.token 834 Authorization: "Bearer " + this.token
835 } 835 }
836 }) 836 })
837 .then(response => { 837 .then(response => {
838 this.expenseData = response.data.data; 838 this.expenseData = response.data.data;
839 // var array = response.data.data.sum; 839 // var array = response.data.data.sum;
840 this.series[0].data[2] = this.expenseData.sum; 840 this.series[0].data[2] = this.expenseData.sum;
841 // this.series = [ 841 // this.series = [
842 // { 842 // {
843 // name: "Total", 843 // name: "Total",
844 // data: array 844 // data: array
845 // } 845 // }
846 // ]; 846 // ];
847 // console.log("this.series====", this.series); 847 // console.log("this.series====", this.series);
848 this.showLoader = false; 848 this.showLoader = false;
849 }) 849 })
850 .catch(error => { 850 .catch(error => {
851 this.showLoader = false; 851 this.showLoader = false;
852 }); 852 });
853 }, 853 },
854 getparentStudents() { 854 getparentStudents() {
855 this.showLoader = true; 855 this.showLoader = true;
856 http() 856 http()
857 .get("/parentStudentsList") 857 .get("/parentStudentsList")
858 .then(response => { 858 .then(response => {
859 // console.log("resssssss", response.data.data.students[0].classId); 859 // console.log("resssssss", response.data.data.students[0].classId);
860 this.studentsData = response.data.data; 860 this.studentsData = response.data.data;
861 // localStorage.setItem( 861 // localStorage.setItem(
862 // "parentStudentId", 862 // "parentStudentId",
863 // this.studentsData.students[0]._id 863 // this.studentsData.students[0]._id
864 // ); 864 // );
865 // localStorage.setItem( 865 // localStorage.setItem(
866 // "parentClassId", 866 // "parentClassId",
867 // this.studentsData.students[0].classId 867 // this.studentsData.students[0].classId
868 // ); 868 // );
869 869
870 if (localStorage.getItem("parentStudentId") == null) { 870 if (localStorage.getItem("parentStudentId") == null) {
871 var parentStudentsId = response.data.data.students[0].classId; 871 var parentStudentsId = response.data.data.students[0].classId;
872 var classId = response.data.data.students[0]._id; 872 var classId = response.data.data.students[0]._id;
873 } 873 }
874 if (localStorage.getItem("parentStudentId")) { 874 if (localStorage.getItem("parentStudentId")) {
875 var parentStudentsId = localStorage.getItem("parentStudentId"); 875 var parentStudentsId = localStorage.getItem("parentStudentId");
876 var classId = localStorage.getItem("parentClassId"); 876 var classId = localStorage.getItem("parentClassId");
877 } 877 }
878 this.getCourses(parentStudentsId, classId); 878 this.getCourses(parentStudentsId, classId);
879 this.getAnnoucementes(classId); 879 this.getAnnoucementes(classId);
880 this.showLoader = false; 880 this.showLoader = false;
881 }) 881 })
882 .catch(err => { 882 .catch(err => {
883 console.log("err====>", err); 883 console.log("err====>", err);
884 this.showLoader = false; 884 this.showLoader = false;
885 }); 885 });
886 }, 886 },
887 async getCourses(parentStudentsId, classId) { 887 async getCourses(parentStudentsId, classId) {
888 /* getStudentCourses - to get courseData - defined in GetApis.js*/ 888 /* getStudentCourses - to get courseData - defined in GetApis.js*/
889 await this.getStudentCourses({ 889 await this.getStudentCourses({
890 classId: classId, 890 classId: classId,
891 studentId: parentStudentsId 891 studentId: parentStudentsId
892 }); 892 });
893 }, 893 },
894 getAnnoucementes(classId) { 894 getAnnoucementes(classId) {
895 this.showLoader = true; 895 this.showLoader = true;
896 http() 896 http()
897 .get("/getAnnoucementesList", { 897 .get("/getAnnoucementesList", {
898 params: { 898 params: {
899 classId: classId 899 classId: classId
900 } 900 }
901 }) 901 })
902 .then(response => { 902 .then(response => {
903 this.annoucementData = response.data.data; 903 this.annoucementData = response.data.data;
904 this.showLoader = false; 904 this.showLoader = false;
905 }) 905 })
906 .catch(err => { 906 .catch(err => {
907 console.log("err====>", err); 907 console.log("err====>", err);
908 this.showLoader = false; 908 this.showLoader = false;
909 }); 909 });
910 } 910 }
911 }, 911 },
912 async created() { 912 async created() {
913 /* get Latest events list */ 913 /* get Latest events list */
914 let response = await this.studentMeetingEvents({ 914 let response = await this.studentMeetingEvents({
915 studentId: localStorage.getItem("parentStudentId") 915 studentId: localStorage.getItem("parentStudentId")
916 }); 916 });
917 this.activityList = response.data.data; 917 this.activityList = response.data.data;
918 918
919 /* set activityEvents array to highlight event dates in calender */ 919 /* set activityEvents array to highlight event dates in calender */
920 for (var i = 0; i < this.activityList.length; i++) { 920 for (var i = 0; i < this.activityList.length; i++) {
921 let obj = {}; 921 let obj = {};
922 obj.date = moment(this.activityList[i].meetingEvent.dateOfEvent).format( 922 obj.date = moment(this.activityList[i].meetingEvent.dateOfEvent).format(
923 "YYYY/MM/DD" 923 "YYYY/MM/DD"
924 ); 924 );
925 obj.title = this.activityList[i].meetingEvent.title; 925 obj.title = this.activityList[i].meetingEvent.title;
926 this.activityEvents.push(obj); 926 this.activityEvents.push(obj);
927 } 927 }
928 } 928 }
929 }; 929 };
930 </script> 930 </script>
931 931
932 <style scoped> 932 <style scoped>
933 @import "fullcalendar/dist/fullcalendar.css"; 933 @import "fullcalendar/dist/fullcalendar.css";
934 </style> 934 </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: '/changepassword', 51 path: '/changepassword',
52 meta: {}, 52 meta: {},
53 name: 'changepassword', 53 name: 'changepassword',
54 props: (route) => ({ 54 props: (route) => ({
55 type: route.query.type 55 type: route.query.type
56 }), 56 }),
57 component: () => 57 component: () =>
58 import( 58 import (
59 /* webpackChunkName: "routes" */ 59 /* webpackChunkName: "routes" */
60 /* webpackMode: "lazy-once" */ 60 /* webpackMode: "lazy-once" */
61 `@/pages/Authentication/changepassword.vue` 61 `@/pages/Authentication/changepassword.vue`
62 ) 62 )
63 }, 63 },
64 { 64 {
65 path: '/teachers', 65 path: '/teachers',
66 meta: { 66 meta: {
67 breadcrumb: false 67 breadcrumb: false
68 }, 68 },
69 name: 'Teachers', 69 name: 'Teachers',
70 component: () => 70 component: () =>
71 import( 71 import (
72 /* webpackChunkName: "routes" */ 72 /* webpackChunkName: "routes" */
73 /* webpackMode: "lazy-once" */ 73 /* webpackMode: "lazy-once" */
74 `@/pages/Teachers/teachers.vue` 74 `@/pages/Teachers/teachers.vue`
75 ) 75 )
76 }, 76 },
77 { 77 {
78 path: '/', 78 path: '/',
79 meta: { 79 meta: {
80 public: true, 80 public: true,
81 }, 81 },
82 name: 'Login', 82 name: 'Login',
83 component: () => 83 component: () =>
84 import( 84 import (
85 /* webpackChunkName: "routes" */ 85 /* webpackChunkName: "routes" */
86 /* webpackMode: "lazy-once" */ 86 /* webpackMode: "lazy-once" */
87 `@/pages/Authentication/Login.vue` 87 `@/pages/Authentication/Login.vue`
88 ) 88 )
89 }, 89 },
90 { 90 {
91 path: '/forgetpassword', 91 path: '/forgetpassword',
92 meta: { 92 meta: {
93 public: true, 93 public: true,
94 }, 94 },
95 name: 'forgetpassword', 95 name: 'forgetpassword',
96 component: () => 96 component: () =>
97 import( 97 import (
98 /* webpackChunkName: "routes" */ 98 /* webpackChunkName: "routes" */
99 /* webpackMode: "lazy-once" */ 99 /* webpackMode: "lazy-once" */
100 `@/pages/Authentication/forgetpassword.vue` 100 `@/pages/Authentication/forgetpassword.vue`
101 ) 101 )
102 }, 102 },
103 { 103 {
104 path: '/students', 104 path: '/students',
105 meta: {}, 105 meta: {},
106 name: 'Students', 106 name: 'Students',
107 props: (route) => ({ 107 props: (route) => ({
108 type: route.query.type 108 type: route.query.type
109 }), 109 }),
110 component: () => 110 component: () =>
111 import( 111 import (
112 /* webpackChunkName: "routes" */ 112 /* webpackChunkName: "routes" */
113 /* webpackMode: "lazy-once" */ 113 /* webpackMode: "lazy-once" */
114 `@/pages/Students/students.vue` 114 `@/pages/Students/students.vue`
115 ) 115 )
116 }, 116 },
117 { 117 {
118 path: '/class', 118 path: '/class',
119 meta: {}, 119 meta: {},
120 name: 'Class', 120 name: 'Class',
121 props: (route) => ({ 121 props: (route) => ({
122 type: route.query.type 122 type: route.query.type
123 }), 123 }),
124 component: () => 124 component: () =>
125 import( 125 import (
126 /* webpackChunkName: "routes" */ 126 /* webpackChunkName: "routes" */
127 /* webpackMode: "lazy-once" */ 127 /* webpackMode: "lazy-once" */
128 `@/pages/Class/addclass.vue` 128 `@/pages/Class/addclass.vue`
129 ) 129 )
130 }, 130 },
131 { 131 {
132 path: '/section', 132 path: '/section',
133 meta: {}, 133 meta: {},
134 name: 'Section', 134 name: 'Section',
135 props: (route) => ({ 135 props: (route) => ({
136 type: route.query.type 136 type: route.query.type
137 }), 137 }),
138 component: () => 138 component: () =>
139 import( 139 import (
140 /* webpackChunkName: "routes" */ 140 /* webpackChunkName: "routes" */
141 /* webpackMode: "lazy-once" */ 141 /* webpackMode: "lazy-once" */
142 `@/pages/Section/section.vue` 142 `@/pages/Section/section.vue`
143 ) 143 )
144 }, 144 },
145 { 145 {
146 path: '/noticeBoard', 146 path: '/noticeBoard',
147 meta: {}, 147 meta: {},
148 name: 'Notice Board', 148 name: 'Notice Board',
149 props: (route) => ({ 149 props: (route) => ({
150 type: route.query.type 150 type: route.query.type
151 }), 151 }),
152 component: () => 152 component: () =>
153 import( 153 import (
154 /* webpackChunkName: "routes" */ 154 /* webpackChunkName: "routes" */
155 /* webpackMode: "lazy-once" */ 155 /* webpackMode: "lazy-once" */
156 `@/pages/NoticeBoard/noticeBoard.vue` 156 `@/pages/NoticeBoard/noticeBoard.vue`
157 ) 157 )
158 }, 158 },
159 { 159 {
160 path: '/news', 160 path: '/news',
161 meta: {}, 161 meta: {},
162 name: 'News', 162 name: 'News',
163 props: (route) => ({ 163 props: (route) => ({
164 type: route.query.type 164 type: route.query.type
165 }), 165 }),
166 component: () => 166 component: () =>
167 import( 167 import (
168 /* webpackChunkName: "routes" */ 168 /* webpackChunkName: "routes" */
169 /* webpackMode: "lazy-once" */ 169 /* webpackMode: "lazy-once" */
170 `@/pages/News/news.vue` 170 `@/pages/News/news.vue`
171 ) 171 )
172 }, 172 },
173 // { 173 // {
174 // path: '/reminder', 174 // path: '/reminder',
175 // meta: { }, 175 // meta: { },
176 // name: 'reminder', 176 // name: 'reminder',
177 // props: (route) => ({ type: route.query.type }), 177 // props: (route) => ({ type: route.query.type }),
178 // component: () => import( 178 // component: () => import(
179 // /* webpackChunkName: "routes" */ 179 // /* webpackChunkName: "routes" */
180 // /* webpackMode: "lazy-once" */ 180 // /* webpackMode: "lazy-once" */
181 // `@/pages/Reminder/reminder.vue` 181 // `@/pages/Reminder/reminder.vue`
182 // ) 182 // )
183 // }, 183 // },
184 { 184 {
185 path: '/timeTable', 185 path: '/timeTable',
186 meta: {}, 186 meta: {},
187 name: 'Time Table', 187 name: 'Time Table',
188 props: (route) => ({ 188 props: (route) => ({
189 type: route.query.type 189 type: route.query.type
190 }), 190 }),
191 component: () => 191 component: () =>
192 import( 192 import (
193 /* webpackChunkName: "routes" */ 193 /* webpackChunkName: "routes" */
194 /* webpackMode: "lazy-once" */ 194 /* webpackMode: "lazy-once" */
195 `@/pages/TimeTable/timeTable.vue` 195 `@/pages/TimeTable/timeTable.vue`
196 ) 196 )
197 }, 197 },
198 { 198 {
199 path: '/notification', 199 path: '/notification',
200 meta: {}, 200 meta: {},
201 name: 'Notification', 201 name: 'Notification',
202 props: (route) => ({ 202 props: (route) => ({
203 type: route.query.type 203 type: route.query.type
204 }), 204 }),
205 component: () => 205 component: () =>
206 import( 206 import (
207 /* webpackChunkName: "routes" */ 207 /* webpackChunkName: "routes" */
208 /* webpackMode: "lazy-once" */ 208 /* webpackMode: "lazy-once" */
209 `@/pages/Notification/notification.vue` 209 `@/pages/Notification/notification.vue`
210 ) 210 )
211 }, 211 },
212 { 212 {
213 path: '/parents', 213 path: '/parents',
214 meta: {}, 214 meta: {},
215 name: 'Parents', 215 name: 'Parents',
216 props: (route) => ({ 216 props: (route) => ({
217 type: route.query.type 217 type: route.query.type
218 }), 218 }),
219 component: () => 219 component: () =>
220 import( 220 import (
221 /* webpackChunkName: "routes" */ 221 /* webpackChunkName: "routes" */
222 /* webpackMode: "lazy-once" */ 222 /* webpackMode: "lazy-once" */
223 `@/pages/Parent/parents.vue` 223 `@/pages/Parent/parents.vue`
224 ) 224 )
225 }, 225 },
226 // { 226 // {
227 // path: '/subject', 227 // path: '/subject',
228 // meta: {}, 228 // meta: {},
229 // name: 'Subject', 229 // name: 'Subject',
230 // props: (route) => ({ type: route.query.type }), 230 // props: (route) => ({ type: route.query.type }),
231 // component: () => 231 // component: () =>
232 // import ( 232 // import (
233 // /* webpackChunkName: "routes" */ 233 // /* webpackChunkName: "routes" */
234 // /* webpackMode: "lazy-once" */ 234 // /* webpackMode: "lazy-once" */
235 // `@/pages/Subjects/subjects.vue` 235 // `@/pages/Subjects/subjects.vue`
236 // ) 236 // )
237 // }, 237 // },
238 { 238 {
239 path: '/dashboard', 239 path: '/dashboard',
240 meta: {}, 240 meta: {},
241 name: 'Dashboard', 241 name: 'Dashboard',
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/Dashboard/dashboard.vue` 249 `@/pages/Dashboard/dashboard.vue`
250 ) 250 )
251 }, 251 },
252 { 252 {
253 path: '/CourseDetails', 253 path: '/CourseDetails',
254 meta: {}, 254 meta: {},
255 name: 'Course Details', 255 name: 'Course Details',
256 props: (route) => ({ 256 props: (route) => ({
257 type: route.query.type 257 type: route.query.type
258 }), 258 }),
259 component: () => 259 component: () =>
260 import( 260 import (
261 /* webpackChunkName: "routes" */ 261 /* webpackChunkName: "routes" */
262 /* webpackMode: "lazy-once" */ 262 /* webpackMode: "lazy-once" */
263 `@/pages/Dashboard/CourseDetails.vue` 263 `@/pages/Dashboard/CourseDetails.vue`
264 ) 264 )
265 }, 265 },
266 { 266 {
267 path: '/ChapterInfo', 267 path: '/ChapterInfo',
268 meta: {}, 268 meta: {},
269 name: 'Chapter Info', 269 name: 'Chapter Info',
270 props: (route) => ({ 270 props: (route) => ({
271 type: route.query.type 271 type: route.query.type
272 }), 272 }),
273 component: () => 273 component: () =>
274 import( 274 import (
275 /* webpackChunkName: "routes" */ 275 /* webpackChunkName: "routes" */
276 /* webpackMode: "lazy-once" */ 276 /* webpackMode: "lazy-once" */
277 `@/pages/Dashboard/ChapterInfo.vue` 277 `@/pages/Dashboard/ChapterInfo.vue`
278 ) 278 )
279 }, 279 },
280 { 280 {
281 path: '/CourseDiscussionForum', 281 path: '/CourseDiscussionForum',
282 meta: {}, 282 meta: {},
283 name: 'Course Discussion Forum', 283 name: 'Course Discussion Forum',
284 props: (route) => ({ 284 props: (route) => ({
285 type: route.query.type 285 type: route.query.type
286 }), 286 }),
287 component: () => 287 component: () =>
288 import( 288 import (
289 /* webpackChunkName: "routes" */ 289 /* webpackChunkName: "routes" */
290 /* webpackMode: "lazy-once" */ 290 /* webpackMode: "lazy-once" */
291 `@/pages/Dashboard/CourseDiscussionForum.vue` 291 `@/pages/Dashboard/CourseDiscussionForum.vue`
292 ) 292 )
293 }, 293 },
294 { 294 {
295 path: '/courseDiscussion',
296 meta: {},
297 name: 'Course Discussion',
298 props: (route) => ({
299 type: route.query.type
300 }),
301 component: () =>
302 import (
303 /* webpackChunkName: "routes" */
304 /* webpackMode: "lazy-once" */
305 `@/pages/Course/courseDiscussion.vue`
306 )
307 },
308 {
309 path: '/courseDiscussionesForm/:discussionId',
310 meta: {},
311 name: 'Course Discussiones Form',
312 props: (route) => ({
313 type: route.query.type
314 }),
315 component: () =>
316 import (
317 /* webpackChunkName: "routes" */
318 /* webpackMode: "lazy-once" */
319 `@/pages/Course/discussion.vue`
320 )
321 },
322 {
295 path: '/Announcement', 323 path: '/Announcement',
296 meta: {}, 324 meta: {},
297 name: 'Announcement', 325 name: 'Announcement',
298 props: (route) => ({ 326 props: (route) => ({
299 type: route.query.type 327 type: route.query.type
300 }), 328 }),
301 component: () => 329 component: () =>
302 import( 330 import (
303 /* webpackChunkName: "routes" */ 331 /* webpackChunkName: "routes" */
304 /* webpackMode: "lazy-once" */ 332 /* webpackMode: "lazy-once" */
305 `@/pages/Dashboard/Announcement.vue` 333 `@/pages/Dashboard/Announcement.vue`
306 ) 334 )
307 }, 335 },
308 { 336 {
309 path: '/socialMedia', 337 path: '/socialMedia',
310 meta: {}, 338 meta: {},
311 name: 'Social Media', 339 name: 'Social Media',
312 props: (route) => ({ 340 props: (route) => ({
313 type: route.query.type 341 type: route.query.type
314 }), 342 }),
315 component: () => 343 component: () =>
316 import( 344 import (
317 /* webpackChunkName: "routes" */ 345 /* webpackChunkName: "routes" */
318 /* webpackMode: "lazy-once" */ 346 /* webpackMode: "lazy-once" */
319 `@/pages/socialMedia/socialMedia.vue` 347 `@/pages/socialMedia/socialMedia.vue`
320 ) 348 )
321 }, 349 },
322 { 350 {
323 path: '/gallery', 351 path: '/gallery',
324 meta: {}, 352 meta: {},
325 name: 'Gallery', 353 name: 'Gallery',
326 props: (route) => ({ 354 props: (route) => ({
327 type: route.query.type 355 type: route.query.type
328 }), 356 }),
329 component: () => 357 component: () =>
330 import( 358 import (
331 /* webpackChunkName: "routes" */ 359 /* webpackChunkName: "routes" */
332 /* webpackMode: "lazy-once" */ 360 /* webpackMode: "lazy-once" */
333 `@/pages/Gallery/gallery.vue` 361 `@/pages/Gallery/gallery.vue`
334 ) 362 )
335 }, 363 },
336 { 364 {
337 path: '/event', 365 path: '/event',
338 meta: {}, 366 meta: {},
339 name: 'Event', 367 name: 'Event',
340 props: (route) => ({ 368 props: (route) => ({
341 type: route.query.type 369 type: route.query.type
342 }), 370 }),
343 component: () => 371 component: () =>
344 import( 372 import (
345 /* webpackChunkName: "routes" */ 373 /* webpackChunkName: "routes" */
346 /* webpackMode: "lazy-once" */ 374 /* webpackMode: "lazy-once" */
347 `@/pages/Event/event.vue` 375 `@/pages/Event/event.vue`
348 ) 376 )
349 }, 377 },
350 { 378 {
351 path: '/holiday', 379 path: '/holiday',
352 meta: {}, 380 meta: {},
353 name: 'Holiday', 381 name: 'Holiday',
354 props: (route) => ({ 382 props: (route) => ({
355 type: route.query.type 383 type: route.query.type
356 }), 384 }),
357 component: () => 385 component: () =>
358 import( 386 import (
359 /* webpackChunkName: "routes" */ 387 /* webpackChunkName: "routes" */
360 /* webpackMode: "lazy-once" */ 388 /* webpackMode: "lazy-once" */
361 `@/pages/Holiday/holiday.vue` 389 `@/pages/Holiday/holiday.vue`
362 ) 390 )
363 }, 391 },
364 { 392 {
365 path: '/user', 393 path: '/user',
366 meta: {}, 394 meta: {},
367 name: 'User', 395 name: 'User',
368 props: (route) => ({ 396 props: (route) => ({
369 type: route.query.type 397 type: route.query.type
370 }), 398 }),
371 component: () => 399 component: () =>
372 import( 400 import (
373 /* webpackChunkName: "routes" */ 401 /* webpackChunkName: "routes" */
374 /* webpackMode: "lazy-once" */ 402 /* webpackMode: "lazy-once" */
375 `@/pages/User/user.vue` 403 `@/pages/User/user.vue`
376 ) 404 )
377 }, 405 },
378 { 406 {
379 path: '/AttendenceStudent', 407 path: '/AttendenceStudent',
380 meta: {}, 408 meta: {},
381 name: 'Student Attendence', 409 name: 'Student Attendence',
382 props: (route) => ({ 410 props: (route) => ({
383 type: route.query.type 411 type: route.query.type
384 }), 412 }),
385 component: () => 413 component: () =>
386 import( 414 import (
387 /* webpackChunkName: "routes" */ 415 /* webpackChunkName: "routes" */
388 /* webpackMode: "lazy-once" */ 416 /* webpackMode: "lazy-once" */
389 `@/pages/Attendence/studentAttendence.vue` 417 `@/pages/Attendence/studentAttendence.vue`
390 ) 418 )
391 }, 419 },
392 { 420 {
393 path: '/AttendenceTeacher', 421 path: '/AttendenceTeacher',
394 meta: {}, 422 meta: {},
395 name: 'Teacher Attendence', 423 name: 'Teacher Attendence',
396 props: (route) => ({ 424 props: (route) => ({
397 type: route.query.type 425 type: route.query.type
398 }), 426 }),
399 component: () => 427 component: () =>
400 import( 428 import (
401 /* webpackChunkName: "routes" */ 429 /* webpackChunkName: "routes" */
402 /* webpackMode: "lazy-once" */ 430 /* webpackMode: "lazy-once" */
403 `@/pages/Attendence/teacherAttendence.vue` 431 `@/pages/Attendence/teacherAttendence.vue`
404 ) 432 )
405 }, 433 },
406 { 434 {
407 path: '/salaryTemplate', 435 path: '/salaryTemplate',
408 meta: {}, 436 meta: {},
409 name: 'Salary Template', 437 name: 'Salary Template',
410 props: (route) => ({ 438 props: (route) => ({
411 type: route.query.type 439 type: route.query.type
412 }), 440 }),
413 component: () => 441 component: () =>
414 import( 442 import (
415 `@/pages/Payroll/salaryTemplate.vue` 443 `@/pages/Payroll/salaryTemplate.vue`
416 ) 444 )
417 }, 445 },
418 { 446 {
419 path: '/hourlyTemplate', 447 path: '/hourlyTemplate',
420 meta: {}, 448 meta: {},
421 name: 'Hourly Template', 449 name: 'Hourly Template',
422 props: (route) => ({ 450 props: (route) => ({
423 type: route.query.type 451 type: route.query.type
424 }), 452 }),
425 component: () => 453 component: () =>
426 import( 454 import (
427 `@/pages/Payroll/hourlyTemplate.vue` 455 `@/pages/Payroll/hourlyTemplate.vue`
428 ) 456 )
429 }, 457 },
430 { 458 {
431 path: '/manageSalary', 459 path: '/manageSalary',
432 meta: {}, 460 meta: {},
433 name: 'Manage Salary', 461 name: 'Manage Salary',
434 props: (route) => ({ 462 props: (route) => ({
435 type: route.query.type 463 type: route.query.type
436 }), 464 }),
437 component: () => 465 component: () =>
438 import( 466 import (
439 `@/pages/Payroll/manageSalary.vue` 467 `@/pages/Payroll/manageSalary.vue`
440 ) 468 )
441 }, 469 },
442 // { 470 // {
443 // path: '/makePayment', 471 // path: '/makePayment',
444 // meta: {}, 472 // meta: {},
445 // name: 'Make Payment', 473 // name: 'Make Payment',
446 // props: (route) => ({ type: route.query.type }), 474 // props: (route) => ({ type: route.query.type }),
447 // component: () => 475 // component: () =>
448 // import ( 476 // import (
449 // `@/pages/Payroll/makePayment.vue` 477 // `@/pages/Payroll/makePayment.vue`
450 // ) 478 // )
451 // }, 479 // },
452 { 480 {
453 path: '/AttendenceUser', 481 path: '/AttendenceUser',
454 meta: {}, 482 meta: {},
455 name: 'User Attendence', 483 name: 'User Attendence',
456 props: (route) => ({ 484 props: (route) => ({
457 type: route.query.type 485 type: route.query.type
458 }), 486 }),
459 component: () => 487 component: () =>
460 import( 488 import (
461 /* webpackChunkName: "routes" */ 489 /* webpackChunkName: "routes" */
462 /* webpackMode: "lazy-once" */ 490 /* webpackMode: "lazy-once" */
463 `@/pages/Attendence/userAttendence.vue` 491 `@/pages/Attendence/userAttendence.vue`
464 ) 492 )
465 }, 493 },
466 { 494 {
467 path: '/feeTypes', 495 path: '/feeTypes',
468 meta: {}, 496 meta: {},
469 name: 'Fee Types', 497 name: 'Fee Types',
470 props: (route) => ({ 498 props: (route) => ({
471 type: route.query.type 499 type: route.query.type
472 }), 500 }),
473 component: () => 501 component: () =>
474 import( 502 import (
475 /* webpackChunkName: "routes" */ 503 /* webpackChunkName: "routes" */
476 /* webpackMode: "lazy-once" */ 504 /* webpackMode: "lazy-once" */
477 `@/pages/Account/feeTypes.vue` 505 `@/pages/Account/feeTypes.vue`
478 ) 506 )
479 }, 507 },
480 { 508 {
481 path: '/invoice', 509 path: '/invoice',
482 meta: {}, 510 meta: {},
483 name: 'Invoice', 511 name: 'Invoice',
484 props: (route) => ({ 512 props: (route) => ({
485 type: route.query.type 513 type: route.query.type
486 }), 514 }),
487 component: () => 515 component: () =>
488 import( 516 import (
489 /* webpackChunkName: "routes" */ 517 /* webpackChunkName: "routes" */
490 /* webpackMode: "lazy-once" */ 518 /* webpackMode: "lazy-once" */
491 `@/pages/Account/invoice.vue` 519 `@/pages/Account/invoice.vue`
492 ) 520 )
493 }, 521 },
494 { 522 {
495 path: '/paymentHistory', 523 path: '/paymentHistory',
496 meta: {}, 524 meta: {},
497 name: 'Payment History', 525 name: 'Payment History',
498 props: (route) => ({ 526 props: (route) => ({
499 type: route.query.type 527 type: route.query.type
500 }), 528 }),
501 component: () => 529 component: () =>
502 import( 530 import (
503 /* webpackChunkName: "routes" */ 531 /* webpackChunkName: "routes" */
504 /* webpackMode: "lazy-once" */ 532 /* webpackMode: "lazy-once" */
505 `@/pages/Account/paymentHistory.vue` 533 `@/pages/Account/paymentHistory.vue`
506 ) 534 )
507 }, 535 },
508 { 536 {
509 path: '/expense', 537 path: '/expense',
510 meta: {}, 538 meta: {},
511 name: 'Expense', 539 name: 'Expense',
512 props: (route) => ({ 540 props: (route) => ({
513 type: route.query.type 541 type: route.query.type
514 }), 542 }),
515 component: () => 543 component: () =>
516 import( 544 import (
517 /* webpackChunkName: "routes" */ 545 /* webpackChunkName: "routes" */
518 /* webpackMode: "lazy-once" */ 546 /* webpackMode: "lazy-once" */
519 `@/pages/Account/expense.vue` 547 `@/pages/Account/expense.vue`
520 ) 548 )
521 }, 549 },
522 { 550 {
523 path: '/income', 551 path: '/income',
524 meta: {}, 552 meta: {},
525 name: 'Income', 553 name: 'Income',
526 props: (route) => ({ 554 props: (route) => ({
527 type: route.query.type 555 type: route.query.type
528 }), 556 }),
529 component: () => 557 component: () =>
530 import( 558 import (
531 /* webpackChunkName: "routes" */ 559 /* webpackChunkName: "routes" */
532 /* webpackMode: "lazy-once" */ 560 /* webpackMode: "lazy-once" */
533 `@/pages/Account/income.vue` 561 `@/pages/Account/income.vue`
534 ) 562 )
535 }, 563 },
536 { 564 {
537 path: '/libraryMember', 565 path: '/libraryMember',
538 meta: {}, 566 meta: {},
539 name: 'Library Member', 567 name: 'Library Member',
540 props: (route) => ({ 568 props: (route) => ({
541 type: route.query.type 569 type: route.query.type
542 }), 570 }),
543 component: () => 571 component: () =>
544 import( 572 import (
545 /* webpackChunkName: "routes" */ 573 /* webpackChunkName: "routes" */
546 /* webpackMode: "lazy-once" */ 574 /* webpackMode: "lazy-once" */
547 `@/pages/Library/member.vue` 575 `@/pages/Library/member.vue`
548 ) 576 )
549 }, 577 },
550 { 578 {
551 path: '/books', 579 path: '/books',
552 meta: {}, 580 meta: {},
553 name: 'Books', 581 name: 'Books',
554 props: (route) => ({ 582 props: (route) => ({
555 type: route.query.type 583 type: route.query.type
556 }), 584 }),
557 component: () => 585 component: () =>
558 import( 586 import (
559 /* webpackChunkName: "routes" */ 587 /* webpackChunkName: "routes" */
560 /* webpackMode: "lazy-once" */ 588 /* webpackMode: "lazy-once" */
561 `@/pages/Library/books.vue` 589 `@/pages/Library/books.vue`
562 ) 590 )
563 }, 591 },
564 { 592 {
565 path: '/issue', 593 path: '/issue',
566 meta: {}, 594 meta: {},
567 name: 'Issue', 595 name: 'Issue',
568 props: (route) => ({ 596 props: (route) => ({
569 type: route.query.type 597 type: route.query.type
570 }), 598 }),
571 component: () => 599 component: () =>
572 import( 600 import (
573 /* webpackChunkName: "routes" */ 601 /* webpackChunkName: "routes" */
574 /* webpackMode: "lazy-once" */ 602 /* webpackMode: "lazy-once" */
575 `@/pages/Library/issue.vue` 603 `@/pages/Library/issue.vue`
576 ) 604 )
577 }, 605 },
578 { 606 {
579 path: '/e-books', 607 path: '/e-books',
580 meta: {}, 608 meta: {},
581 name: 'E-Books', 609 name: 'E-Books',
582 props: (route) => ({ 610 props: (route) => ({
583 type: route.query.type 611 type: route.query.type
584 }), 612 }),
585 component: () => 613 component: () =>
586 import( 614 import (
587 /* webpackChunkName: "routes" */ 615 /* webpackChunkName: "routes" */
588 /* webpackMode: "lazy-once" */ 616 /* webpackMode: "lazy-once" */
589 `@/pages/Library/eBook.vue` 617 `@/pages/Library/eBook.vue`
590 ) 618 )
591 }, 619 },
592 { 620 {
593 path: '/editInvoice/:invoiceid', 621 path: '/editInvoice/:invoiceid',
594 meta: {}, 622 meta: {},
595 name: 'Edit Invoice', 623 name: 'Edit Invoice',
596 // props: (route) => ({ type: route.query.type }), 624 // props: (route) => ({ type: route.query.type }),
597 component: () => 625 component: () =>
598 import( 626 import (
599 /* webpackChunkName: "routes" */ 627 /* webpackChunkName: "routes" */
600 /* webpackMode: "lazy-once" */ 628 /* webpackMode: "lazy-once" */
601 `@/pages/Account/editInvoice.vue` 629 `@/pages/Account/editInvoice.vue`
602 ) 630 )
603 }, 631 },
604 { 632 {
605 path: '/StudentsAttendence/:id', 633 path: '/StudentsAttendence/:id',
606 meta: {}, 634 meta: {},
607 name: 'View Students Attendence', 635 name: 'View Students Attendence',
608 props: (route) => ({ 636 props: (route) => ({
609 type: route.query.type 637 type: route.query.type
610 }), 638 }),
611 component: () => 639 component: () =>
612 import( 640 import (
613 /* webpackChunkName: "routes" */ 641 /* webpackChunkName: "routes" */
614 /* webpackMode: "lazy-once" */ 642 /* webpackMode: "lazy-once" */
615 `@/pages/Attendence/viewStudentsAttendence.vue` 643 `@/pages/Attendence/viewStudentsAttendence.vue`
616 ) 644 )
617 }, 645 },
618 { 646 {
619 path: '/TeacherAttendence/:teacherId', 647 path: '/TeacherAttendence/:teacherId',
620 meta: {}, 648 meta: {},
621 name: 'View Teacher Attendence', 649 name: 'View Teacher Attendence',
622 props: (route) => ({ 650 props: (route) => ({
623 type: route.query.type 651 type: route.query.type
624 }), 652 }),
625 component: () => 653 component: () =>
626 import( 654 import (
627 /* webpackChunkName: "routes" */ 655 /* webpackChunkName: "routes" */
628 /* webpackMode: "lazy-once" */ 656 /* webpackMode: "lazy-once" */
629 `@/pages/Attendence/viewTeacherAttendence.vue` 657 `@/pages/Attendence/viewTeacherAttendence.vue`
630 ) 658 )
631 }, 659 },
632 { 660 {
633 path: '/viewInvoice/:viewInvoiceId', 661 path: '/viewInvoice/:viewInvoiceId',
634 meta: {}, 662 meta: {},
635 name: 'View Invoice', 663 name: 'View Invoice',
636 props: (route) => ({ 664 props: (route) => ({
637 type: route.query.type 665 type: route.query.type
638 }), 666 }),
639 component: () => 667 component: () =>
640 import( 668 import (
641 /* webpackChunkName: "routes" */ 669 /* webpackChunkName: "routes" */
642 /* webpackMode: "lazy-once" */ 670 /* webpackMode: "lazy-once" */
643 `@/pages/Account/viewInvoice.vue` 671 `@/pages/Account/viewInvoice.vue`
644 ) 672 )
645 }, 673 },
646 { 674 {
647 path: '/viewPaymentInvoice/:viewPaymentInvoiceId', 675 path: '/viewPaymentInvoice/:viewPaymentInvoiceId',
648 meta: {}, 676 meta: {},
649 name: 'View Payment Invoice', 677 name: 'View Payment Invoice',
650 props: (route) => ({ 678 props: (route) => ({
651 type: route.query.type 679 type: route.query.type
652 }), 680 }),
653 component: () => 681 component: () =>
654 import( 682 import (
655 /* webpackChunkName: "routes" */ 683 /* webpackChunkName: "routes" */
656 /* webpackMode: "lazy-once" */ 684 /* webpackMode: "lazy-once" */
657 `@/pages/Account/viewPaymentInvoice.vue` 685 `@/pages/Account/viewPaymentInvoice.vue`
658 ) 686 )
659 }, 687 },
660 { 688 {
661 path: '/globalPayment', 689 path: '/globalPayment',
662 meta: {}, 690 meta: {},
663 name: 'Global Payment', 691 name: 'Global Payment',
664 props: (route) => ({ 692 props: (route) => ({
665 type: route.query.type 693 type: route.query.type
666 }), 694 }),
667 component: () => 695 component: () =>
668 import( 696 import (
669 /* webpackChunkName: "routes" */ 697 /* webpackChunkName: "routes" */
670 /* webpackMode: "lazy-once" */ 698 /* webpackMode: "lazy-once" */
671 `@/pages/Account/globalPayment.vue` 699 `@/pages/Account/globalPayment.vue`
672 ) 700 )
673 }, 701 },
674 { 702 {
675 path: '/exam', 703 path: '/exam',
676 meta: {}, 704 meta: {},
677 name: 'Exam', 705 name: 'Exam',
678 props: (route) => ({ 706 props: (route) => ({
679 type: route.query.type 707 type: route.query.type
680 }), 708 }),
681 component: () => 709 component: () =>
682 import( 710 import (
683 /* webpackChunkName: "routes" */ 711 /* webpackChunkName: "routes" */
684 /* webpackMode: "lazy-once" */ 712 /* webpackMode: "lazy-once" */
685 `@/pages/Exam/exam.vue` 713 `@/pages/Exam/exam.vue`
686 ) 714 )
687 }, 715 },
688 { 716 {
689 path: '/grade', 717 path: '/grade',
690 meta: {}, 718 meta: {},
691 name: 'Grade', 719 name: 'Grade',
692 props: (route) => ({ 720 props: (route) => ({
693 type: route.query.type 721 type: route.query.type
694 }), 722 }),
695 component: () => 723 component: () =>
696 import( 724 import (
697 /* webpackChunkName: "routes" */ 725 /* webpackChunkName: "routes" */
698 /* webpackMode: "lazy-once" */ 726 /* webpackMode: "lazy-once" */
699 `@/pages/Exam/grade.vue` 727 `@/pages/Exam/grade.vue`
700 ) 728 )
701 }, 729 },
702 { 730 {
703 path: '/examSchedule', 731 path: '/examSchedule',
704 meta: {}, 732 meta: {},
705 name: 'Exam Schedule', 733 name: 'Exam Schedule',
706 props: (route) => ({ 734 props: (route) => ({
707 type: route.query.type 735 type: route.query.type
708 }), 736 }),
709 component: () => 737 component: () =>
710 import( 738 import (
711 /* webpackChunkName: "routes" */ 739 /* webpackChunkName: "routes" */
712 /* webpackMode: "lazy-once" */ 740 /* webpackMode: "lazy-once" */
713 `@/pages/Exam/examSchedule.vue` 741 `@/pages/Exam/examSchedule.vue`
714 ) 742 )
715 }, 743 },
716 { 744 {
717 path: '/examAttendence', 745 path: '/examAttendence',
718 meta: {}, 746 meta: {},
719 name: 'Exam Attendence', 747 name: 'Exam Attendence',
720 props: (route) => ({ 748 props: (route) => ({
721 type: route.query.type 749 type: route.query.type
722 }), 750 }),
723 component: () => 751 component: () =>
724 import( 752 import (
725 /* webpackChunkName: "routes" */ 753 /* webpackChunkName: "routes" */
726 /* webpackMode: "lazy-once" */ 754 /* webpackMode: "lazy-once" */
727 `@/pages/Exam/examAttendence.vue` 755 `@/pages/Exam/examAttendence.vue`
728 ) 756 )
729 }, 757 },
730 { 758 {
731 path: '/mark', 759 path: '/mark',
732 meta: {}, 760 meta: {},
733 name: 'Mark', 761 name: 'Mark',
734 props: (route) => ({ 762 props: (route) => ({
735 type: route.query.type 763 type: route.query.type
736 }), 764 }),
737 component: () => 765 component: () =>
738 import( 766 import (
739 /* webpackChunkName: "routes" */ 767 /* webpackChunkName: "routes" */
740 /* webpackMode: "lazy-once" */ 768 /* webpackMode: "lazy-once" */
741 `@/pages/Mark/mark.vue` 769 `@/pages/Mark/mark.vue`
742 ) 770 )
743 }, 771 },
744 { 772 {
745 path: '/viewMark/:markId', 773 path: '/viewMark/:markId',
746 meta: {}, 774 meta: {},
747 name: 'view Mark', 775 name: 'view Mark',
748 props: (route) => ({ 776 props: (route) => ({
749 type: route.query.type 777 type: route.query.type
750 }), 778 }),
751 component: () => 779 component: () =>
752 import( 780 import (
753 /* webpackChunkName: "routes" */ 781 /* webpackChunkName: "routes" */
754 /* webpackMode: "lazy-once" */ 782 /* webpackMode: "lazy-once" */
755 `@/pages/Mark/viewMark.vue` 783 `@/pages/Mark/viewMark.vue`
756 ) 784 )
757 }, 785 },
758 { 786 {
759 path: '/markDistribution', 787 path: '/markDistribution',
760 meta: {}, 788 meta: {},
761 name: 'Mark Distribution', 789 name: 'Mark Distribution',
762 props: (route) => ({ 790 props: (route) => ({
763 type: route.query.type 791 type: route.query.type
764 }), 792 }),
765 component: () => 793 component: () =>
766 import( 794 import (
767 /* webpackChunkName: "routes" */ 795 /* webpackChunkName: "routes" */
768 /* webpackMode: "lazy-once" */ 796 /* webpackMode: "lazy-once" */
769 `@/pages/Mark/markDistribution.vue` 797 `@/pages/Mark/markDistribution.vue`
770 ) 798 )
771 }, 799 },
772 { 800 {
773 path: '/meet', 801 path: '/meet',
774 meta: {}, 802 meta: {},
775 name: 'Meet', 803 name: 'Meet',
776 props: (route) => ({ 804 props: (route) => ({
777 type: route.query.type 805 type: route.query.type
778 }), 806 }),
779 component: () => 807 component: () =>
780 import( 808 import (
781 /* webpackChunkName: "routes" */ 809 /* webpackChunkName: "routes" */
782 /* webpackMode: "lazy-once" */ 810 /* webpackMode: "lazy-once" */
783 `@/pages/Meet/meet.vue` 811 `@/pages/Meet/meet.vue`
784 ) 812 )
785 }, 813 },
786 { 814 {
787 path: '/academicYear', 815 path: '/academicYear',
788 meta: {}, 816 meta: {},
789 name: 'Academic Year', 817 name: 'Academic Year',
790 props: (route) => ({ 818 props: (route) => ({
791 type: route.query.type 819 type: route.query.type
792 }), 820 }),
793 component: () => 821 component: () =>
794 import( 822 import (
795 /* webpackChunkName: "routes" */ 823 /* webpackChunkName: "routes" */
796 /* webpackMode: "lazy-once" */ 824 /* webpackMode: "lazy-once" */
797 `@/pages/Administrator/academicYear.vue` 825 `@/pages/Administrator/academicYear.vue`
798 ) 826 )
799 }, 827 },
800 { 828 {
801 path: '/systemAdmin', 829 path: '/systemAdmin',
802 meta: {}, 830 meta: {},
803 name: 'System Admin', 831 name: 'System Admin',
804 props: (route) => ({ 832 props: (route) => ({
805 type: route.query.type 833 type: route.query.type
806 }), 834 }),
807 component: () => 835 component: () =>
808 import( 836 import (
809 /* webpackChunkName: "routes" */ 837 /* webpackChunkName: "routes" */
810 /* webpackMode: "lazy-once" */ 838 /* webpackMode: "lazy-once" */
811 `@/pages/Administrator/systemAdmin.vue` 839 `@/pages/Administrator/systemAdmin.vue`
812 ) 840 )
813 }, 841 },
814 { 842 {
815 path: '/resetPassword', 843 path: '/resetPassword',
816 meta: {}, 844 meta: {},
817 name: 'Change Password', 845 name: 'Change Password',
818 props: (route) => ({ 846 props: (route) => ({
819 type: route.query.type 847 type: route.query.type
820 }), 848 }),
821 component: () => 849 component: () =>
822 import( 850 import (
823 /* webpackChunkName: "routes" */ 851 /* webpackChunkName: "routes" */
824 /* webpackMode: "lazy-once" */ 852 /* webpackMode: "lazy-once" */
825 `@/pages/Administrator/resetPassword.vue` 853 `@/pages/Administrator/resetPassword.vue`
826 ) 854 )
827 }, 855 },
828 { 856 {
829 path: '/role', 857 path: '/role',
830 meta: {}, 858 meta: {},
831 name: 'Role', 859 name: 'Role',
832 props: (route) => ({ 860 props: (route) => ({
833 type: route.query.type 861 type: route.query.type
834 }), 862 }),
835 component: () => 863 component: () =>
836 import( 864 import (
837 /* webpackChunkName: "routes" */ 865 /* webpackChunkName: "routes" */
838 /* webpackMode: "lazy-once" */ 866 /* webpackMode: "lazy-once" */
839 `@/pages/Administrator/role.vue` 867 `@/pages/Administrator/role.vue`
840 ) 868 )
841 }, 869 },
842 { 870 {
843 path: '/bulkImport', 871 path: '/bulkImport',
844 meta: {}, 872 meta: {},
845 name: 'Bulk Import', 873 name: 'Bulk Import',
846 props: (route) => ({ 874 props: (route) => ({
847 type: route.query.type 875 type: route.query.type
848 }), 876 }),
849 component: () => 877 component: () =>
850 import( 878 import (
851 /* webpackChunkName: "routes" */ 879 /* webpackChunkName: "routes" */
852 /* webpackMode: "lazy-once" */ 880 /* webpackMode: "lazy-once" */
853 `@/pages/Administrator/bulkImport.vue` 881 `@/pages/Administrator/bulkImport.vue`
854 ) 882 )
855 }, 883 },
856 { 884 {
857 path: '/studentReport', 885 path: '/studentReport',
858 meta: {}, 886 meta: {},
859 name: 'Student Report', 887 name: 'Student Report',
860 props: (route) => ({ 888 props: (route) => ({
861 type: route.query.type 889 type: route.query.type
862 }), 890 }),
863 component: () => 891 component: () =>
864 import( 892 import (
865 /* webpackChunkName: "routes" */ 893 /* webpackChunkName: "routes" */
866 /* webpackMode: "lazy-once" */ 894 /* webpackMode: "lazy-once" */
867 `@/pages/Report/studentReport.vue` 895 `@/pages/Report/studentReport.vue`
868 ) 896 )
869 }, 897 },
870 { 898 {
871 path: '/progressCardReport', 899 path: '/progressCardReport',
872 meta: {}, 900 meta: {},
873 name: 'Progress Card Report', 901 name: 'Progress Card Report',
874 props: (route) => ({ 902 props: (route) => ({
875 type: route.query.type 903 type: route.query.type
876 }), 904 }),
877 component: () => 905 component: () =>
878 import( 906 import (
879 /* webpackChunkName: "routes" */ 907 /* webpackChunkName: "routes" */
880 /* webpackMode: "lazy-once" */ 908 /* webpackMode: "lazy-once" */
881 `@/pages/Report/progressCardReport.vue` 909 `@/pages/Report/progressCardReport.vue`
882 ) 910 )
883 }, 911 },
884 { 912 {
885 path: '/idCard', 913 path: '/idCard',
886 meta: {}, 914 meta: {},
887 name: 'Id Card Report', 915 name: 'Id Card Report',
888 props: (route) => ({ 916 props: (route) => ({
889 type: route.query.type 917 type: route.query.type
890 }), 918 }),
891 component: () => 919 component: () =>
892 import( 920 import (
893 `@/pages/Report/idCard.vue` 921 `@/pages/Report/idCard.vue`
894 ) 922 )
895 }, 923 },
896 { 924 {
897 path: '/admitCard', 925 path: '/admitCard',
898 meta: {}, 926 meta: {},
899 name: 'Admit Card Report', 927 name: 'Admit Card Report',
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 `@/pages/Report/admitCard.vue` 933 `@/pages/Report/admitCard.vue`
906 ) 934 )
907 }, 935 },
908 { 936 {
909 path: '/generalSetting', 937 path: '/generalSetting',
910 meta: {}, 938 meta: {},
911 name: 'General Setting', 939 name: 'General Setting',
912 props: (route) => ({ 940 props: (route) => ({
913 type: route.query.type 941 type: route.query.type
914 }), 942 }),
915 component: () => 943 component: () =>
916 import( 944 import (
917 /* webpackChunkName: "routes" */ 945 /* webpackChunkName: "routes" */
918 /* webpackMode: "lazy-once" */ 946 /* webpackMode: "lazy-once" */
919 `@/pages/generalSetting/generalSetting.vue` 947 `@/pages/generalSetting/generalSetting.vue`
920 ) 948 )
921 }, 949 },
922 { 950 {
923 path: '/assignment', 951 path: '/assignment',
924 meta: {}, 952 meta: {},
925 name: 'Assignment', 953 name: 'Assignment',
926 props: (route) => ({ 954 props: (route) => ({
927 type: route.query.type 955 type: route.query.type
928 }), 956 }),
929 component: () => 957 component: () =>
930 import( 958 import (
931 `@/pages/Academic/assignment.vue` 959 `@/pages/Academic/assignment.vue`
932 ) 960 )
933 }, 961 },
934 { 962 {
935 path: '/routine', 963 path: '/routine',
936 meta: {}, 964 meta: {},
937 name: 'Routine', 965 name: 'Routine',
938 props: (route) => ({ 966 props: (route) => ({
939 type: route.query.type 967 type: route.query.type
940 }), 968 }),
941 component: () => 969 component: () =>
942 import( 970 import (
943 `@/pages/Academic/routine.vue` 971 `@/pages/Academic/routine.vue`
944 ) 972 )
945 }, 973 },
946 { 974 {
947 path: '/subject', 975 path: '/subject',
948 meta: {}, 976 meta: {},
949 name: 'Subject', 977 name: 'Subject',
950 props: (route) => ({ 978 props: (route) => ({
951 type: route.query.type 979 type: route.query.type
952 }), 980 }),
953 component: () => 981 component: () =>
954 import( 982 import (
955 `@/pages/Academic/subject.vue` 983 `@/pages/Academic/subject.vue`
956 ) 984 )
957 }, 985 },
958 { 986 {
959 path: '/syllabus', 987 path: '/syllabus',
960 meta: {}, 988 meta: {},
961 name: 'Syllabus', 989 name: 'Syllabus',
962 props: (route) => ({ 990 props: (route) => ({
963 type: route.query.type 991 type: route.query.type
964 }), 992 }),
965 component: () => 993 component: () =>
966 import( 994 import (
967 `@/pages/Academic/syllabus.vue` 995 `@/pages/Academic/syllabus.vue`
968 ) 996 )
969 }, 997 },
970 { 998 {
971 path: '/course', 999 path: '/course',
972 meta: {}, 1000 meta: {},
973 name: 'Course', 1001 name: 'Course',
974 props: (route) => ({ 1002 props: (route) => ({
975 type: route.query.type 1003 type: route.query.type
976 }), 1004 }),
977 component: () => 1005 component: () =>
978 import( 1006 import (
979 /* webpackChunkName: "routes" */ 1007 /* webpackChunkName: "routes" */
980 /* webpackMode: "lazy-once" */ 1008 /* webpackMode: "lazy-once" */
981 `@/pages/Course/course.vue` 1009 `@/pages/Course/course.vue`
982 ) 1010 )
983 }, 1011 },
984 { 1012 {
985 path: '/courseDetail', 1013 path: '/courseDetail',
986 meta: {}, 1014 meta: {},
987 name: 'Course Detail', 1015 name: 'Course Detail',
988 props: (route) => ({ 1016 props: (route) => ({
989 type: route.query.type 1017 type: route.query.type
990 }), 1018 }),
991 component: () => 1019 component: () =>
992 import( 1020 import (
993 /* webpackChunkName: "routes" */ 1021 /* webpackChunkName: "routes" */
994 /* webpackMode: "lazy-once" */ 1022 /* webpackMode: "lazy-once" */
995 `@/pages/Course/courseDetail.vue` 1023 `@/pages/Course/courseDetail.vue`
996 ) 1024 )
997 }, 1025 },
998 { 1026 {
999 path: '/enrollStudents', 1027 path: '/enrollStudents',
1000 meta: {}, 1028 meta: {},
1001 name: 'Enroll Students', 1029 name: 'Enroll Students',
1002 props: (route) => ({ 1030 props: (route) => ({
1003 type: route.query.type 1031 type: route.query.type
1004 }), 1032 }),
1005 component: () => 1033 component: () =>
1006 import( 1034 import (
1007 /* webpackChunkName: "routes" */ 1035 /* webpackChunkName: "routes" */
1008 /* webpackMode: "lazy-once" */ 1036 /* webpackMode: "lazy-once" */
1009 `@/pages/Course/enrollStudents.vue` 1037 `@/pages/Course/enrollStudents.vue`
1010 ) 1038 )
1011 }, 1039 },
1012 { 1040 {
1013 path: '/changeStudents', 1041 path: '/changeStudents',
1014 meta: {}, 1042 meta: {},
1015 name: 'Change Students', 1043 name: 'Change Students',
1016 props: (route) => ({ 1044 props: (route) => ({
1017 type: route.query.type 1045 type: route.query.type
1018 }), 1046 }),
1019 component: () => 1047 component: () =>
1020 import( 1048 import (
1021 /* webpackChunkName: "routes" */ 1049 /* webpackChunkName: "routes" */
1022 /* webpackMode: "lazy-once" */ 1050 /* webpackMode: "lazy-once" */
1023 `@/pages/changeStudents/changeStudents.vue` 1051 `@/pages/changeStudents/changeStudents.vue`
1024 ) 1052 )
1025 }, 1053 },
1026 { 1054 {
1027 path: '/annoucement', 1055 path: '/annoucement',
1028 meta: {}, 1056 meta: {},
1029 name: 'Annoucement', 1057 name: 'Annoucement',
1030 props: (route) => ({ 1058 props: (route) => ({
1031 type: route.query.type 1059 type: route.query.type
1032 }), 1060 }),
1033 component: () => 1061 component: () =>
1034 import( 1062 import (
1035 /* webpackChunkName: "routes" */ 1063 /* webpackChunkName: "routes" */
1036 /* webpackMode: "lazy-once" */ 1064 /* webpackMode: "lazy-once" */
1037 `@/pages/Annoucement/annoucement.vue` 1065 `@/pages/Annoucement/annoucement.vue`
1038 ) 1066 )
1039 }, 1067 },
1040 { 1068 {
1041 path: '/meetingEvent', 1069 path: '/meetingEvent',
1042 meta: {}, 1070 meta: {},
1043 name: 'Meeting Event', 1071 name: 'Meeting Event',
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 /* webpackChunkName: "routes" */ 1077 /* webpackChunkName: "routes" */
1050 /* webpackMode: "lazy-once" */ 1078 /* webpackMode: "lazy-once" */
1051 `@/pages/meetingEvent/meetingEvent.vue` 1079 `@/pages/meetingEvent/meetingEvent.vue`
1052 ) 1080 )
1053 }, 1081 },
1054 //////SCHOOL 1082 //////SCHOOL
1055 1083
1056 { 1084 {
1057 path: '/school', 1085 path: '/school',
1058 meta: {}, 1086 meta: {},
1059 name: 'School', 1087 name: 'School',
1060 props: (route) => ({ 1088 props: (route) => ({
1061 type: route.query.type 1089 type: route.query.type
1062 }), 1090 }),
1063 component: () => 1091 component: () =>
1064 import( 1092 import (
1065 /* webpackChunkName: "routes" */ 1093 /* webpackChunkName: "routes" */
1066 /* webpackMode: "lazy-once" */ 1094 /* webpackMode: "lazy-once" */
1067 `@/pages/School/school.vue` 1095 `@/pages/School/school.vue`
1068 ) 1096 )
1069 }, 1097 },
1070 { 1098 {
1071 path: '/schooldashboard', 1099 path: '/schooldashboard',
1072 meta: {}, 1100 meta: {},
1073 name: 'View School Dashboard', 1101 name: 'View School Dashboard',
1074 props: (route) => ({ 1102 props: (route) => ({
1075 type: route.query.type 1103 type: route.query.type
1076 }), 1104 }),
1077 component: () => 1105 component: () =>
1078 import( 1106 import (
1079 /* webpackChunkName: "routes" */ 1107 /* webpackChunkName: "routes" */
1080 /* webpackMode: "lazy-once" */ 1108 /* webpackMode: "lazy-once" */
1081 `@/pages/School/viewSchoolDashboard.vue` 1109 `@/pages/School/viewSchoolDashboard.vue`
1082 ) 1110 )
1083 } 1111 }
1084 ]; 1112 ];