Commit 55f72b7d7d35e68ce6c6f12badd8465d348f43a3

Authored by Neeraj Sharma
1 parent 335f3bb8e1

add new page are notification design,all api run in notification or add logo

... ... @@ -6,7 +6,7 @@
6 6 <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700%7CMaterial+Icons' rel="stylesheet">
7 7 <!-- <script src="https://cdn.bootcss.com/echarts/4.0.4/echarts-en.min.js"></script> -->
8 8 <title>School Management</title>
9   - <!-- <link rel="shortcut icon" href="/static/ana.png" type="image/x-icon"> -->
  9 + <link rel="shortcut icon" href="/static/icon.jpeg" type="image/x-icon">
10 10 <meta name="description" content="School Management">
11 11 <!-- <meta name="keywords" content="admin, dashboard, webapp, template, responsive, material, bootstrap, crm, uikit, framework, backend, app, widgets, premium, file manamger, mail, vue, vuetify, echarts"> -->
12 12 <link href="./static/css/custom.css" rel="stylesheet" />
... ...
src/Services/http.js
... ... @@ -4,6 +4,7 @@ import store from &#39;@/store/store&#39;
4 4 export default () => {
5 5 return axios.create({
6 6 baseURL:'http://192.168.4.220:3002/v1',
  7 + // baseURL:'http://139.59.58.160:8001/v1',
7 8 headers: {
8 9 Authorization: `Bearer ${store.state.token}`
9 10 }
... ...
... ... @@ -44,11 +44,11 @@ const Menu = [
44 44 name: 'timeTable',
45 45 icon: 'event_note',
46 46 },
47   - // {
48   - // title: 'Notification',
49   - // name: 'notification',
50   - // icon: 'notifications_active',
51   - // },
  47 + {
  48 + title: 'Notification',
  49 + name: 'notification',
  50 + icon: 'notifications_active',
  51 + },
52 52 ];
53 53  
54 54  
... ...
src/components/pageHeader/AppDrawer.vue
... ... @@ -8,10 +8,10 @@
8 8 v-model="drawer"
9 9 width="260"
10 10 >
11   - <v-toolbar style="background:#39b982" >
12   - <!-- <img v-bind:src="computeLogo" height="30" class="imgLogo" alt="ana"> -->
13   - <h4 class="white--text my-3 ml-4">School-Managament</h4>
14   - <v-toolbar-title class="ml-0 pl-3">
  11 + <v-toolbar style="background:#39b982" >
  12 + <img v-bind:src="computeLogo" height="30" class="imgLogo" alt="ana">
  13 + <h5 class="white--text my-3 ml-2">School-Managament</h5>
  14 + <v-toolbar-title class="ml-0 pl-3" >
15 15 </v-toolbar-title>
16 16 </v-toolbar>
17 17 <vue-perfect-scrollbar class="drawer-menu--scroll" :settings="scrollSettings">
... ... @@ -97,9 +97,9 @@ export default {
97 97 computeGroupActive () {
98 98 return true;
99 99 },
100   - // computeLogo () {
101   - // return '/static/ana@2x.png';
102   - // },
  100 + computeLogo () {
  101 + return '/static/icon.jpeg';
  102 + },
103 103  
104 104 sideToolbarColor () {
105 105 return this.$vuetify.options.extra.sideNav;
... ... @@ -153,7 +153,7 @@ export default {
153 153 }
154 154 .imgLogo{
155 155 height: 22px;
156   - width: 62px;
  156 + width: 20px;;
157 157 }
158 158 }
159 159 </style>
... ... @@ -163,5 +163,6 @@ export default {
163 163 .theme--light .v-icon, .application .theme--light.v-icon {
164 164 color: #39b982;
165 165 }
  166 +
166 167 </style>
167 168  
... ...
src/pages/Authentication/Login.vue
... ... @@ -2,8 +2,8 @@
2 2 <v-app id="login">
3 3 <v-toolbar class="fixcolor">
4 4 <v-toolbar-items>
5   - <!-- <img src="/static/ana@2x.png" height="36" alt="ana"> -->
6   - <h3 class="white--text my-3 ml-4">School-Management</h3>
  5 + <img src="/static/icon.jpeg" height="36" alt="logo">
  6 + <h3 class="white--text my-3 ml-5 logoSchool">School-Management</h3>
7 7 </v-toolbar-items>
8 8 </v-toolbar>
9 9 <v-content>
... ... @@ -106,6 +106,7 @@ export default {
106 106 },
107 107 methods: {
108 108 login() {
  109 + this.loading = true;
109 110 var userdata = {
110 111 email: this.userLogincredentials.email,
111 112 password: this.userLogincredentials.password,
... ... @@ -117,13 +118,11 @@ export default {
117 118 .then(response => {
118 119 this.$store.dispatch("setToken", response.data.data.token);
119 120 this.$store.dispatch("Id", response.data.data.id);
120   - this.loading = true;
121   - setTimeout(() => {
122   - this.$router.push("/teachers");
123   - }, 2000);
  121 + this.loading = false;
  122 + this.$router.push("/teachers");
124 123 })
125   - .catch(err => {
126   - this.text = "Email or Password not matched !!";
  124 + .catch(error => {
  125 + this.text = error.response.data.message
127 126 this.snackbar = true;
128 127 this.loading = false;
129 128 });
... ... @@ -151,7 +150,7 @@ export default {
151 150 img {
152 151 position: absolute;
153 152 top: 13px;
154   - left: 50px;
  153 + left: 8px;
155 154 }
156 155 .v-btn--large {
157 156 padding: 0px 84px;
... ... @@ -174,10 +173,17 @@ a {
174 173 margin-left:18px;
175 174 }
176 175 img{
177   -top:16px;
178   -left:10px;
  176 +top: 21px;
  177 +left: 10px;
179 178 height: 24px;
180   -width: 66px;;
  179 +width: 33px;
  180 +}
  181 +.logoSchool{
  182 +font-size: 18px;
  183 +margin-top: 20px !important;
  184 +}
  185 +h5 {
  186 + font-size: 14px !important;
181 187 }
182 188 }
183 189 </style>
184 190 \ No newline at end of file
... ...
src/pages/Authentication/forgetpassword.vue
... ... @@ -2,8 +2,8 @@
2 2 <v-app id="login">
3 3 <v-toolbar class="fixcolors">
4 4 <v-toolbar-items>
5   - <!-- <img src="/static/ana@2x.png" height="36" alt="ana" /> -->
6   - <h3 class="white--text my-3 ml-4">School-Management</h3>
  5 + <img src="/static/icon.jpeg" height="36" alt="logo">
  6 + <h3 class="white--text my-3 ml-5 logoSchool">School-Management</h3>
7 7 </v-toolbar-items>
8 8 </v-toolbar>
9 9 <v-container fluid>
... ... @@ -249,7 +249,7 @@ export default {
249 249 img{
250 250 position:absolute;
251 251 top:13px;
252   -left:50px;
  252 +left:8px;
253 253 }
254 254 .v-btn--large {
255 255 padding: 0px 74px;
... ... @@ -267,11 +267,21 @@ h5 {
267 267 }
268 268 }
269 269 @media screen and (max-width: 600px) {
  270 +.theme--light .v-btn, .application .theme--light.v-btn {
  271 + color: white !important;
  272 +}
270 273 img{
271   -top:16px;
272   -left:10px;
  274 +top: 21px;
  275 +left: 10px;
273 276 height: 24px;
274   -width: 66px;;
  277 +width: 33px;
  278 +}
  279 +.logoSchool{
  280 +font-size: 18px;
  281 +margin-top: 20px !important;
  282 +}
  283 +.content {
  284 + padding: 0px 0px 0px 0px !important;
275 285 }
276 286 }
277 287 </style>
278 288 \ No newline at end of file
... ...
src/pages/Class/addclass.vue
... ... @@ -274,8 +274,6 @@ export default {
274 274 loading: false,
275 275 date: null,
276 276 search: "",
277   - menu: false,
278   - menu1: false,
279 277 dialog: false,
280 278 dialog1: false,
281 279 valid: true,
... ... @@ -293,7 +291,7 @@ export default {
293 291 sortable: false,
294 292 value: "No"
295 293 },
296   - { text: "Class Name", value: "name", sortable: false, align: "center" },
  294 + { text: "Class Name", value: "classNum", sortable: false, align: "center" },
297 295 { text: "Action", value: "", sortable: false, align: "center" }
298 296 ],
299 297 desserts: [],
... ... @@ -324,14 +322,6 @@ export default {
324 322 }
325 323 ]
326 324 }),
327   - watch: {
328   - menu(val) {
329   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
330   - },
331   - menu1(val) {
332   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
333   - }
334   - },
335 325 methods: {
336 326 getClassList() {
337 327 this.showLoader = true;
... ...
src/pages/Event/event.vue
... ... @@ -9,7 +9,7 @@
9 9 <v-text-field
10 10 flat
11 11 append-icon="search"
12   - label="Find your Teachers"
  12 + label="Find your Events"
13 13 v-model="search"
14 14 color="white"
15 15 dark
... ... @@ -360,8 +360,6 @@ export default {
360 360 loading: false,
361 361 date: null,
362 362 search: "",
363   - menu: false,
364   - menu1: false,
365 363 dialog: false,
366 364 dialog1: false,
367 365 valid: true,
... ... @@ -423,14 +421,6 @@ export default {
423 421 }
424 422 ]
425 423 }),
426   - watch: {
427   - menu(val) {
428   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
429   - },
430   - menu1(val) {
431   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
432   - }
433   - },
434 424 methods: {
435 425 pickFile() {
436 426 this.$refs.image.click();
... ...
src/pages/News/news.vue
... ... @@ -9,7 +9,7 @@
9 9 <v-text-field
10 10 flat
11 11 append-icon="search"
12   - label="Find your Teachers"
  12 + label="Find your News"
13 13 v-model="search"
14 14 color="white"
15 15 dark
... ... @@ -437,8 +437,6 @@ export default {
437 437 date: null,
438 438 search: "",
439 439 showLoader:false,
440   - menu: false,
441   - menu1: false,
442 440 dialog: false,
443 441 dialog1: false,
444 442 valid: true,
... ... @@ -446,7 +444,6 @@ export default {
446 444 newActive: false,
447 445 addclass: [],
448 446 addSection: [],
449   - gender: ["Male", "Female"],
450 447 AddUsercredentials: {},
451 448 pagination: {
452 449 rowsPerPage: 15
... ... @@ -465,7 +462,6 @@ export default {
465 462 value: "No"
466 463 },
467 464 { text: "Title", value: "title", sortable: false, align: "center" },
468   - // { text: "Email", value: "email", sortable: false, align: "center" },
469 465 { text: "Description", value: "description", sortable: false, align: "center" },
470 466 { text: "Action", value: "", sortable: false, align: "center" }
471 467 ],
... ... @@ -501,14 +497,6 @@ export default {
501 497 }
502 498 ]
503 499 }),
504   - watch: {
505   - menu(val) {
506   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
507   - },
508   - menu1(val) {
509   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
510   - }
511   - },
512 500 methods: {
513 501 getSections(_id) {
514 502 var token = this.$store.state.token;
... ... @@ -585,12 +573,6 @@ export default {
585 573 this.editedItem = Object.assign({}, item);
586 574 this.dialog1 = true;
587 575 },
588   - // report(item) {
589   - // this.editedIndex = this.desserts.indexOf(item);
590   - // this.editedItem = Object.assign({}, item);
591   - // this.dialog2 = true;
592   - // },
593   -
594 576 deleteItem(item) {
595 577 let deleteNews = {
596 578 newsId: item._id
... ... @@ -636,9 +618,6 @@ export default {
636 618 close1() {
637 619 this.dialog1 = false;
638 620 },
639   - // close2() {
640   - // this.dialog2 = false;
641   - // },
642 621 submit() {
643 622 if (this.$refs.form.validate()) {
644 623 let imageData = new FormData();
... ... @@ -719,9 +698,6 @@ export default {
719 698 this.$router.replace({ path: "/" });
720 699 });
721 700 },
722   -
723   - // console.log("Id",this.$store.state.id)
724   - // console.log("token",this.$store.state.token)
725 701 computed: {
726 702 toolbarColor() {
727 703 return this.$vuetify.options.extra.mainNav;
... ...
src/pages/Notification/notification.vue
... ... @@ -0,0 +1,742 @@
  1 +<template>
  2 + <v-app id="pages-dasboard">
  3 + <v-toolbar class="fixcolors" fixed app>
  4 + <v-toolbar-title class="ml-0 pl-3">
  5 + <v-toolbar-side-icon @click.stop="handleDrawerToggle" class="hide"></v-toolbar-side-icon>
  6 + </v-toolbar-title>
  7 +
  8 + <!-- ****** SEARCH ALL EXISTING REMINDER ****** -->
  9 +
  10 + <v-flex xs7 sm3 class="userSearch">
  11 + <v-text-field
  12 + flat
  13 + append-icon="search"
  14 + label="Find your Notifictaion"
  15 + v-model="search"
  16 + color="white"
  17 + dark
  18 + ></v-text-field>
  19 + </v-flex>
  20 + <v-spacer></v-spacer>
  21 + <v-menu offset-y origin="center center" :nudge-bottom="10" transition="scale-transition">
  22 + <v-btn icon large flat slot="activator">
  23 + <v-avatar size="40px">
  24 + <img src="/static/icon/user.png">
  25 + </v-avatar>
  26 + </v-btn>
  27 + <v-list class="pa-0">
  28 + <v-list-tile
  29 + v-for="(item,index) in items"
  30 + :to="!item.href ? { name: item.name } : null"
  31 + :href="item.href"
  32 + @click="item.click"
  33 + ripple="ripple"
  34 + :disabled="item.disabled"
  35 + :target="item.target"
  36 + rel="noopener"
  37 + :key="index"
  38 + >
  39 + <v-list-tile-action v-if="item.icon">
  40 + <v-icon>{{ item.icon }}</v-icon>
  41 + </v-list-tile-action>
  42 + <v-list-tile-content>
  43 + <v-list-tile-title>{{ item.title }}</v-list-tile-title>
  44 + </v-list-tile-content>
  45 + </v-list-tile>
  46 + </v-list>
  47 + </v-menu>
  48 + </v-toolbar>
  49 + <v-tabs grow slider-color="black">
  50 + <v-tab
  51 + ripple
  52 + @click="activeTab('existing')"
  53 + v-bind:class="{ active: isActive }"
  54 + id="tab"
  55 + class="subheading"
  56 + >Existing Notifictaion</v-tab>
  57 + <v-tab
  58 + ripple
  59 + @click="activeTab('new')"
  60 + v-bind:class="{ active: newActive }"
  61 + id="tab1"
  62 + User
  63 + class="subheading"
  64 + >Add New Notifictaion</v-tab>
  65 +
  66 + <!-- ****** EDITS REMINDER DETAILS ****** -->
  67 +
  68 + <v-tab-item>
  69 + <v-snackbar
  70 + :timeout="timeout"
  71 + :top="y === 'top'"
  72 + :right="x === 'right'"
  73 + :vertical="mode === 'vertical'"
  74 + v-model="snackbar"
  75 + color="success"
  76 + >{{ text }}</v-snackbar>
  77 + <v-dialog v-model="dialog" max-width="600px">
  78 + <v-flex xs12 sm12 class="">
  79 + <v-toolbar color="white">
  80 + <v-spacer></v-spacer>
  81 + <v-toolbar-title>Edit Notifictaion</v-toolbar-title>
  82 + <v-spacer></v-spacer>
  83 + </v-toolbar>
  84 + <v-card flat>
  85 + <v-form ref="form">
  86 + <v-container fluid>
  87 + <v-layout>
  88 + <v-flex
  89 + xs12
  90 + class="text-xs-center text-sm-center text-md-center text-lg-center mr-4"
  91 + >
  92 + <v-avatar size="100px">
  93 + <img src="/static/icon/user.png" v-if="!imageUrl">
  94 + </v-avatar>
  95 + <input
  96 + type="file"
  97 + style="display: none"
  98 + ref="image"
  99 + accept="image/*"
  100 + @change="onFilePicked"
  101 + >
  102 + <img
  103 + :src="imageData.imageUrl"
  104 + height="150"
  105 + v-if="imageUrl"
  106 + style="border-radius:50%; width:200px"
  107 + >
  108 + </v-flex>
  109 + </v-layout>
  110 + <v-flex xs12 sm12>
  111 + <v-layout>
  112 + <v-flex xs4 class="pt-4 subheading">
  113 + <label class="right">Title:</label>
  114 + </v-flex>
  115 + <v-flex xs5 class="ml-3">
  116 + <v-text-field
  117 + v-model="editedItem.title"
  118 + placeholder="fill your Title"
  119 + name="name"
  120 + type="text"
  121 + ></v-text-field>
  122 + </v-flex>
  123 + </v-layout>
  124 + </v-flex>
  125 + <v-flex xs12 sm12>
  126 + <v-layout>
  127 + <v-flex xs4 class="pt-4 subheading">
  128 + <label class="right">Description:</label>
  129 + </v-flex>
  130 + <v-flex xs5 class="ml-3">
  131 + <v-text-field
  132 + placeholder="fill your Description"
  133 + v-model="editedItem.description"
  134 + type="text"
  135 + ></v-text-field>
  136 + </v-flex>
  137 + </v-layout>
  138 + </v-flex>
  139 + <v-layout>
  140 + <v-flex xs12 sm10 offset-sm1>
  141 + <v-card-actions>
  142 + <v-btn round dark @click.native="close">Cancel</v-btn>
  143 + <v-spacer></v-spacer>
  144 + <v-btn round dark @click="save">Save</v-btn>
  145 + </v-card-actions>
  146 + </v-flex>
  147 + </v-layout>
  148 + </v-container>
  149 + </v-form>
  150 + </v-card>
  151 + </v-flex>
  152 + </v-dialog>
  153 +
  154 + <!-- ****** PROFILE VIEW REMINDER DEATILS ****** -->
  155 +
  156 + <v-dialog v-model="dialog1" max-width="600px">
  157 + <v-toolbar color="white">
  158 + <v-spacer></v-spacer>
  159 + <v-toolbar-title>Notification</v-toolbar-title>
  160 + <v-spacer></v-spacer>
  161 + <v-icon @click="close1">close</v-icon>
  162 + </v-toolbar>
  163 + <v-card>
  164 + <v-flex align-center justify-center layout text-xs-center>
  165 + <v-avatar size="50px" style="position:absolute; top:20px;">
  166 + <img src="/static/icon/user.png">
  167 + </v-avatar>
  168 + </v-flex>
  169 + <v-card-text>
  170 + <v-container grid-list-md>
  171 + <v-layout wrap>
  172 + <v-flex>
  173 + <br>
  174 + <br>
  175 + <v-layout>
  176 + <v-flex xs5 sm6>
  177 + <h5 class="right my-1">Title:</h5>
  178 + </v-flex>
  179 + <v-flex sm6 xs8>
  180 + <h5 class="my-1">{{ editedItem.title }}</h5>
  181 + </v-flex>
  182 + </v-layout>
  183 + <v-layout>
  184 + <v-flex xs5 sm6>
  185 + <h5 class="right my-1">Description:</h5>
  186 + </v-flex>
  187 + <v-flex sm6 xs8>
  188 + <h5 class="my-1">{{ editedItem.description }}</h5>
  189 + </v-flex>
  190 + </v-layout>
  191 + </v-flex>
  192 + </v-layout>
  193 + </v-container>
  194 + </v-card-text>
  195 + </v-card>
  196 + </v-dialog>
  197 + <v-snackbar
  198 + :timeout="timeout"
  199 + :top="y === 'top'"
  200 + :right="x === 'right'"
  201 + :vertical="mode === 'vertical'"
  202 + v-model="snackbar"
  203 + color="success"
  204 + >{{ text }}</v-snackbar>
  205 +
  206 + <!-- ****** EXISTING-USERS REMINDER TABLE ****** -->
  207 +
  208 + <v-data-table
  209 + :headers="headers"
  210 + :items="desserts"
  211 + :pagination.sync="pagination"
  212 + :search="search"
  213 + >
  214 + <template slot="items" slot-scope="props">
  215 + <td id="td" class="text-xs-center">{{ props.index}}</td>
  216 + <td id="td" class="text-xs-center">{{ props.item.title}}</td>
  217 + <td id="td" class="text-xs-center">{{ props.item.description}}</td>
  218 +
  219 + <td class="text-xs-center">
  220 + <span>
  221 + <img
  222 + style="cursor:pointer; width:25px; height:18px; "
  223 + class="mr-5"
  224 + @click="profile(props.item)"
  225 + src="/static/icon/eye1.png"
  226 + >
  227 + <img
  228 + style="cursor:pointer; width:20px; height:18px; "
  229 + class="mr-5"
  230 + @click="editItem(props.item)"
  231 + src="/static/icon/edit1.png"
  232 + >
  233 + <img
  234 + style="cursor:pointer; height:20px; "
  235 + class="mr-5"
  236 + @click="deleteItem(props.item)"
  237 + src="/static/icon/delete1.png"
  238 + >
  239 + </span>
  240 + </td>
  241 + </template>
  242 + <v-alert
  243 + slot="no-results"
  244 + :value="true"
  245 + color="error"
  246 + icon="warning"
  247 + >Your search for "{{ search }}" found no results.</v-alert>
  248 + </v-data-table>
  249 + </v-tab-item>
  250 +
  251 + <!-- ****** ADD MULTIPLE REMINDER ****** -->
  252 +
  253 + <v-tab-item>
  254 + <v-container>
  255 + <v-snackbar
  256 + :timeout="timeout"
  257 + :top="y === 'top'"
  258 + :right="x === 'right'"
  259 + :vertical="mode === 'vertical'"
  260 + v-model="snackbar"
  261 + color="success"
  262 + >{{ text }}</v-snackbar>
  263 + <v-flex xs12 sm12 class="my-4">
  264 + <v-card flat>
  265 + <v-form ref="form" v-model="valid" lazy-validation>
  266 + <v-container fluid>
  267 + <v-layout>
  268 + <v-flex
  269 + xs12
  270 + class="text-xs-center text-sm-center text-md-center text-lg-center my-4 mr-4"
  271 + >
  272 + <v-avatar size="100px">
  273 + <img src="/static/icon/user.png" v-if="!imageUrl">
  274 + </v-avatar>
  275 + <input
  276 + type="file"
  277 + style="display: none"
  278 + ref="image"
  279 + accept="image/*"
  280 + @change="onFilePicked"
  281 + >
  282 + <img
  283 + :src="imageData.imageUrl"
  284 + height="150"
  285 + v-if="imageUrl"
  286 + style="border-radius:50%; width:200px"
  287 + >
  288 + </v-flex>
  289 + </v-layout>
  290 + <v-flex xs12>
  291 + <v-layout>
  292 + <v-flex xs4 class="pt-4 subheading">
  293 + <label class="right">Title:</label>
  294 + </v-flex>
  295 + <v-flex xs4 class="ml-3">
  296 + <v-text-field
  297 + v-model="addNotification.title"
  298 + placeholder="fill your Title"
  299 + type="text"
  300 + :rules="titleRules"
  301 + required
  302 + ></v-text-field>
  303 + </v-flex>
  304 + </v-layout>
  305 + </v-flex>
  306 + <v-flex xs12>
  307 + <v-layout>
  308 + <v-flex xs4 class="pt-4 subheading">
  309 + <label class="right">Description:</label>
  310 + </v-flex>
  311 + <v-flex xs4 class="ml-3">
  312 + <v-text-field
  313 + placeholder="fill your Description"
  314 + :rules="descriptionRules"
  315 + v-model="addNotification.description"
  316 + type="text"
  317 + required
  318 + ></v-text-field>
  319 + </v-flex>
  320 + </v-layout>
  321 + </v-flex>
  322 + <v-layout>
  323 + <v-flex xs12 sm6 offset-sm3>
  324 + <v-card-actions>
  325 + <v-btn @click="clear" round dark>clear</v-btn>
  326 + <v-spacer></v-spacer>
  327 + <v-btn @click="submit" round dark :loading="loading">Add</v-btn>
  328 + </v-card-actions>
  329 + </v-flex>
  330 + </v-layout>
  331 + </v-container>
  332 + </v-form>
  333 + </v-card>
  334 + </v-flex>
  335 + </v-container>
  336 + </v-tab-item>
  337 + </v-tabs>
  338 + <div class="loader" v-if="showLoader">
  339 + <v-progress-circular indeterminate color="white"></v-progress-circular>
  340 + </div>
  341 + </v-app>
  342 +</template>
  343 +
  344 +<script>
  345 +import http from "@/Services/http.js";
  346 +import Util from "@/util";
  347 +
  348 +export default {
  349 + data: () => ({
  350 + snackbar: false,
  351 + y: "top",
  352 + x: "right",
  353 + mode: "",
  354 + timeout: 3000,
  355 + text: "",
  356 + loading: false,
  357 + date: null,
  358 + search: "",
  359 + showLoader:false,
  360 + dialog: false,
  361 + dialog1: false,
  362 + valid: true,
  363 + isActive: true,
  364 + newActive: false,
  365 + pagination: {
  366 + rowsPerPage: 15
  367 + },
  368 + imageData: {},
  369 + imageName: "",
  370 + imageUrl: "",
  371 + imageFile: "",
  372 + titleRules: [v => !!v || " Tilte is required"],
  373 + descriptionRules: [v => !!v || " Description is required"],
  374 + headers: [
  375 + {
  376 + text: "No",
  377 + align: "center",
  378 + sortable: false,
  379 + value: "No"
  380 + },
  381 + { text: "Title", value: "title", sortable: false, align: "center" },
  382 + { text: "Description", value: "description", sortable: false, align: "center" },
  383 + { text: "Action", value: "", sortable: false, align: "center" }
  384 + ],
  385 + desserts: [],
  386 + editedIndex: -1,
  387 + addNotification:{
  388 + title:'',
  389 + description:''
  390 + },
  391 + editedItem: {
  392 + title:'',
  393 + description:''
  394 + },
  395 + defaultItem: {
  396 + title:'',
  397 + description:''
  398 + },
  399 + userName: "",
  400 + items: [
  401 + {
  402 + href: "/changepassword",
  403 + title: "Change Password",
  404 + click: e => {
  405 + console.log(e);
  406 + }
  407 + },
  408 + {
  409 + href: "#",
  410 + title: "Logout",
  411 + click: e => {
  412 + window.getApp.$emit("APP_LOGOUT");
  413 + }
  414 + }
  415 + ]
  416 + }),
  417 + methods: {
  418 + pickFile() {
  419 + this.$refs.image.click();
  420 + },
  421 +
  422 + onFilePicked(e) {
  423 + // console.log(e)
  424 + const files = e.target.files;
  425 + this.imageData.upload = e.target.files[0];
  426 + if (files[0] !== undefined) {
  427 + this.imageName = files[0].name;
  428 + if (this.imageName.lastIndexOf(".") <= 0) {
  429 + return;
  430 + }
  431 + const fr = new FileReader();
  432 + fr.readAsDataURL(files[0]);
  433 + fr.addEventListener("load", () => {
  434 + this.imageUrl = fr.result;
  435 + this.imageFile = files[0]; // this is an image file that can be sent to server...
  436 + this.imageData.imageUrl = URL.createObjectURL(this.imageFile);
  437 + console.log("upload=======>", this.imageData.imageUrl);
  438 + console.log("imageFile", this.imageFile);
  439 + });
  440 + } else {
  441 + this.imageName = "";
  442 + this.imageFile = "";
  443 + this.imageUrl = "";
  444 + }
  445 + },
  446 + getNotifications() {
  447 + this.showLoader = true;
  448 + var token = this.$store.state.token;
  449 + http()
  450 + .get("/getNotificationsList", {
  451 + headers: { Authorization: "Bearer " + token }
  452 + })
  453 + .then(response => {
  454 + this.desserts = response.data.data;
  455 + this.showLoader = false;
  456 + // console.log("getNotifications=====>",this.desserts)
  457 + })
  458 + .catch(err => {
  459 + // console.log("err====>", err);
  460 + this.showLoader = false;
  461 + this.$router.replace({ path: "/" });
  462 + });
  463 + },
  464 + editItem(item) {
  465 + this.editedIndex = this.desserts.indexOf(item);
  466 + this.editedItem = Object.assign({}, item);
  467 + this.dialog = true;
  468 + },
  469 + profile(item) {
  470 + this.editedIndex = this.desserts.indexOf(item);
  471 + this.editedItem = Object.assign({}, item);
  472 + this.dialog1 = true;
  473 + },
  474 +
  475 + deleteItem(item) {
  476 + let deleteNotification = {
  477 + notificationId: item._id
  478 + };
  479 + http()
  480 + .delete(
  481 + "/deleteNotification",
  482 + confirm("Are you sure you want to delete this?") && {
  483 + params: deleteNotification
  484 + }
  485 + )
  486 + .then(response => {
  487 + // console.log("deleteNotification",deleteNotification)
  488 + if ((this.snackbar = true)) {
  489 + this.text = "Successfully Delete Notification";
  490 + }
  491 + this.getNotifications();
  492 + })
  493 + .catch(error => {
  494 + console.log(error);
  495 + });
  496 + },
  497 + activeTab(type) {
  498 + switch (type) {
  499 + case "existing":
  500 + this.newActive = false;
  501 + this.isActive = true;
  502 + break;
  503 +
  504 + default:
  505 + this.newActive = true;
  506 + this.isActive = false;
  507 + break;
  508 + }
  509 + },
  510 + close() {
  511 + this.dialog = false;
  512 + setTimeout(() => {
  513 + this.editedItem = Object.assign({}, this.defaultItem);
  514 + this.editedIndex = -1;
  515 + }, 300);
  516 + },
  517 + close1() {
  518 + this.dialog1 = false;
  519 + },
  520 + submit() {
  521 + if (this.$refs.form.validate()) {
  522 + let imageData = new FormData();
  523 + imageData.append("upload", this.imageFile);
  524 + console.log(imageData);
  525 + let create = {
  526 + title: this.addNotification.title,
  527 + description: this.addNotification.description,
  528 + // imageData
  529 + };
  530 + console.log(create)
  531 + http()
  532 + .post("/createNotification", create)
  533 + .then(response => {
  534 + console.log(create)
  535 + if ((this.snackbar = true)) {
  536 + this.text = "New user added successfully";
  537 + }
  538 + this.getNotifications();
  539 + this.clear();
  540 + })
  541 + .catch(error => {
  542 + // console.log(error);
  543 + if ((this.snackbar = true)) {
  544 + this.text = error.response.data.message;
  545 + }
  546 + });
  547 + }
  548 + },
  549 + mail() {},
  550 + download() {},
  551 + clear() {
  552 + this.$refs.form.reset();
  553 + },
  554 + save() {
  555 + let imageData = new FormData();
  556 + imageData.append("upload", this.imageFile);
  557 + console.log(imageData);
  558 + let editNotification = {
  559 + notificationId:this.editedItem._id,
  560 + title: this.editedItem.title,
  561 + description: this.editedItem.description,
  562 + // imageData
  563 + };
  564 + http()
  565 + .put("/updateNotification", editNotification)
  566 + .then(response => {
  567 + // console.log("editNotification",editNotification);
  568 + if ((this.snackbar = true)) {
  569 + this.text = "Successfully Edit Notification";
  570 + }
  571 + this.getNotifications();
  572 + })
  573 + .catch(error => {
  574 + // console.log(error);
  575 + });
  576 + this.close();
  577 + },
  578 + handleDrawerToggle() {
  579 + window.getApp.$emit("APP_DRAWER_TOGGLED");
  580 + },
  581 + handleFullScreen() {
  582 + Util.toggleFullScreen();
  583 + }
  584 + },
  585 + mounted() {
  586 + this.getNotifications();
  587 + },
  588 + computed: {
  589 + toolbarColor() {
  590 + return this.$vuetify.options.extra.mainNav;
  591 + }
  592 + }
  593 +};
  594 +</script>
  595 +<style scoped>
  596 +.v-tabs__div {
  597 + text-transform: none;
  598 +}
  599 +.v-input__prepend-outer {
  600 + margin-right: 0px !important;
  601 +}
  602 +.v-card__actions .v-btn {
  603 + margin: 0 15px;
  604 + min-width: 120px;
  605 +}
  606 +.primary {
  607 + background-color: #aaa !important;
  608 + border-color: #aaa !important;
  609 +}
  610 +h4 {
  611 + background-repeat: no-repeat;
  612 + padding: 8px;
  613 + margin: auto;
  614 + font-size: 25px;
  615 +}
  616 +#name {
  617 + position: absolute;
  618 + left: 100px;
  619 + top: 17px;
  620 +}
  621 +#icon {
  622 + position: absolute;
  623 + right: 8px;
  624 + top: 8px;
  625 +}
  626 +#m {
  627 + position: relative;
  628 + left: 135px;
  629 + top: -15px;
  630 +}
  631 +#G {
  632 + position: absolute;
  633 + top: 38px;
  634 + color: white;
  635 +}
  636 +#bt {
  637 + position: relative;
  638 + top: -20px;
  639 + left: 115px;
  640 +}
  641 +#e {
  642 + position: relative;
  643 + top: 5px;
  644 + right: -30px;
  645 + height: 17px;
  646 + cursor: pointer;
  647 +}
  648 +#d {
  649 + position: relative;
  650 + top: 5px;
  651 + right: -70px;
  652 + height: 17px;
  653 + cursor: pointer;
  654 +}
  655 +#td {
  656 + border: 1px solid #dddddd;
  657 + text-align: left;
  658 + padding: 8px;
  659 +}
  660 +#dialog {
  661 + height: 550px;
  662 +}
  663 +.active {
  664 + background-color: black;
  665 + color: white !important;
  666 +}
  667 +.activebtn {
  668 + color: black !important;
  669 +}
  670 +#flex {
  671 + height: 300px;
  672 +}
  673 +.top {
  674 + margin-top: 100px;
  675 +}
  676 +.v-tabs__item a {
  677 + font-size: 16px !important;
  678 +}
  679 +@media screen and (max-width: 769px) {
  680 + .top {
  681 + margin-top: 0 !important;
  682 + }
  683 + .userSearch .v-icon {
  684 + font-size: 20px !important;
  685 + margin-left: 20px;
  686 + }
  687 +}
  688 +@media screen and (max-width: 380px) {
  689 + .right {
  690 + float: none !important;
  691 + }
  692 + .subheading {
  693 + font-size: 14px !important;
  694 + }
  695 + .v-card__actions .v-btn {
  696 + margin: 0 0px;
  697 + min-width: 100px;
  698 + }
  699 + /* .searchIcon .v-icon {
  700 + font-size: 20px;
  701 + margin-left: 20px;
  702 +} */
  703 + .subheading {
  704 + font-size: 12px !important;
  705 + }
  706 + h5 {
  707 + font-size: 13px;
  708 + }
  709 +}
  710 +.v-icon {
  711 + font-size: 30px;
  712 +}
  713 +@media screen and (min-width: 1270px) {
  714 + .hide {
  715 + display: none;
  716 + }
  717 + /* }
  718 +@media screen and (max-width: 962px) {
  719 +.imglogo{
  720 + position: absolute;
  721 + top: 13px;
  722 + left: 13px !important;
  723 + width: 70px;
  724 + height: 24px;
  725 +} */
  726 +}
  727 +@media screen and (max-width: 420px) {
  728 + .userSearch .v-text-field .v-label {
  729 + line-height: 24px !important;
  730 + }
  731 + .userSearch .v-label {
  732 + font-size: 13px !important;
  733 + }
  734 + .v-list__tile {
  735 + font-size: 14px;
  736 + padding: 0 10px;
  737 + }
  738 + .name {
  739 + font-size: 15px;
  740 + }
  741 +}
  742 +</style>
0 743 \ No newline at end of file
... ...
src/pages/Reminder/reminder.vue
... ... @@ -9,7 +9,7 @@
9 9 <v-text-field
10 10 flat
11 11 append-icon="search"
12   - label="Find your Teachers"
  12 + label="Find your Reminder Data"
13 13 v-model="search"
14 14 color="white"
15 15 dark
... ... @@ -354,16 +354,11 @@ export default {
354 354 date: null,
355 355 search: "",
356 356 showLoader:false,
357   - menu: false,
358   - menu1: false,
359 357 dialog: false,
360 358 dialog1: false,
361 359 valid: true,
362 360 isActive: true,
363 361 newActive: false,
364   - addclass: [],
365   - addSection: [],
366   - gender: ["Male", "Female"],
367 362 AddUsercredentials: {},
368 363 pagination: {
369 364 rowsPerPage: 15
... ... @@ -374,13 +369,6 @@ export default {
374 369 imageFile: "",
375 370 titleRules: [v => !!v || " Tilte is required"],
376 371 descriptionRules: [v => !!v || " Description is required"],
377   - errorMessages: "",
378   - emailRules: [
379   - v => !!v || "E-mail is required",
380   - v =>
381   - /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) ||
382   - "E-mail must be valid"
383   - ],
384 372 headers: [
385 373 {
386 374 text: "No",
... ... @@ -424,14 +412,6 @@ export default {
424 412 }
425 413 ]
426 414 }),
427   - watch: {
428   - menu(val) {
429   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
430   - },
431   - menu1(val) {
432   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
433   - }
434   - },
435 415 methods: {
436 416 pickFile() {
437 417 this.$refs.image.click();
... ... @@ -601,19 +581,6 @@ export default {
601 581 },
602 582 mounted() {
603 583 this.getReminderList();
604   - // var token = this.$store.state.token;
605   - // http()
606   - // .get("/getReminderList", {
607   - // headers: { Authorization: "Bearer " + token }
608   - // })
609   - // .then(response => {
610   - // this.addclass = response.data.data;
611   - // // console.log("getClassesList=====>",this.addclass)
612   - // })
613   - // .catch(err => {
614   - // // console.log("err====>", err);
615   - // this.$router.replace({ path: "/" });
616   - // });
617 584 },
618 585 computed: {
619 586 toolbarColor() {
... ...
src/pages/Section/section.vue
... ... @@ -13,7 +13,7 @@
13 13 <v-text-field
14 14 flat
15 15 append-icon="search"
16   - label="Find your Teachers"
  16 + label="Find your Section Data"
17 17 v-model="search"
18 18 color="white"
19 19 dark
... ... @@ -325,8 +325,6 @@ export default {
325 325 loading: false,
326 326 date:null,
327 327 search: '',
328   - menu: false,
329   - menu1:false,
330 328 dialog: false,
331 329 dialog1: false,
332 330 valid: true,
... ... @@ -348,8 +346,8 @@ export default {
348 346 sortable: false,
349 347 value: "No"
350 348 },
351   - { text: "Class Name", value: "name", sortable: false, align: "center" },
352   - { text: "Section Name", value: "sectionName", sortable: false, align: "center" },
  349 + { text: "Class Name", value: "classData.classNum", sortable: false, align: "center" },
  350 + { text: "Section Name", value: "name", sortable: false, align: "center" },
353 351 { text: "Action", value: "", sortable: false, align: "center" }
354 352 ],
355 353 desserts: [],
... ... @@ -384,15 +382,7 @@ export default {
384 382 }
385 383 ]
386 384 }),
387   - watch: {
388   - menu (val) {
389   - val && this.$nextTick(() => (this.$refs.picker.activePicker = 'YEAR'))
390   - },
391   - menu1 (val) {
392   - val && this.$nextTick(() => (this.$refs.picker.activePicker = 'YEAR'))
393   - }
394   - },
395   - methods: {
  385 + methods: {
396 386 getSectionList() {
397 387 this.showLoader = true;
398 388 var token = this.$store.state.token;
... ...
src/pages/TimeTable/timeTable.vue
... ... @@ -9,7 +9,7 @@
9 9 <v-text-field
10 10 flat
11 11 append-icon="search"
12   - label="Find your Teachers"
  12 + label="Find your Time Talbe"
13 13 v-model="search"
14 14 color="white"
15 15 dark
... ... @@ -111,12 +111,12 @@
111 111 <label class="right">class No:</label>
112 112 </v-flex>
113 113 <v-flex xs12 sm5 class="ml-3">
114   - <v-select
  114 + <v-select
115 115 :items="addclass"
116 116 label="Select Class"
117 117 v-model="editedItem.classNum"
118 118 item-text="classNum"
119   - item-value= "_id"
  119 + item-value="_id"
120 120 @change="getSections(editedItem.classNum)"
121 121 ></v-select>
122 122 </v-flex>
... ... @@ -133,7 +133,7 @@
133 133 label="Select Section"
134 134 v-model="editedItem.selectSection"
135 135 item-text="name"
136   - item-value="_id"
  136 + item-value="_id"
137 137 ></v-select>
138 138 </v-flex>
139 139 </v-layout>
... ... @@ -235,7 +235,6 @@
235 235 <v-spacer></v-spacer>
236 236 <!-- <v-btn round dark @click="updateParticularTable">Save</v-btn> -->
237 237 <v-btn round dark @click="AddLecture">Save</v-btn>
238   -
239 238 </v-card-actions>
240 239 </v-flex>
241 240 </v-layout>
... ... @@ -322,7 +321,6 @@
322 321 <v-btn round dark @click.native="closeUpdateLectures">Cancel</v-btn>
323 322 <v-spacer></v-spacer>
324 323 <v-btn round dark @click="updateParticularTable">Save</v-btn>
325   -
326 324 </v-card-actions>
327 325 </v-flex>
328 326 </v-layout>
... ... @@ -331,7 +329,7 @@
331 329 </v-card>
332 330 </v-flex>
333 331 </v-dialog>
334   -
  332 +
335 333 <v-snackbar
336 334 :timeout="timeout"
337 335 :top="y === 'top'"
... ... @@ -343,7 +341,13 @@
343 341  
344 342 <!-- ****** EXISTING-USERS TIME-TABLE ****** -->
345 343 <v-flex xs12>
346   - <v-data-table :headers="headers" :items="desserts" item-key="_id">
  344 + <v-data-table
  345 + :headers="headers"
  346 + :items="desserts"
  347 + :pagination.sync="pagination"
  348 + :search="search"
  349 + item-key="_id"
  350 + >
347 351 <template slot="items" slot-scope="props">
348 352 <tr
349 353 style="cursor: pointer;"
... ... @@ -379,37 +383,50 @@
379 383 >
380 384 <template slot="items" slot-scope="props">
381 385 <tr>
382   - <td class="text-xs-left subheading"> <b> {{ props.item.day }} </b> </td>
  386 + <td class="text-xs-left subheading">
  387 + <b>{{ props.item.day }}</b>
  388 + </td>
383 389 <td>
384   - <b> Subject</b><br/>
385   - <b> Time In</b><br/>
386   - <b> Time Out</b>
  390 + <b>Subject</b>
  391 + <br>
  392 + <b>Time In</b>
  393 + <br>
  394 + <b>Time Out</b>
387 395 </td>
388 396 <td v-for="list in props.item.lectures">
389   - <b> {{ list.subjectName }} </b>
  397 + <b>{{ list.subjectName }}</b>
390 398 <img
391   - style="cursor:pointer; width:20px; height:18px; "
392   - class="mr-2 ml-2"
393   - src="/static/icon/edit1.png"
394   - @click="updateTimeTable(list, timeTableList)"
395   - >
396   - <img
397   - style="cursor:pointer; height:20px; "
398   - src="/static/icon/delete1.png"
399   - @click="deleteTimeTable(list, timeTableList)"
400   - >
401   - <br/> {{list.timeIn.slice(0,16)}} <br/> {{list.timeOut.slice(0,16)}}
  399 + style="cursor:pointer; width:20px; height:18px; "
  400 + class="mr-2 ml-2"
  401 + src="/static/icon/edit1.png"
  402 + @click="updateTimeTable(list, timeTableList)"
  403 + >
  404 + <img
  405 + style="cursor:pointer; height:20px; "
  406 + src="/static/icon/delete1.png"
  407 + @click="deleteTimeTable(list, timeTableList)"
  408 + >
  409 + <br>
  410 + {{list.timeIn.slice(0,16)}}
  411 + <br>
  412 + {{list.timeOut.slice(0,16)}}
402 413 </td>
403   - <td >
404   - <v-icon
405   - color="black"
406   - @click="addLecture(props.item._id, timeTableList._id)"
407   - >add_circle_outline</v-icon>
  414 + <td>
  415 + <v-icon
  416 + color="black"
  417 + @click="addLecture(props.item._id, timeTableList._id)"
  418 + >add_circle_outline</v-icon>
408 419 </td>
409 420 </tr>
410 421 </template>
411 422 </v-data-table>
412 423 </template>
  424 + <v-alert
  425 + slot="no-results"
  426 + :value="true"
  427 + color="error"
  428 + icon="warning"
  429 + >Your search for "{{ search }}" found no results.</v-alert>
413 430 </v-data-table>
414 431 <br>
415 432 <br>
... ... @@ -625,11 +642,9 @@ export default {
625 642 snackbar: false,
626 643 loading: false,
627 644 showLoader: false,
628   - menu: false,
629   - menu1: false,
630 645 dialog: false,
631   - dialogAddLecture : false,
632   - dialogUpdateLectures:false,
  646 + dialogAddLecture: false,
  647 + dialogUpdateLectures: false,
633 648 dialog1: false,
634 649 valid: true,
635 650 // validLeacture:true,
... ... @@ -660,13 +675,13 @@ export default {
660 675 },
661 676 {
662 677 text: "Class Name",
663   - value: "subjectName",
  678 + value: "classData.classNum",
664 679 sortable: false,
665 680 align: "center"
666 681 },
667 682 {
668 683 text: "Section Name",
669   - value: "sectionData",
  684 + value: "sectionData.name",
670 685 sortable: false,
671 686 align: "center"
672 687 },
... ... @@ -706,24 +721,24 @@ export default {
706 721 selectTeacher: ""
707 722 },
708 723 editedItem: {
709   - classNum:"",
  724 + classNum: "",
710 725 selectSection: ""
711 726 },
712 727 addlectures: {
713   - timeIn: "",
714   - timeOut: "",
715   - subjectName: "",
716   - teacherId: "",
717   - scheduleId:"",
718   - timeTableId:""
  728 + timeIn: "",
  729 + timeOut: "",
  730 + subjectName: "",
  731 + teacherId: "",
  732 + scheduleId: "",
  733 + timeTableId: ""
719 734 },
720   - updateLectures:{
721   - timeIn: "",
722   - timeOut: "",
723   - subjectName: "",
724   - teacherId: "",
725   - lectureId:"",
726   - scheduleId:"",
  735 + updateLectures: {
  736 + timeIn: "",
  737 + timeOut: "",
  738 + subjectName: "",
  739 + teacherId: "",
  740 + lectureId: "",
  741 + scheduleId: ""
727 742 },
728 743 items: [
729 744 {
... ... @@ -742,14 +757,6 @@ export default {
742 757 }
743 758 ]
744 759 }),
745   - watch: {
746   - menu(val) {
747   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
748   - },
749   - menu1(val) {
750   - val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
751   - }
752   - },
753 760 methods: {
754 761 getSections(_id) {
755 762 var token = this.$store.state.token;
... ... @@ -841,31 +848,35 @@ export default {
841 848 this.editedItem = Object.assign({}, item);
842 849 this.dialog = true;
843 850 },
844   - updateTimeTable(timeToUpdate, classToUpdate){
845   - console.log('timeToUpdate, classToUpdate', timeToUpdate._id, classToUpdate.schedule);
846   - for (let i = 0; i < classToUpdate.schedule.length; i++){
847   - this.updateLectures.scheduleId = classToUpdate.schedule[i]._id;
  851 + updateTimeTable(timeToUpdate, classToUpdate) {
  852 + console.log(
  853 + "timeToUpdate, classToUpdate",
  854 + timeToUpdate._id,
  855 + classToUpdate.schedule
  856 + );
  857 + for (let i = 0; i < classToUpdate.schedule.length; i++) {
  858 + this.updateLectures.scheduleId = classToUpdate.schedule[i]._id;
848 859 }
849   - this.updateLectures.lectureId = timeToUpdate._id,
850   - this.updateLectures= timeToUpdate
  860 + (this.updateLectures.lectureId = timeToUpdate._id),
  861 + (this.updateLectures = timeToUpdate);
851 862 this.dialogUpdateLectures = true;
852 863 },
853   - addLecture(scheduleId, timeTableId){
  864 + addLecture(scheduleId, timeTableId) {
854 865 // console.log('timeToAdd, classToAdd', scheduleId, timeTableId);
855   - this.addlectures.scheduleId = scheduleId
856   - this.addlectures.timeTableId = timeTableId
  866 + this.addlectures.scheduleId = scheduleId;
  867 + this.addlectures.timeTableId = timeTableId;
857 868 this.dialogAddLecture = true;
858 869 },
859   - AddLecture(){
  870 + AddLecture() {
860 871 if (this.$refs.form.validate()) {
861   - http()
  872 + http()
862 873 .post("/addLecture", this.addlectures)
863 874 .then(response => {
864 875 // console.log("addTimeTable=====>", this.addlectures);
865 876 if ((this.snackbar = true)) {
866 877 this.text = "New Add Lecture successfully";
867 878 }
868   - this.closedialogLecture();
  879 + this.closedialogLecture();
869 880 })
870 881 .catch(error => {
871 882 if ((this.snackbar = true)) {
... ... @@ -874,31 +885,31 @@ export default {
874 885 });
875 886 }
876 887 },
877   - updateParticularTable(){
878   - let EditLecture = {
879   - lectureId:this.updateLectures.lectureId,
880   - scheduleId:this.updateLectures.scheduleId,
881   - updatedLecture:{
882   - timeIn:this.updateLectures.timeIn,
883   - timeOut: this.updateLectures.timeOut,
884   - subjectName: this.updateLectures.subjectName,
885   - teacherId: this.updateLectures.teacherId,
886   - }
887   - }
  888 + updateParticularTable() {
  889 + let EditLecture = {
  890 + lectureId: this.updateLectures.lectureId,
  891 + scheduleId: this.updateLectures.scheduleId,
  892 + updatedLecture: {
  893 + timeIn: this.updateLectures.timeIn,
  894 + timeOut: this.updateLectures.timeOut,
  895 + subjectName: this.updateLectures.subjectName,
  896 + teacherId: this.updateLectures.teacherId
  897 + }
  898 + };
888 899 console.log("updateLecture", EditLecture);
889   - http()
890   - .put("/updateLecture", EditLecture)
891   - .then(response => {
892   - console.log("updateLecture", EditLecture);
893   - if ((this.snackbar = true)) {
894   - this.text = "Successfully Edit Update Lecture";
895   - }
896   - this.$router.go(0)
897   - })
898   - .catch(error => {
899   - // console.log(error);
900   - });
901   - this.closeUpdateLectures()
  900 + http()
  901 + .put("/updateLecture", EditLecture)
  902 + .then(response => {
  903 + console.log("updateLecture", EditLecture);
  904 + if ((this.snackbar = true)) {
  905 + this.text = "Successfully Edit Update Lecture";
  906 + }
  907 + this.$router.go(0);
  908 + })
  909 + .catch(error => {
  910 + // console.log(error);
  911 + });
  912 + this.closeUpdateLectures();
902 913 },
903 914 deleteItem(item) {
904 915 let deleteTimeTable = {
... ... @@ -942,14 +953,14 @@ export default {
942 953 this.editedIndex = -1;
943 954 }, 300);
944 955 },
945   - close1() {
  956 + close1() {
946 957 this.dialog1 = false;
947 958 },
948 959 closedialogLecture() {
949 960 this.dialogAddLecture = false;
950   - this.$router.go(0)
  961 + this.$router.go(0);
951 962 },
952   - closeUpdateLectures(){
  963 + closeUpdateLectures() {
953 964 this.dialogUpdateLectures = false;
954 965 },
955 966 submit() {
... ... @@ -1008,18 +1019,18 @@ export default {
1008 1019 sectionId: this.editedItem.selectSection
1009 1020 // imageData
1010 1021 };
1011   - http()
1012   - .put("/updateTimeTable", editTimeTable)
1013   - .then(response => {
1014   - console.log("editTimeTable",editTimeTable);
1015   - if ((this.snackbar = true)) {
1016   - this.text = "Successfully Edit Existing User";
1017   - }
1018   - this.getTimeTableList();
1019   - })
1020   - .catch(error => {
1021   - // console.log(error);
1022   - });
  1022 + http()
  1023 + .put("/updateTimeTable", editTimeTable)
  1024 + .then(response => {
  1025 + console.log("editTimeTable", editTimeTable);
  1026 + if ((this.snackbar = true)) {
  1027 + this.text = "Successfully Edit Existing User";
  1028 + }
  1029 + this.getTimeTableList();
  1030 + })
  1031 + .catch(error => {
  1032 + // console.log(error);
  1033 + });
1023 1034 this.close();
1024 1035 },
1025 1036 handleDrawerToggle() {
... ... @@ -1028,7 +1039,7 @@ export default {
1028 1039 handleFullScreen() {
1029 1040 Util.toggleFullScreen();
1030 1041 },
1031   - deleteTimeTable(timeToDelete){
  1042 + deleteTimeTable(timeToDelete) {
1032 1043 // console.log('timeToUpdate', timeToDelete._id);
1033 1044 let deleteLecture = {
1034 1045 lectureId: timeToDelete._id
... ... @@ -1045,13 +1056,13 @@ export default {
1045 1056 if ((this.snackbar = true)) {
1046 1057 this.text = "Successfully delete Existing User";
1047 1058 }
1048   - this.$router.go(0)
  1059 + this.$router.go(0);
1049 1060 // this.getTimeTable();
1050 1061 })
1051 1062 .catch(error => {
1052 1063 console.log(error);
1053 1064 });
1054   - },
  1065 + }
1055 1066 },
1056 1067 mounted() {
1057 1068 this.getTimeTableList();
... ... @@ -1088,8 +1099,9 @@ export default {
1088 1099 };
1089 1100 </script>
1090 1101 <style scoped>
1091   -.theme--light .v-label, .application .theme--light.v-label {
1092   - color: black;
  1102 +.theme--light .v-label,
  1103 +.application .theme--light.v-label {
  1104 + color: black;
1093 1105 }
1094 1106 .v-tabs__div {
1095 1107 text-transform: none;
... ...
src/router/paths.js
... ... @@ -154,5 +154,16 @@ export default [
154 154 /* webpackMode: "lazy-once" */
155 155 `@/pages/TimeTable/timeTable.vue`
156 156 )
  157 + },
  158 + {
  159 + path: '/notification',
  160 + meta: { },
  161 + name: 'notification',
  162 + props: (route) => ({ type: route.query.type }),
  163 + component: () => import(
  164 + /* webpackChunkName: "routes" */
  165 + /* webpackMode: "lazy-once" */
  166 + `@/pages/Notification/notification.vue`
  167 + )
157 168 }
158 169 ];
... ...