changepassword.vue
3.75 KB
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
136
137
<template>
<v-app id="login">
<app-toolbar class="app--toolbar"></app-toolbar>
<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>Technology Succes</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-text-field
:rules="[rules.required]"
v-model="adminChangePasswordcredentials.oldPassword"
label="Old Password">
</v-text-field>
<v-text-field
v-model="adminChangePasswordcredentials.newPassword"
:rules="[rules.required]"
label="New 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';
import AppToolbar from '@/components/pageHeader/AppToolbar';
export default {
components: {
AppToolbar,
},
data () {
return {
snackbar: false,
y: 'top',
x: 'right',
mode: '',
timeout: 4000,
text: '',
adminChangePasswordcredentials: {},
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;
var userdata = {
"oldPassword":this.adminChangePasswordcredentials.oldPassword,
"newPassword":this.adminChangePasswordcredentials.newPassword,
}
http().put('/schoolChangePassword',userdata,{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>