Blame view

src/pages/Administrator/resetPassword.vue 3.71 KB
006544386   Neeraj Sharma   implement task
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
  <template>
    <v-app id="login">
      <v-container fluid fill-height>
        <v-layout>
          <v-flex xs12 sm8 md8 lg5 offset-sm2 offset-lg3 class="mt-5">
            <v-toolbar class="fixcolors mt-5" dark>
              <v-spacer></v-spacer>
              <v-toolbar-title>Reset Password</v-toolbar-title>
              <v-spacer></v-spacer>
            </v-toolbar>
            <v-card class="elevation-1 pa-3" id="form">
              <v-card-text>
                <v-flex xs12 sm8 md8 lg8 offset-sm2>
                  <v-form class="mt-3">
                    <v-select :rules="[rules.required]" label="Select Users" :tems="users"></v-select>
                    <v-select :rules="[rules.required]" label="Select Users Name" :tems="usersName"></v-select>
                    <v-text-field
                      :rules="[rules.required]"
                      v-model="user.oldPassword"
                      label="New Password"
                    ></v-text-field>
                    <v-text-field
                      v-model="user.newPassword"
                      :rules="[rules.required]"
                      label="Re-Password"
                    ></v-text-field>
                  </v-form>
                </v-flex>
              </v-card-text>
              <v-card-actions>
                <v-flex text-xs-center>
                  <v-btn
                    class="mt-3"
                    round
                    color="black"
                    dark
                    large
                    :loading="loading"
                    @click="reset"
                  >Reset Password</v-btn>
                </v-flex>
              </v-card-actions>
              <v-snackbar
                :timeout="timeout"
                :top="y === 'top'"
                :right="x === 'right'"
                :vertical="mode === 'vertical'"
                v-model="snackbar"
                :color="color"
              >{{ text }}</v-snackbar>
            </v-card>
          </v-flex>
        </v-layout>
      </v-container>
    </v-app>
  </template>
  <script>
  import http from "@/Services/http.js";
  
  export default {
    data() {
      return {
        snackbar: false,
        y: "top",
        x: "right",
        mode: "",
        timeout: 4000,
        text: "",
        user: {},
        users: [],
        usersName: [],
        e1: true,
        e2: true,
        e3: true,
        loading: false,
        valid: false,
        text: "Password Changed",
        currentPassword: "",
        newPassword: "",
        confirmPassword: "",
        rules: {
          required: value => !!value || "This password field is Required."
          // min: v => (/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/).test(v) && v.length >= 8 || 'Min 8 characters upper case lower case symbol required'
        }
      };
    },
    methods: {
      reset() {
        var token = this.$store.state.token;
        http()
          .put("/schoolChangePassword", {
            headers: { Authorization: "Bearer " + token }
          })
          .then(response => {
            this.loading = true;
            if ((this.snackbar = true)) {
              this.text = "Successfully changed password !!";
              console.log("snackbar", response.data.message);
            }
            setTimeout(() => {
              this.$router.push("/dashboard");
            }, 2000);
          })
          .catch(err => {
            // console.log("err====>",err);
            this.text = "User Not Found or Incorrect currentPassword";
            this.snackbar = true;
            this.loading = false;
          });
      }
    },
    computed: {
      color() {
        return this.loading ? "success" : "error";
      }
    }
  };
  </script>
  <style scoped>
  img {
    position: absolute;
    top: 13px;
    left: 50px;
  }
  .v-btn--large {
    padding: 0px 74px;
  }
  @media screen and (max-width: 769px) {
    .v-btn--large {
      font-size: 14px;
      height: 44px;
      padding: 0 32px;
    }
  }
  </style>