Commit 813e55a7930fcf35599672a129a91f8f08684b3f

Authored by Neeraj Sharma
1 parent 1159d4f6d0

implement parents all api and fix others bugs

1   -const Menu = [
2   -// { header: 'Apps' },
3   - {
4   - title: 'Class',
5   - // group: 'apps',
6   - name: 'addclass',
7   - icon: 'local_library',
8   - },
9   - {
10   - title: 'Section',
11   - // group: 'apps',
12   - name: 'section',
13   - icon: 'view_module',
14   - },
15   - {
16   - title: 'Teachers',
17   - // group: '',
18   - name: 'teachers',
19   - icon: 'group',
20   - },
21   - {
22   - title: 'Students',
23   - // group: 'apps',
24   - name: 'Students',
25   - icon: 'school',
26   - },
27   - // {
28   - // title: 'Event',
29   - // name: 'event',
30   - // icon: 'event_available',
31   - // },
32   - {
33   - title: 'News',
34   - name: 'news',
35   - icon: 'notification_important',
36   - },
37   - // {
38   - // title: 'Reminder',
39   - // name: 'reminder',
40   - // icon: 'alarm_add',
41   - // },
42   - {
43   - title: 'Time Table',
44   - name: 'timeTable',
45   - icon: 'event_note',
46   - },
47   - {
48   - title: 'Notification',
49   - name: 'notification',
50   - icon: 'notifications_active',
51   - },
  1 +const Menu = [
  2 + // { header: 'Apps' },
  3 + {
  4 + title: 'Class',
  5 + // group: 'apps',
  6 + name: 'addclass',
  7 + icon: 'local_library',
  8 + },
  9 + {
  10 + title: 'Section',
  11 + // group: 'apps',
  12 + name: 'section',
  13 + icon: 'view_module',
  14 + },
  15 + {
  16 + title: 'Parents',
  17 + // group: 'apps',
  18 + name: 'parents',
  19 + icon: 'group',
  20 + },
  21 + {
  22 + title: 'Teachers',
  23 + // group: '',
  24 + name: 'teachers',
  25 + icon: 'person',
  26 + },
  27 + {
  28 + title: 'Students',
  29 + // group: 'apps',
  30 + name: 'Students',
  31 + icon: 'school',
  32 + },
  33 + // {
  34 + // title: 'Event',
  35 + // name: 'event',
  36 + // icon: 'event_available',
  37 + // },
  38 + {
  39 + title: 'News',
  40 + name: 'news',
  41 + icon: 'notification_important',
  42 + },
  43 + // {
  44 + // title: 'Reminder',
  45 + // name: 'reminder',
  46 + // icon: 'alarm_add',
  47 + // },
  48 + {
  49 + title: 'Time Table',
  50 + name: 'timeTable',
  51 + icon: 'event_note',
  52 + },
  53 + {
  54 + title: 'Notification',
  55 + name: 'notification',
  56 + icon: 'notifications_active',
  57 + },
52 58 ];
53 59  
54 60  
55 61 // reorder menu
56 62 Menu.forEach((item) => {
57   - if (item.items) {
58   - item.items.sort((x, y) => {
59   - let textA = x.title.toUpperCase();
60   - let textB = y.title.toUpperCase();
61   - return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
62   - });
63   - }
  63 + if (item.items) {
  64 + item.items.sort((x, y) => {
  65 + let textA = x.title.toUpperCase();
  66 + let textB = y.title.toUpperCase();
  67 + return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
  68 + });
  69 + }
64 70 });
65 71  
66 72 -export default Menu;
  73 +export default Menu;
67 74 \ No newline at end of file
... ...
src/pages/Parent/parents.vue
... ... @@ -0,0 +1,845 @@
  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 PARENT ****** -->
  9 +
  10 + <v-flex xs7 sm3 class="userSearch">
  11 + <v-text-field
  12 + flat
  13 + append-icon="search"
  14 + label="Find Parents"
  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 Parents</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 Parents</v-tab>
  65 +
  66 + <!-- ****** EDITS Parents 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="700px" scrollable>
  78 + <v-card flat>
  79 + <v-toolbar color="grey lighten-2" flat>
  80 + <v-spacer></v-spacer>
  81 + <v-toolbar-title>
  82 + <h3>Edit Parent Profile</h3>
  83 + </v-toolbar-title>
  84 + <v-spacer></v-spacer>
  85 + <v-icon @click="close">close</v-icon>
  86 + </v-toolbar>
  87 + <v-card-text style="height: 410px;">
  88 + <v-form ref="form">
  89 + <v-container fluid>
  90 + <v-layout>
  91 + <v-flex xs12>
  92 + <v-layout>
  93 + <v-flex xs4 class="pt-4 subheading">
  94 + <label class="right">Email ID:</label>
  95 + </v-flex>
  96 + <v-flex xs8 class="ml-3">
  97 + <v-text-field
  98 + placeholder="fill your email"
  99 + v-model="editedItem.email"
  100 + type="text"
  101 + name="email"
  102 + required
  103 + ></v-text-field>
  104 + </v-flex>
  105 + </v-layout>
  106 + </v-flex>
  107 + </v-layout>
  108 + <v-layout>
  109 + <v-flex xs12>
  110 + <v-layout>
  111 + <v-flex xs4 class="pt-4 subheading">
  112 + <label class="right">Father Cell No:</label>
  113 + </v-flex>
  114 + <v-flex xs8 class="ml-3">
  115 + <v-text-field
  116 + v-model="editedItem.fatherCellNo"
  117 + placeholder="fill your father Cell Number"
  118 + name="state"
  119 + type="number"
  120 + required
  121 + ></v-text-field>
  122 + </v-flex>
  123 + </v-layout>
  124 + </v-flex>
  125 + <v-flex xs12>
  126 + <v-layout>
  127 + <v-flex xs4 class="pt-4 subheading">
  128 + <label class="right">Mother Name:</label>
  129 + </v-flex>
  130 + <v-flex xs8 class="ml-3">
  131 + <v-text-field
  132 + v-model="editedItem.motherName"
  133 + placeholder="fill your Mother Name"
  134 + name="state"
  135 + type="text"
  136 + required
  137 + ></v-text-field>
  138 + </v-flex>
  139 + </v-layout>
  140 + </v-flex>
  141 + <v-flex xs12>
  142 + <v-layout>
  143 + <v-flex xs4 class="pt-4 subheading">
  144 + <label class="right">Mother Cell No:</label>
  145 + </v-flex>
  146 + <v-flex xs8 class="ml-3">
  147 + <v-text-field
  148 + v-model="editedItem.motherCellNo"
  149 + placeholder="fill your Mother Cell Number"
  150 + name="state"
  151 + type="number"
  152 + required
  153 + ></v-text-field>
  154 + </v-flex>
  155 + </v-layout>
  156 + </v-flex>
  157 + </v-layout>
  158 + <v-layout>
  159 + <v-flex xs12 sm12>
  160 + <v-card-actions>
  161 + <v-spacer></v-spacer>
  162 + <v-btn round dark @click="save">Save</v-btn>
  163 + <v-spacer></v-spacer>
  164 + </v-card-actions>
  165 + </v-flex>
  166 + </v-layout>
  167 + </v-container>
  168 + </v-form>
  169 + </v-card-text>
  170 + </v-card>
  171 + </v-dialog>
  172 +
  173 + <!-- ****** PROFILE VIEW Parents DEATILS ****** -->
  174 +
  175 + <v-dialog v-model="dialog1" max-width="800px" scrollable>
  176 + <v-card>
  177 + <v-toolbar color="grey lighten-2" flat>
  178 + <v-spacer></v-spacer>
  179 + <v-toolbar-title>Parent Profile</v-toolbar-title>
  180 + <v-spacer></v-spacer>
  181 + <v-icon @click="close1">close</v-icon>
  182 + </v-toolbar>
  183 + <v-card-text style="height: 300px;">
  184 + <!-- <v-flex align-center justify-center layout text-xs-center class="mt-3">
  185 + <v-avatar size="160px">
  186 + <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" />
  187 + <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" />
  188 + </v-avatar>
  189 + </v-flex>-->
  190 + <v-container grid-list-md>
  191 + <v-layout wrap>
  192 + <v-flex>
  193 + <v-layout>
  194 + <v-flex xs12 sm12>
  195 + <v-layout>
  196 + <v-flex xs6>
  197 + <h5 class="right my-1">
  198 + <b>Email:</b>
  199 + </h5>
  200 + </v-flex>
  201 + <v-flex xs6>
  202 + <h5 class="my-1 left">{{ editedItem.email }}</h5>
  203 + </v-flex>
  204 + </v-layout>
  205 + </v-flex>
  206 + </v-layout>
  207 + <v-layout>
  208 + <v-flex xs12>
  209 + <v-layout>
  210 + <v-flex xs6>
  211 + <b>
  212 + <h5 class="right my-1">
  213 + <b>Fahter Name:</b>
  214 + </h5>
  215 + </b>
  216 + </v-flex>
  217 + <v-flex xs6>
  218 + <h5 class="my-1">{{ editedItem.fatherName }}</h5>
  219 + </v-flex>
  220 + </v-layout>
  221 + </v-flex>
  222 + </v-layout>
  223 + <v-layout>
  224 + <v-flex xs12>
  225 + <v-layout>
  226 + <v-flex xs6>
  227 + <b>
  228 + <h5 class="right my-1">
  229 + <b>Mother Name:</b>
  230 + </h5>
  231 + </b>
  232 + </v-flex>
  233 + <v-flex xs6>
  234 + <h5 class="my-1">{{ editedItem.motherName }}</h5>
  235 + </v-flex>
  236 + </v-layout>
  237 + </v-flex>
  238 + </v-layout>
  239 + <v-layout>
  240 + <v-flex xs12>
  241 + <v-layout>
  242 + <v-flex sm6>
  243 + <b>
  244 + <h5 class="right my-1">
  245 + <b>Father Cell No:</b>
  246 + </h5>
  247 + </b>
  248 + </v-flex>
  249 + <v-flex sm6>
  250 + <h5 class="my-1">{{ editedItem.fatherCellNo }}</h5>
  251 + </v-flex>
  252 + </v-layout>
  253 + </v-flex>
  254 + </v-layout>
  255 + <v-layout>
  256 + <v-flex xs12>
  257 + <v-layout>
  258 + <v-flex xs6>
  259 + <b>
  260 + <h5 class="right my-1">
  261 + <b>Mother Cell No:</b>
  262 + </h5>
  263 + </b>
  264 + </v-flex>
  265 + <v-flex xs6>
  266 + <h5 class="my-1">{{ editedItem.motherCellNo }}</h5>
  267 + </v-flex>
  268 + </v-layout>
  269 + </v-flex>
  270 + </v-layout>
  271 + </v-flex>
  272 + </v-layout>
  273 + </v-container>
  274 + </v-card-text>
  275 + </v-card>
  276 + </v-dialog>
  277 +
  278 + <v-snackbar
  279 + :timeout="timeout"
  280 + :top="y === 'top'"
  281 + :right="x === 'right'"
  282 + :vertical="mode === 'vertical'"
  283 + v-model="snackbar"
  284 + color="success"
  285 + >{{ text }}</v-snackbar>
  286 +
  287 + <!-- ****** EXISTING-USERS Parents TABLE ****** -->
  288 + <v-data-table
  289 + :headers="headers"
  290 + :items="parentsList"
  291 + :pagination.sync="pagination"
  292 + :search="search"
  293 + >
  294 + <template slot="items" slot-scope="props">
  295 + <td id="td" class="text-xs-center">{{ props.index}}</td>
  296 + <td id="td" class="text-xs-center">{{ props.item.email }}</td>
  297 + <td id="td" class="text-xs-center">{{ props.item.fatherName }}</td>
  298 + <td id="td" class="text-xs-center">{{ props.item.fatherCellNo }}</td>
  299 + <td id="td" class="text-xs-center">{{ props.item.motherName }}</td>
  300 + <td id="td" class="text-xs-center">{{ props.item.motherCellNo }}</td>
  301 + <td class="text-xs-center">
  302 + <span>
  303 + <img
  304 + style="cursor:pointer; width:25px; height:18px; "
  305 + class="mr-5"
  306 + @click="profile(props.item)"
  307 + src="/static/icon/eye1.png"
  308 + />
  309 + <img
  310 + style="cursor:pointer; width:20px; height:18px; "
  311 + class="mr-5"
  312 + @click="editItem(props.item)"
  313 + src="/static/icon/edit1.png"
  314 + />
  315 + </span>
  316 + </td>
  317 + </template>
  318 + <v-alert
  319 + slot="no-results"
  320 + :value="true"
  321 + color="error"
  322 + icon="warning"
  323 + >Your search for "{{ search }}" found no results.</v-alert>
  324 + </v-data-table>
  325 + </v-tab-item>
  326 +
  327 + <!-- ****** ADD PARENTS DETAILS****** -->
  328 + <v-tab-item>
  329 + <v-container fluid class="mt-5">
  330 + <v-layout align-center justify-center fill-height>
  331 + <v-flex xs12 sm8 md7 lg8>
  332 + <v-card>
  333 + <v-container fluid class>
  334 + <v-layout>
  335 + <v-flex xs12>
  336 + <v-snackbar
  337 + :timeout="timeout"
  338 + :top="y === 'top'"
  339 + :right="x === 'right'"
  340 + :vertical="mode === 'vertical'"
  341 + v-model="snackbar"
  342 + color="success"
  343 + >{{ text }}</v-snackbar>
  344 + <v-flex xs12 sm12>
  345 + <v-form ref="parentForm" v-model="valid" lazy-validation>
  346 + <v-container fluid>
  347 + <v-layout>
  348 + <v-flex xs12 sm6>
  349 + <v-layout>
  350 + <v-flex xs4 class="pt-4 subheading">
  351 + <label class="right">Parent Email Id:</label>
  352 + </v-flex>
  353 + <v-flex xs8 class="ml-3">
  354 + <v-text-field
  355 + placeholder="fill Parent email"
  356 + :rules="emailRules"
  357 + v-model="parentData.email"
  358 + type="text"
  359 + v-on:keyup="getParentDetails"
  360 + name="email"
  361 + required
  362 + ></v-text-field>
  363 + </v-flex>
  364 + </v-layout>
  365 + </v-flex>
  366 + <v-flex xs12 sm6>
  367 + <v-layout>
  368 + <v-flex xs4 class="pt-4 subheading">
  369 + <label class="right">Father Name:</label>
  370 + </v-flex>
  371 + <v-flex xs8 class="ml-3">
  372 + <v-text-field
  373 + v-model="parentData.fatherName"
  374 + :rules="fatherNameRules"
  375 + placeholder="Fill your father Name"
  376 + required
  377 + ></v-text-field>
  378 + </v-flex>
  379 + </v-layout>
  380 + </v-flex>
  381 + </v-layout>
  382 + <v-layout>
  383 + <v-flex xs12 sm6>
  384 + <v-layout>
  385 + <v-flex xs4 class="pt-4 subheading">
  386 + <label class="right">Father Cell No:</label>
  387 + </v-flex>
  388 + <v-flex xs8 class="ml-3">
  389 + <v-text-field
  390 + v-model="parentData.fatherCellNo"
  391 + placeholder="fill your father Cell Number"
  392 + name="state"
  393 + type="number"
  394 + :rules="fatheCellNoRules"
  395 + required
  396 + ></v-text-field>
  397 + </v-flex>
  398 + </v-layout>
  399 + </v-flex>
  400 + <v-flex xs12 sm6>
  401 + <v-layout>
  402 + <v-flex xs4 class="pt-4 subheading">
  403 + <label class="right">Mother Name:</label>
  404 + </v-flex>
  405 + <v-flex xs8 class="ml-3">
  406 + <v-text-field
  407 + v-model="parentData.motherName"
  408 + placeholder="fill your Mother Name"
  409 + name="state"
  410 + type="text"
  411 + :rules="motherNameRules"
  412 + required
  413 + ></v-text-field>
  414 + </v-flex>
  415 + </v-layout>
  416 + </v-flex>
  417 + </v-layout>
  418 + <v-layout>
  419 + <v-flex xs12 sm6>
  420 + <v-layout>
  421 + <v-flex xs4 class="pt-4 subheading">
  422 + <label class="right">Mother Cell No:</label>
  423 + </v-flex>
  424 + <v-flex xs8 class="ml-3">
  425 + <v-text-field
  426 + v-model="parentData.motherCellNo"
  427 + placeholder="fill your Mother Cell Number"
  428 + name="state"
  429 + type="number"
  430 + :rules="motherCellNoRules"
  431 + required
  432 + ></v-text-field>
  433 + </v-flex>
  434 + </v-layout>
  435 + </v-flex>
  436 + </v-layout>
  437 + <v-flex xs12 sm12>
  438 + <v-card-actions>
  439 + <v-btn @click="clear" round dark class="ml-4">clear</v-btn>
  440 + <v-spacer></v-spacer>
  441 + <v-btn
  442 + @click="submitParentDetails"
  443 + round
  444 + dark
  445 + :loading="loading"
  446 + v-show="showParent"
  447 + >Add</v-btn>
  448 + </v-card-actions>
  449 + </v-flex>
  450 + </v-container>
  451 + </v-form>
  452 + </v-flex>
  453 + </v-flex>
  454 + </v-layout>
  455 + </v-container>
  456 + </v-card>
  457 + </v-flex>
  458 + </v-layout>
  459 + </v-container>
  460 + </v-tab-item>
  461 + </v-tabs>
  462 + <div class="loader" v-if="showLoader">
  463 + <v-progress-circular indeterminate color="white"></v-progress-circular>
  464 + </div>
  465 + </v-app>
  466 +</template>
  467 +
  468 +<script>
  469 +import http from "@/Services/http.js";
  470 +import Util from "@/util";
  471 +import moment from "moment";
  472 +
  473 +export default {
  474 + data: () => ({
  475 + showParent: true,
  476 + snackbar: false,
  477 + y: "top",
  478 + x: "right",
  479 + mode: "",
  480 + timeout: 3000,
  481 + text: "",
  482 + showLoader: false,
  483 + loading: false,
  484 + date: null,
  485 + search: "",
  486 + menu: false,
  487 + menu1: false,
  488 + dialog: false,
  489 + dialog1: false,
  490 + valid: true,
  491 + isActive: true,
  492 + newActive: false,
  493 + AddUsercredentials: {},
  494 + pagination: {
  495 + rowsPerPage: 15
  496 + },
  497 + fatherNameRules: [v => !!v || " Father Name is required"],
  498 + fatheCellNoRules: [v => !!v || " father Cell Number is required"],
  499 + motherNameRules: [v => !!v || " Mother Name is required"],
  500 + motherCellNoRules: [v => !!v || " Mother Cell Number is required"],
  501 + errorMessages: "",
  502 + emailRules: [
  503 + v => !!v || "E-mail is required",
  504 + v =>
  505 + /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) ||
  506 + "E-mail must be valid"
  507 + ],
  508 + headers: [
  509 + {
  510 + text: "No",
  511 + align: "center",
  512 + sortable: false,
  513 + value: "No"
  514 + },
  515 + { text: "Email", value: "email", sortable: false, align: "center" },
  516 + {
  517 + text: "Father Name",
  518 + value: "fatherName",
  519 + sortable: false,
  520 + align: "center"
  521 + },
  522 + {
  523 + text: "Father Cell No",
  524 + value: "fatherName",
  525 + sortable: false,
  526 + align: "center"
  527 + },
  528 + {
  529 + text: "Mother Name",
  530 + value: "motherName",
  531 + sortable: false,
  532 + align: "center"
  533 + },
  534 + {
  535 + text: "Mother Cell No",
  536 + value: "motherCellNo",
  537 + sortable: false,
  538 + align: "center"
  539 + },
  540 + { text: "Action", value: "", sortable: false, align: "center" }
  541 + ],
  542 + parentsList: [],
  543 + editedIndex: -1,
  544 + parentData: {},
  545 + editedItem: {
  546 + fatherName: "",
  547 + fatherCellNo: "",
  548 + motherName: "",
  549 + motherCellNo: "",
  550 + email: ""
  551 + },
  552 + items: [
  553 + {
  554 + href: "/changepassword",
  555 + title: "Change Password",
  556 + click: e => {
  557 + console.log(e);
  558 + }
  559 + },
  560 + {
  561 + href: "#",
  562 + title: "Logout",
  563 + click: e => {
  564 + window.getApp.$emit("APP_LOGOUT");
  565 + }
  566 + }
  567 + ]
  568 + }),
  569 + watch: {
  570 + menu(val) {
  571 + val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
  572 + },
  573 + menu1(val) {
  574 + val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
  575 + }
  576 + },
  577 + methods: {
  578 + editItem(item) {
  579 + this.editedIndex = this.parentsList.indexOf(item);
  580 + this.editedItem = Object.assign({}, item);
  581 + this.dialog = true;
  582 + },
  583 + profile(item) {
  584 + console.log("item", item);
  585 + this.editedIndex = this.parentsList.indexOf(item);
  586 + this.editedItem = Object.assign({}, item);
  587 + this.dialog1 = true;
  588 + },
  589 + activeTab(type) {
  590 + switch (type) {
  591 + case "existing":
  592 + this.newActive = false;
  593 + this.isActive = true;
  594 + break;
  595 +
  596 + default:
  597 + this.newActive = true;
  598 + this.isActive = false;
  599 + break;
  600 + }
  601 + },
  602 + close() {
  603 + this.dialog = false;
  604 + setTimeout(() => {
  605 + this.editedItem = Object.assign({}, this.defaultItem);
  606 + this.editedIndex = -1;
  607 + }, 300);
  608 + },
  609 + close1() {
  610 + this.dialog1 = false;
  611 + },
  612 + clear() {
  613 + this.$refs.parentForm.reset();
  614 + },
  615 + save() {
  616 + this.editedItem.parentId = this.editedItem._id;
  617 + http()
  618 + .put("/updateParent", this.editedItem)
  619 + .then(response => {
  620 + if ((this.snackbar = true)) {
  621 + this.text = "Successfully Student Existing User";
  622 + }
  623 + this.getParentDetails();
  624 + this.close();
  625 + })
  626 + .catch(error => {
  627 + if ((this.snackbar = true)) {
  628 + this.text = error.response.data.statusText;
  629 + }
  630 + });
  631 + },
  632 + submitParentDetails() {
  633 + if (this.$refs.parentForm.validate()) {
  634 + let addparentDetails = {
  635 + email: this.parentData.email,
  636 + fatherName: this.parentData.fatherName,
  637 + fatherCellNo: this.parentData.fatherCellNo,
  638 + motherName: this.parentData.motherName,
  639 + motherCellNo: this.parentData.motherCellNo,
  640 + role: "PARENT"
  641 + };
  642 + this.loading = true;
  643 + http()
  644 + .post("/createParent", addparentDetails)
  645 + .then(response => {
  646 + this.parentId = response.data.data.id;
  647 + if ((this.snackbar = true)) {
  648 + this.text = "successfully";
  649 + }
  650 + this.getParentDetails();
  651 + this.clear();
  652 + this.loading = false;
  653 + })
  654 + .catch(error => {
  655 + console.log(error.response.data);
  656 + if ((this.snackbar = true)) {
  657 + this.text = error.response.data.message;
  658 + this.text = error.response.data.statusText;
  659 + }
  660 + this.loading = false;
  661 + });
  662 + }
  663 + },
  664 + getParentDetails() {
  665 + http()
  666 + .get("getParentsList", {
  667 + headers: {
  668 + Authorization: "Bearer " + this.$store.state.token
  669 + }
  670 + })
  671 + .then(response => {
  672 + this.parentsList = response.data.data;
  673 + })
  674 + .catch(error => {
  675 + console.log("err====>", error.response.data.message);
  676 + });
  677 + },
  678 + handleDrawerToggle() {
  679 + window.getApp.$emit("APP_DRAWER_TOGGLED");
  680 + },
  681 + handleFullScreen() {
  682 + Util.toggleFullScreen();
  683 + }
  684 + },
  685 + mounted() {
  686 + this.getParentDetails();
  687 + },
  688 + computed: {
  689 + toolbarColor() {
  690 + return this.$vuetify.options.extra.mainNav;
  691 + }
  692 + }
  693 +};
  694 +</script>
  695 +<style scoped>
  696 +.v-tabs__div {
  697 + text-transform: none;
  698 +}
  699 +.v-input__prepend-outer {
  700 + margin-right: 0px !important;
  701 +}
  702 +.v-card__actions .v-btn {
  703 + margin: 0 15px;
  704 + min-width: 120px;
  705 +}
  706 +.primary {
  707 + background-color: #aaa !important;
  708 + border-color: #aaa !important;
  709 +}
  710 +h4 {
  711 + background-repeat: no-repeat;
  712 + padding: 8px;
  713 + margin: auto;
  714 + font-size: 25px;
  715 +}
  716 +#name {
  717 + position: absolute;
  718 + left: 100px;
  719 + top: 17px;
  720 +}
  721 +#icon {
  722 + position: absolute;
  723 + right: 8px;
  724 + top: 8px;
  725 +}
  726 +#m {
  727 + position: relative;
  728 + left: 135px;
  729 + top: -15px;
  730 +}
  731 +#G {
  732 + position: absolute;
  733 + top: 38px;
  734 + color: white;
  735 +}
  736 +#bt {
  737 + position: relative;
  738 + top: -20px;
  739 + left: 115px;
  740 +}
  741 +#e {
  742 + position: relative;
  743 + top: 5px;
  744 + right: -30px;
  745 + height: 17px;
  746 + cursor: pointer;
  747 +}
  748 +#d {
  749 + position: relative;
  750 + top: 5px;
  751 + right: -70px;
  752 + height: 17px;
  753 + cursor: pointer;
  754 +}
  755 +#td {
  756 + border: 1px solid #dddddd;
  757 + text-align: left;
  758 + padding: 8px;
  759 +}
  760 +#dialog {
  761 + height: 550px;
  762 +}
  763 +.active {
  764 + background-color: black;
  765 + color: white !important;
  766 +}
  767 +.activebtn {
  768 + color: black !important;
  769 +}
  770 +#flex {
  771 + height: 300px;
  772 +}
  773 +.top {
  774 + margin-top: 100px;
  775 +}
  776 +.v-tabs__item a {
  777 + font-size: 16px !important;
  778 +}
  779 +@media screen and (max-width: 769px) {
  780 + .top {
  781 + margin-top: 0 !important;
  782 + }
  783 + .userSearch .v-icon {
  784 + font-size: 20px !important;
  785 + margin-left: 20px;
  786 + }
  787 +}
  788 +@media screen and (max-width: 380px) {
  789 + .pl-3 {
  790 + padding-left: 0px !important;
  791 + }
  792 + .right {
  793 + float: none !important;
  794 + }
  795 + .subheading {
  796 + font-size: 14px !important;
  797 + }
  798 + .v-card__actions .v-btn {
  799 + margin: 0 0px;
  800 + min-width: 100px;
  801 + }
  802 + /* .searchIcon .v-icon {
  803 + font-size: 20px;
  804 + margin-left: 20px;
  805 +} */
  806 + .subheading {
  807 + font-size: 12px !important;
  808 + }
  809 + h5 {
  810 + font-size: 13px;
  811 + }
  812 +}
  813 +.v-icon {
  814 + font-size: 30px;
  815 +}
  816 +@media screen and (min-width: 1270px) {
  817 + .hide {
  818 + display: none;
  819 + }
  820 + /* }
  821 +@media screen and (max-width: 962px) {
  822 +.imglogo{
  823 + position: absolute;
  824 + top: 13px;
  825 + left: 13px !important;
  826 + width: 70px;
  827 + height: 24px;
  828 +} */
  829 +}
  830 +@media screen and (max-width: 420px) {
  831 + .userSearch .v-text-field .v-label {
  832 + line-height: 24px !important;
  833 + }
  834 + .userSearch .v-label {
  835 + font-size: 13px !important;
  836 + }
  837 + .v-list__tile {
  838 + font-size: 14px;
  839 + padding: 0 10px;
  840 + }
  841 + .name {
  842 + font-size: 15px;
  843 + }
  844 +}
  845 +</style>
0 846 \ No newline at end of file
... ...
src/pages/Students/students.vue
... ... @@ -2036,8 +2036,6 @@ export default {
2036 2036 this.imageUrl = fr.result;
2037 2037 this.imageFile = files[0]; // this is an image file that can be sent to server...
2038 2038 this.imageData.imageUrl = URL.createObjectURL(this.imageFile);
2039   - console.log("upload=======>", this.imageData.imageUrl);
2040   - console.log("imageFile", this.imageFile);
2041 2039 });
2042 2040 } else {
2043 2041 this.imageName = "";
... ... @@ -2224,11 +2222,9 @@ export default {
2224 2222 if (this.imageUrl) {
2225 2223 editStudent.upload = this.imageUrl;
2226 2224 }
2227   - console.log("editStudent", editStudent);
2228 2225 http()
2229 2226 .put("/updateStudent", editStudent)
2230 2227 .then(response => {
2231   - console.log("editStudent", editStudent);
2232 2228 if ((this.snackbar = true)) {
2233 2229 this.text = "Successfully Student Existing User";
2234 2230 }
... ... @@ -2311,7 +2307,6 @@ export default {
2311 2307 })
2312 2308 .then(response => {
2313 2309 this.addclass = response.data.data;
2314   - // console.log("getClassesList=====>",this.addclass)
2315 2310 })
2316 2311 .catch(err => {
2317 2312 // console.log("err====>", err);
... ...
src/pages/Teachers/teachers.vue
1 1 <template>
2 2 <v-app id="pages-dasboard">
3   - <v-toolbar class="fixcolors" fixed app>
  3 + <v-toolbar class="fixcolors" fixed app>
4 4 <v-toolbar-title class="ml-0 pl-3">
5 5 <v-toolbar-side-icon @click.stop="handleDrawerToggle" class="hide"></v-toolbar-side-icon>
6 6 </v-toolbar-title>
... ... @@ -19,7 +19,7 @@
19 19 <v-menu offset-y origin="center center" :nudge-bottom="10" transition="scale-transition">
20 20 <v-btn icon large flat slot="activator">
21 21 <v-avatar size="40px">
22   - <img src="/static/icon/user.png">
  22 + <img src="/static/icon/user.png" />
23 23 </v-avatar>
24 24 </v-btn>
25 25 <v-list class="pa-0">
... ... @@ -71,13 +71,13 @@
71 71 color="success"
72 72 >{{ text }}</v-snackbar>
73 73 <v-dialog v-model="dialog" max-width="1100px" scrollable>
74   - <v-card flat>
75   - <v-toolbar color="grey lighten-2" flat>
  74 + <v-card flat>
  75 + <v-toolbar color="grey lighten-2" flat>
76 76 <v-spacer></v-spacer>
77 77 <v-toolbar-title>Edit Teacher Profile</v-toolbar-title>
78 78 <v-spacer></v-spacer>
79   - </v-toolbar>
80   - <v-card-text style="height: 800px;">
  79 + </v-toolbar>
  80 + <v-card-text style="height: 800px;">
81 81 <v-form ref="form">
82 82 <v-container fluid>
83 83 <v-layout>
... ... @@ -86,14 +86,20 @@
86 86 class="text-xs-center text-sm-center text-md-center text-lg-center my-4 mr-4"
87 87 >
88 88 <v-avatar size="160px">
89   - <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl && !imageUrl">
90   - <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl && !imageUrl">
91 89 <img
92   - v-if="imageUrl"
93   - :src="imageUrl"
94   - height="150"
95   - style="border-radius:50%; width:200px"
96   - >
  90 + src="/static/icon/user.png"
  91 + v-if="!editedItem.profilePicUrl && !imageUrl"
  92 + />
  93 + <img
  94 + :src="editedItem.profilePicUrl"
  95 + v-else-if="editedItem.profilePicUrl && !imageUrl"
  96 + />
  97 + <img
  98 + v-if="imageUrl"
  99 + :src="imageUrl"
  100 + height="150"
  101 + style="border-radius:50%; width:200px"
  102 + />
97 103 </v-avatar>
98 104 <input
99 105 type="file"
... ... @@ -101,7 +107,7 @@
101 107 ref="image"
102 108 accept="image/*"
103 109 @change="onFilePicked"
104   - >
  110 + />
105 111 </v-flex>
106 112 </v-layout>
107 113 <v-layout>
... ... @@ -349,29 +355,31 @@
349 355 </v-layout>
350 356 </v-container>
351 357 </v-form>
352   - </v-card-text>
353   - </v-card>
  358 + </v-card-text>
  359 + </v-card>
354 360 </v-dialog>
355 361  
356   -<!-- ****** PROFILE VIEW TEACHERS DETAILS ****** -->
  362 + <!-- ****** PROFILE VIEW TEACHERS DETAILS ****** -->
357 363  
358 364 <v-dialog v-model="dialog1" max-width="600px" scrollable>
359 365 <v-card>
360 366 <v-toolbar color="grey lighten-2" flat>
361   - <v-spacer></v-spacer>
362   - <v-toolbar-title><h3>Teacher Profile</h3></v-toolbar-title>
363   - <v-spacer></v-spacer>
364   - <v-icon @click="close1">close</v-icon>
365   - </v-toolbar>
  367 + <v-spacer></v-spacer>
  368 + <v-toolbar-title>
  369 + <h3>Teacher Profile</h3>
  370 + </v-toolbar-title>
  371 + <v-spacer></v-spacer>
  372 + <v-icon @click="close1">close</v-icon>
  373 + </v-toolbar>
366 374 <v-card-text style="height: 700px;">
367 375 <v-container grid-list-md>
368 376 <v-layout wrap>
369 377 <v-flex>
370   - <v-flex align-center justify-center layout text-xs-center>
371   - <v-avatar size="160px">
372   - <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl">
373   - <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl">
374   - </v-avatar>
  378 + <v-flex align-center justify-center layout text-xs-center>
  379 + <v-avatar size="160px">
  380 + <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" />
  381 + <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" />
  382 + </v-avatar>
375 383 </v-flex>
376 384 <v-layout>
377 385 <v-flex xs5 sm6>
... ... @@ -421,7 +429,7 @@
421 429 <h5 class="my-1">{{ editedItem.pincode }}</h5>
422 430 </v-flex>
423 431 </v-layout>
424   - <v-layout>
  432 + <v-layout>
425 433 <v-flex xs5 sm6>
426 434 <h5 class="right my-1">Mobile No:</h5>
427 435 </v-flex>
... ... @@ -446,20 +454,20 @@
446 454 </v-flex>
447 455 </v-layout>
448 456 <v-layout>
449   - <v-flex xs6 sm6 >
450   - <h5 class="right my-1">Permanent Address:</h5>
451   - </v-flex>
452   - <v-flex sm6 xs8>
453   - <h5 class="my-1">{{ editedItem.permanentAddress }}</h5>
454   - </v-flex>
  457 + <v-flex xs6 sm6>
  458 + <h5 class="right my-1">Permanent Address:</h5>
  459 + </v-flex>
  460 + <v-flex sm6 xs8>
  461 + <h5 class="my-1">{{ editedItem.permanentAddress }}</h5>
  462 + </v-flex>
455 463 </v-layout>
456 464 <v-layout>
457   - <v-flex xs6 sm6 >
458   - <h5 class="right my-1">present Address:</h5>
459   - </v-flex>
460   - <v-flex sm6 xs8>
461   - <h5 class="my-1">{{ editedItem.presentAddress }}</h5>
462   - </v-flex>
  465 + <v-flex xs6 sm6>
  466 + <h5 class="right my-1">present Address:</h5>
  467 + </v-flex>
  468 + <v-flex sm6 xs8>
  469 + <h5 class="my-1">{{ editedItem.presentAddress }}</h5>
  470 + </v-flex>
463 471 </v-layout>
464 472 </v-flex>
465 473 </v-layout>
... ... @@ -487,9 +495,11 @@
487 495 <template slot="items" slot-scope="props">
488 496 <td id="td" class="text-xs-center">{{ props.index}}</td>
489 497 <td id="td" class="text-xs-center">
490   - <v-avatar><img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl">
491   - <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl">
492   - </v-avatar></td>
  498 + <v-avatar>
  499 + <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
  500 + <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
  501 + </v-avatar>
  502 + </td>
493 503 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
494 504 <td id="td" class="text-xs-center">{{ props.item.email }}</td>
495 505 <td id="td" class="text-xs-center">{{ dates(props.item.dob) }}</td>
... ... @@ -502,19 +512,19 @@
502 512 class="mr-5"
503 513 @click="profile(props.item)"
504 514 src="/static/icon/eye1.png"
505   - >
  515 + />
506 516 <img
507 517 style="cursor:pointer; width:20px; height:18px; "
508 518 class="mr-5"
509 519 @click="editItem(props.item)"
510 520 src="/static/icon/edit1.png"
511   - >
  521 + />
512 522 <img
513 523 style="cursor:pointer; height:20px; "
514 524 class="mr-5"
515 525 @click="deleteItem(props.item)"
516 526 src="/static/icon/delete1.png"
517   - >
  527 + />
518 528 </span>
519 529 </td>
520 530 </template>
... ... @@ -548,14 +558,14 @@
548 558 class="text-xs-center text-sm-center text-md-center text-lg-center my-4 mr-4"
549 559 >
550 560 <v-avatar size="100px">
551   - <img src="/static/icon/user.png" v-if="!imageUrl">
  561 + <img src="/static/icon/user.png" v-if="!imageUrl" />
552 562 </v-avatar>
553 563 <img
554 564 :src="imageUrl"
555 565 height="150"
556 566 v-if="imageUrl"
557 567 style="border-radius:50%; width:200px"
558   - >
  568 + />
559 569 </v-flex>
560 570 </v-layout>
561 571 <v-layout>
... ... @@ -724,33 +734,33 @@
724 734 <v-flex xs4 class="pt-4 subheading">
725 735 <label class="right">Join Date</label>
726 736 </v-flex>
727   - <v-flex xs8 class="ml-3">
728   - <v-menu
729   - ref="menu1"
730   - :close-on-content-click="false"
731   - v-model="menu1"
732   - :nudge-right="40"
733   - lazy
734   - transition="scale-transition"
735   - offset-y
736   - full-width
737   - min-width="290px"
738   - >
739   - <v-text-field
740   - slot="activator"
741   - :rules="joinDateRules"
742   - v-model="addTeachers.joinDate"
743   - placeholder="Select date"
744   - ></v-text-field>
745   - <v-date-picker
746   - ref="picker"
747   - v-model="addTeachers.joinDate"
748   - :max="new Date().toISOString().substr(0, 10)"
749   - min="1950-01-01"
750   - @input="menu1 = false"
751   - ></v-date-picker>
752   - </v-menu>
753   - </v-flex>
  737 + <v-flex xs8 class="ml-3">
  738 + <v-menu
  739 + ref="menu1"
  740 + :close-on-content-click="false"
  741 + v-model="menu1"
  742 + :nudge-right="40"
  743 + lazy
  744 + transition="scale-transition"
  745 + offset-y
  746 + full-width
  747 + min-width="290px"
  748 + >
  749 + <v-text-field
  750 + slot="activator"
  751 + :rules="joinDateRules"
  752 + v-model="addTeachers.joinDate"
  753 + placeholder="Select date"
  754 + ></v-text-field>
  755 + <v-date-picker
  756 + ref="picker"
  757 + v-model="addTeachers.joinDate"
  758 + :max="new Date().toISOString().substr(0, 10)"
  759 + min="1950-01-01"
  760 + @input="menu1 = false"
  761 + ></v-date-picker>
  762 + </v-menu>
  763 + </v-flex>
754 764 </v-layout>
755 765 </v-flex>
756 766 <v-flex xs12 sm6>
... ... @@ -765,13 +775,13 @@
765 775 v-model="imageName"
766 776 append-icon="attach_file"
767 777 ></v-text-field>
768   - <input
769   - type="file"
770   - style="display:none"
771   - ref="image"
772   - accept="image/*"
773   - @change="onFilePicked"
774   - >
  778 + <input
  779 + type="file"
  780 + style="display:none"
  781 + ref="image"
  782 + accept="image/*"
  783 + @change="onFilePicked"
  784 + />
775 785 </v-flex>
776 786 </v-layout>
777 787 </v-flex>
... ... @@ -850,13 +860,13 @@ export default {
850 860 mode: "",
851 861 timeout: 3000,
852 862 text: "",
853   - showLoader:false,
  863 + showLoader: false,
854 864 loading: false,
855 865 date: null,
856 866 search: "",
857 867 menu: false,
858 868 menu1: false,
859   - menu2: false,
  869 + menu2: false,
860 870 menu3: false,
861 871 dialog: false,
862 872 dialog1: false,
... ... @@ -1102,17 +1112,32 @@ export default {
1102 1112 sortable: false,
1103 1113 value: "No"
1104 1114 },
1105   - { text: "Profile Pic", value: "profilePicUrl", sortable: false, align: "center" },
  1115 + {
  1116 + text: "Profile Pic",
  1117 + value: "profilePicUrl",
  1118 + sortable: false,
  1119 + align: "center"
  1120 + },
1106 1121 { text: "Name", value: "name", sortable: false, align: "center" },
1107 1122 { text: "Email", value: "email", sortable: false, align: "center" },
1108 1123 { text: "DOB", value: "dob", sortable: false, align: "center" },
1109   - { text: "Join Date", value: "joinDate", sortable: false, align: "center" },
1110   - { text: "Mobile No", value: "mobileNo", sortable: false, align: "center" },
  1124 + {
  1125 + text: "Join Date",
  1126 + value: "joinDate",
  1127 + sortable: false,
  1128 + align: "center"
  1129 + },
  1130 + {
  1131 + text: "Mobile No",
  1132 + value: "mobileNo",
  1133 + sortable: false,
  1134 + align: "center"
  1135 + },
1111 1136 { text: "Action", value: "", sortable: false, align: "center" }
1112 1137 ],
1113 1138 desserts: [],
1114 1139 editedIndex: -1,
1115   - upload:'',
  1140 + upload: "",
1116 1141 editedItem: {
1117 1142 role: "TEACHER",
1118 1143 name: "",
... ... @@ -1173,20 +1198,20 @@ export default {
1173 1198 }
1174 1199 },
1175 1200 methods: {
1176   - save (date) {
1177   - this.$refs.menu.save(date)
  1201 + save(date) {
  1202 + this.$refs.menu.save(date);
1178 1203 },
1179   - save (date) {
1180   - this.$refs.menu1.save(date)
  1204 + save(date) {
  1205 + this.$refs.menu1.save(date);
1181 1206 },
1182 1207 pickFile() {
1183   - this.$refs.image.click ();
  1208 + this.$refs.image.click();
1184 1209 },
1185 1210 onFilePicked(e) {
1186 1211 // console.log(e)
1187 1212 const files = e.target.files;
1188 1213 this.upload = e.target.files[0];
1189   - console.log("imageData-upload========>",this.upload)
  1214 + console.log("imageData-upload========>", this.upload);
1190 1215 if (files[0] !== undefined) {
1191 1216 this.imageName = files[0].name;
1192 1217 if (this.imageName.lastIndexOf(".") <= 0) {
... ... @@ -1199,7 +1224,7 @@ export default {
1199 1224 this.imageFile = files[0]; // this is an image file that can be sent to server...
1200 1225 // this.imageData.imageUrl = URL.createObjectURL(this.imageFile);
1201 1226 // console.log("upload=======>", this.imageData.imageUrl);
1202   - console.log("imageFile", this.imageUrl );
  1227 + console.log("imageFile", this.imageUrl);
1203 1228 });
1204 1229 } else {
1205 1230 this.imageName = "";
... ... @@ -1213,7 +1238,7 @@ export default {
1213 1238 getTeacherList() {
1214 1239 this.showLoader = true;
1215 1240 var token = this.$store.state.token;
1216   - console.log("token",token)
  1241 + console.log("token", token);
1217 1242 http()
1218 1243 .get("/getTeachersList", {
1219 1244 headers: { Authorization: "Bearer " + token }
... ... @@ -1232,8 +1257,17 @@ export default {
1232 1257 editItem(item) {
1233 1258 this.editedIndex = this.desserts.indexOf(item);
1234 1259 this.editedItem = Object.assign({}, item);
1235   - this.editedItem.dob = this.editedItem.dob != undefined ? this.editedItem.dob = this.editedItem.dob.substring(0, 10): this.editedItem.dob = ''
1236   - this.editedItem.joinDate = this.editedItem.joinDate != undefined ? this.editedItem.joinDate = this.editedItem.joinDate.substring(0, 10): this.editedItem.joinDate = ''
  1260 + this.editedItem.dob =
  1261 + this.editedItem.dob != undefined
  1262 + ? (this.editedItem.dob = this.editedItem.dob.substring(0, 10))
  1263 + : (this.editedItem.dob = "");
  1264 + this.editedItem.joinDate =
  1265 + this.editedItem.joinDate != undefined
  1266 + ? (this.editedItem.joinDate = this.editedItem.joinDate.substring(
  1267 + 0,
  1268 + 10
  1269 + ))
  1270 + : (this.editedItem.joinDate = "");
1237 1271  
1238 1272 this.dialog = true;
1239 1273 },
... ... @@ -1280,7 +1314,7 @@ export default {
1280 1314 },
1281 1315 close() {
1282 1316 this.dialog = false;
1283   - setTimeout(() => {
  1317 + setTimeout(() => {
1284 1318 this.editedItem = Object.assign({}, this.defaultItem);
1285 1319 this.editedIndex = -1;
1286 1320 }, 300);
... ... @@ -1318,7 +1352,7 @@ export default {
1318 1352 mobileNo: this.addTeachers.mobileNo,
1319 1353 state: this.addTeachers.state,
1320 1354 joinDate: this.addTeachers.joinDate,
1321   - upload:this.imageUrl
  1355 + upload: this.imageUrl
1322 1356 // upload:this.imageFile
1323 1357 };
1324 1358 // console.log("addTeacher============>", addTeacher);
... ... @@ -1350,6 +1384,7 @@ export default {
1350 1384 this.$refs.form.reset();
1351 1385 },
1352 1386 save() {
  1387 + this.loading = true;
1353 1388 let editTeacher = {
1354 1389 teacherId: this.editedItem._id,
1355 1390 name: this.editedItem.name,
... ... @@ -1363,21 +1398,21 @@ export default {
1363 1398 presentAddress: this.editedItem.presentAddress,
1364 1399 mobileNo: this.editedItem.mobileNo,
1365 1400 state: this.editedItem.state,
1366   - joinDate: this.editedItem.joinDate,
1367   - upload:this.imageUrl
  1401 + joinDate: this.editedItem.joinDate
1368 1402 };
1369   - this.loading = true;
  1403 + if (this.imageUrl) {
  1404 + editTeacher.upload = this.imageUrl;
  1405 + }
1370 1406 http()
1371 1407 .put("/updateTeacher", editTeacher)
1372 1408 .then(response => {
1373   - console.log("editTeacher",editTeacher);
  1409 + console.log("editTeacher", editTeacher);
1374 1410 if ((this.snackbar = true)) {
1375 1411 this.text = "Successfully Edit Existing Teacher";
1376 1412 }
1377 1413 this.loading = false;
1378 1414 this.getTeacherList();
1379 1415 this.close();
1380   -
1381 1416 })
1382 1417 .catch(error => {
1383 1418 console.log(error);
... ... @@ -1496,7 +1531,7 @@ h4 {
1496 1531  
1497 1532 @media screen and (max-width: 380px) {
1498 1533 .pl-3 {
1499   - padding-left: 0px !important;
  1534 + padding-left: 0px !important;
1500 1535 }
1501 1536 .right {
1502 1537 float: none !important;
... ... @@ -1508,8 +1543,8 @@ h4 {
1508 1543 margin: 0 0px;
1509 1544 min-width: 100px;
1510 1545 }
1511   - .presentInput{
1512   - padding-left:48px !important;
  1546 + .presentInput {
  1547 + padding-left: 48px !important;
1513 1548 }
1514 1549 /* .searchIcon .v-icon {
1515 1550 font-size: 20px;
... ... @@ -1521,9 +1556,8 @@ h4 {
1521 1556 h5 {
1522 1557 font-size: 13px;
1523 1558 }
1524   - .pl-4{
  1559 + .pl-4 {
1525 1560 padding-left: 0px !important;
1526   -
1527 1561 }
1528 1562 }
1529 1563 .v-icon {
... ...
src/pages/TimeTable/timeTable.vue
... ... @@ -1031,7 +1031,6 @@ export default {
1031 1031 .then(response => {
1032 1032 this.timeTableList = response.data.data;
1033 1033 this.showLoader = false;
1034   - // console.log("getParticularTimeTable=====>", this.timeTableList);
1035 1034 })
1036 1035 .catch(err => {
1037 1036 this.showLoader = false;
... ...
src/router/paths.js
1 1 export default [
2 2  
3   - {
4   - path: '*',
5   - meta: {
6   - public: true,
  3 + {
  4 + path: '*',
  5 + meta: {
  6 + public: true,
  7 + },
  8 + redirect: {
  9 + path: '/404'
  10 + }
7 11 },
8   - redirect: {
9   - path: '/404'
10   - }
11   - },
12   - {
13   - path: '/404',
14   - meta: {
15   - public: true,
  12 + {
  13 + path: '/404',
  14 + meta: {
  15 + public: true,
  16 + },
  17 + name: 'NotFound',
  18 + component: () =>
  19 + import (
  20 + /* webpackChunkName: "routes" */
  21 + /* webpackMode: "lazy-once" */
  22 + `@/pages/NotFound/NotFound.vue`
  23 + )
  24 + },
  25 + {
  26 + path: '/500',
  27 + meta: {
  28 + public: true,
  29 + },
  30 + name: 'ServerError',
  31 + component: () =>
  32 + import (
  33 + /* webpackChunkName: "routes" */
  34 + /* webpackMode: "lazy-once" */
  35 + `@/pages/NotFound/Error.vue`
  36 + )
  37 + },
  38 + {
  39 + path: '/changepassword',
  40 + meta: {},
  41 + name: 'changepassword',
  42 + props: (route) => ({ type: route.query.type }),
  43 + component: () =>
  44 + import (
  45 + /* webpackChunkName: "routes" */
  46 + /* webpackMode: "lazy-once" */
  47 + `@/pages/Authentication/changepassword.vue`
  48 + )
  49 + },
  50 + {
  51 + path: '/teachers',
  52 + meta: { breadcrumb: false },
  53 + name: 'teachers',
  54 + component: () =>
  55 + import (
  56 + /* webpackChunkName: "routes" */
  57 + /* webpackMode: "lazy-once" */
  58 + `@/pages/Teachers/teachers.vue`
  59 + )
  60 + },
  61 + {
  62 + path: '/',
  63 + meta: {
  64 + public: true,
  65 + },
  66 + name: 'Login',
  67 + component: () =>
  68 + import (
  69 + /* webpackChunkName: "routes" */
  70 + /* webpackMode: "lazy-once" */
  71 + `@/pages/Authentication/Login.vue`
  72 + )
16 73 },
17   - name: 'NotFound',
18   - component: () => import(
19   - /* webpackChunkName: "routes" */
20   - /* webpackMode: "lazy-once" */
21   - `@/pages/NotFound/NotFound.vue`
22   - )
23   - },
24   - {
25   - path: '/500',
26   - meta: {
27   - public: true,
  74 + {
  75 + path: '/forgetpassword',
  76 + meta: {
  77 + public: true,
  78 + },
  79 + name: 'forgetpassword',
  80 + component: () =>
  81 + import (
  82 + /* webpackChunkName: "routes" */
  83 + /* webpackMode: "lazy-once" */
  84 + `@/pages/Authentication/forgetpassword.vue`
  85 + )
28 86 },
29   - name: 'ServerError',
30   - component: () => import(
31   - /* webpackChunkName: "routes" */
32   - /* webpackMode: "lazy-once" */
33   - `@/pages/NotFound/Error.vue`
34   - )
35   - },
36   - {
37   - path: '/changepassword',
38   - meta: { },
39   - name: 'changepassword',
40   - props: (route) => ({ type: route.query.type }),
41   - component: () => import(
42   - /* webpackChunkName: "routes" */
43   - /* webpackMode: "lazy-once" */
44   - `@/pages/Authentication/changepassword.vue`
45   - )
46   - },
47   - {
48   - path: '/teachers',
49   - meta: { breadcrumb: false },
50   - name: 'teachers',
51   - component: () => import(
52   - /* webpackChunkName: "routes" */
53   - /* webpackMode: "lazy-once" */
54   - `@/pages/Teachers/teachers.vue`
55   - )
56   - },
57   - {
58   - path: '/',
59   - meta: {
60   - public: true,
  87 + {
  88 + path: '/students',
  89 + meta: {},
  90 + name: 'Students',
  91 + props: (route) => ({ type: route.query.type }),
  92 + component: () =>
  93 + import (
  94 + /* webpackChunkName: "routes" */
  95 + /* webpackMode: "lazy-once" */
  96 + `@/pages/Students/students.vue`
  97 + )
61 98 },
62   - name: 'Login',
63   - component: () => import(
64   - /* webpackChunkName: "routes" */
65   - /* webpackMode: "lazy-once" */
66   - `@/pages/Authentication/Login.vue`
67   - )
68   - },
69   - {
70   - path: '/forgetpassword',
71   - meta: {
72   - public: true,
  99 + {
  100 + path: '/addclass',
  101 + meta: {},
  102 + name: 'addclass',
  103 + props: (route) => ({ type: route.query.type }),
  104 + component: () =>
  105 + import (
  106 + /* webpackChunkName: "routes" */
  107 + /* webpackMode: "lazy-once" */
  108 + `@/pages/Class/addclass.vue`
  109 + )
73 110 },
74   - name: 'forgetpassword',
75   - component: () => import(
76   - /* webpackChunkName: "routes" */
77   - /* webpackMode: "lazy-once" */
78   - `@/pages/Authentication/forgetpassword.vue`
79   - )
80   - },
81   - {
82   - path: '/students',
83   - meta: { },
84   - name: 'Students',
85   - props: (route) => ({ type: route.query.type }),
86   - component: () => import(
87   - /* webpackChunkName: "routes" */
88   - /* webpackMode: "lazy-once" */
89   - `@/pages/Students/students.vue`
90   - )
91   - },
92   - {
93   - path: '/addclass',
94   - meta: { },
95   - name: 'addclass',
96   - props: (route) => ({ type: route.query.type }),
97   - component: () => import(
98   - /* webpackChunkName: "routes" */
99   - /* webpackMode: "lazy-once" */
100   - `@/pages/Class/addclass.vue`
101   - )
102   - },
103   - {
104   - path: '/section',
105   - meta: { },
106   - name: 'section',
107   - props: (route) => ({ type: route.query.type }),
108   - component: () => import(
109   - /* webpackChunkName: "routes" */
110   - /* webpackMode: "lazy-once" */
111   - `@/pages/Section/section.vue`
112   - )
113   - },
114   - // {
115   - // path: '/event',
116   - // meta: { },
117   - // name: 'event',
118   - // props: (route) => ({ type: route.query.type }),
119   - // component: () => import(
120   - // /* webpackChunkName: "routes" */
121   - // /* webpackMode: "lazy-once" */
122   - // `@/pages/Event/event.vue`
123   - // )
124   - // },
125   - {
126   - path: '/news',
127   - meta: { },
128   - name: 'news',
129   - props: (route) => ({ type: route.query.type }),
130   - component: () => import(
131   - /* webpackChunkName: "routes" */
132   - /* webpackMode: "lazy-once" */
133   - `@/pages/News/news.vue`
134   - )
135   - },
136   - // {
137   - // path: '/reminder',
138   - // meta: { },
139   - // name: 'reminder',
140   - // props: (route) => ({ type: route.query.type }),
141   - // component: () => import(
142   - // /* webpackChunkName: "routes" */
143   - // /* webpackMode: "lazy-once" */
144   - // `@/pages/Reminder/reminder.vue`
145   - // )
146   - // },
147   - {
148   - path: '/timeTable',
149   - meta: { },
150   - name: 'timeTable',
151   - props: (route) => ({ type: route.query.type }),
152   - component: () => import(
153   - /* webpackChunkName: "routes" */
154   - /* webpackMode: "lazy-once" */
155   - `@/pages/TimeTable/timeTable.vue`
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   - )
168   - }
169   -];
  111 + {
  112 + path: '/section',
  113 + meta: {},
  114 + name: 'section',
  115 + props: (route) => ({ type: route.query.type }),
  116 + component: () =>
  117 + import (
  118 + /* webpackChunkName: "routes" */
  119 + /* webpackMode: "lazy-once" */
  120 + `@/pages/Section/section.vue`
  121 + )
  122 + },
  123 + // {
  124 + // path: '/event',
  125 + // meta: { },
  126 + // name: 'event',
  127 + // props: (route) => ({ type: route.query.type }),
  128 + // component: () => import(
  129 + // /* webpackChunkName: "routes" */
  130 + // /* webpackMode: "lazy-once" */
  131 + // `@/pages/Event/event.vue`
  132 + // )
  133 + // },
  134 + {
  135 + path: '/news',
  136 + meta: {},
  137 + name: 'news',
  138 + props: (route) => ({ type: route.query.type }),
  139 + component: () =>
  140 + import (
  141 + /* webpackChunkName: "routes" */
  142 + /* webpackMode: "lazy-once" */
  143 + `@/pages/News/news.vue`
  144 + )
  145 + },
  146 + // {
  147 + // path: '/reminder',
  148 + // meta: { },
  149 + // name: 'reminder',
  150 + // props: (route) => ({ type: route.query.type }),
  151 + // component: () => import(
  152 + // /* webpackChunkName: "routes" */
  153 + // /* webpackMode: "lazy-once" */
  154 + // `@/pages/Reminder/reminder.vue`
  155 + // )
  156 + // },
  157 + {
  158 + path: '/timeTable',
  159 + meta: {},
  160 + name: 'timeTable',
  161 + props: (route) => ({ type: route.query.type }),
  162 + component: () =>
  163 + import (
  164 + /* webpackChunkName: "routes" */
  165 + /* webpackMode: "lazy-once" */
  166 + `@/pages/TimeTable/timeTable.vue`
  167 + )
  168 + },
  169 + {
  170 + path: '/notification',
  171 + meta: {},
  172 + name: 'notification',
  173 + props: (route) => ({ type: route.query.type }),
  174 + component: () =>
  175 + import (
  176 + /* webpackChunkName: "routes" */
  177 + /* webpackMode: "lazy-once" */
  178 + `@/pages/Notification/notification.vue`
  179 + )
  180 + },
  181 + {
  182 + path: '/parents',
  183 + meta: {},
  184 + name: 'parents',
  185 + props: (route) => ({ type: route.query.type }),
  186 + component: () =>
  187 + import (
  188 + /* webpackChunkName: "routes" */
  189 + /* webpackMode: "lazy-once" */
  190 + `@/pages/Parent/parents.vue`
  191 + )
  192 + }
  193 +];
170 194 \ No newline at end of file
... ...