Blame view
src/pages/Authentication/forgetpassword.vue
9.76 KB
93a68cfa1
|
1 2 |
<template> <v-app id="login"> |
603a06702
|
3 |
<v-toolbar class="fixcolors"> |
93a68cfa1
|
4 |
<v-toolbar-items> |
88670bfb5
|
5 |
<img src="/static/logoIntrack.png" height="40" width="140" alt="logo"> |
f0281dd43
|
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
</v-toolbar-items> </v-toolbar> <v-container fluid> <v-layout align-center justify-center fill-height> <v-flex xs12 sm8 md7 lg8> <div> <v-app> <v-stepper v-model="e2"> <v-stepper-header> <v-stepper-step :complete="e2 > 1" step="1">Fill Your Email</v-stepper-step> <v-divider></v-divider> <v-stepper-step step="2">Last Step of Forget Password</v-stepper-step> </v-stepper-header> <v-stepper-items> <v-stepper-content step="1"> <v-content> |
1c1942362
|
22 |
<v-container fluid class="content"> |
f0281dd43
|
23 |
<v-layout align-center justify-center fill-height> |
1c1942362
|
24 |
<v-flex xs12 sm8 md7 lg8> |
603a06702
|
25 |
<v-toolbar class="fixcolors" dark> |
f0281dd43
|
26 27 28 29 30 31 32 33 |
<v-spacer></v-spacer> <v-toolbar-title>Forget Password</v-toolbar-title> <v-spacer></v-spacer> </v-toolbar> <v-card class="elevation-1 pa-1"> <v-card-text> <h5 class="text-xs-center"> Not to Worry! Enter to your registered Email ID. </h5> <h5 class="text-xs-center"> We'll send you a reset.</h5> |
1c1942362
|
34 |
<v-flex lg6 sm6 xs10 offset-sm3 offset-xs1 offset-lg3> |
603a06702
|
35 |
<v-form ref="form" v-model="valid" lazy-validation> |
f0281dd43
|
36 37 38 39 40 41 42 43 44 45 46 47 48 |
<div class="custom-input-align"> <v-text-field class="text-md-center" :rules="emailRules" v-model="forgetemail" label="Enter Your email ID" required></v-text-field> </div> </v-form> </v-flex> </v-card-text> <v-card-actions> <v-flex text-xs-center> |
603a06702
|
49 |
<v-btn round class="mt-1 button fixcolors" dark large @click="reset">Send Request</v-btn> |
f0281dd43
|
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
</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-snackbar> </v-card> </v-flex> </v-layout> </v-container> </v-content> </v-stepper-content> <v-stepper-content step="2"> <v-content> <v-container fluid fill-height> <v-layout align-center justify-center> |
1c1942362
|
73 |
<v-flex xs12 sm8 md7 lg8> |
603a06702
|
74 |
<v-toolbar class="fixcolors" dark> |
f0281dd43
|
75 76 77 78 79 80 81 82 |
<v-spacer></v-spacer> <v-toolbar-title>Forget Password</v-toolbar-title> <v-spacer></v-spacer> </v-toolbar> <v-card class="elevation-1 pa-1"> <v-card-text> <h5 class="text-xs-center"> Not to Worry! Enter to your registered Email ID And New Password. </h5> <h5 class="text-xs-center"> We'll send you a reset.</h5> |
1c1942362
|
83 |
<v-flex lg6 sm6 xs10 offset-sm3 offset-xs1 offset-lg3> |
f0281dd43
|
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
<v-form class="mt-4"> <div class="custom-input-align"> <v-text-field class="text-md-center" v-model="email" :rules="emailRules" label="Enter Your email ID" required></v-text-field> <v-text-field :rules="[rules.required,rules.min]" v-model="changepassword" :append-icon="e1 ? 'visibility_off' : 'visibility'" :append-icon-cb="() => (e1 = !e1)" :type="e1 ? 'password' : 'text'" name="input-10-1" label="Password" counter ></v-text-field> </div> </v-form> </v-flex> </v-card-text> <v-card-actions> <v-flex text-xs-center> |
603a06702
|
108 |
<v-btn round class="mt-1 button fixcolors" dark large @click="resetPassword">Send Request</v-btn> |
f0281dd43
|
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
</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-snackbar> </v-card> </v-flex> </v-layout> </v-container> </v-content> <v-btn |
603a06702
|
128 |
color="primary" |
f0281dd43
|
129 130 131 132 133 134 135 136 137 138 139 140 141 |
dark @click="e2 = 1" > Back </v-btn> </v-stepper-content> </v-stepper-items> </v-stepper> </v-app> </div> </v-flex> </v-layout> </v-container> |
603a06702
|
142 |
<v-footer class="pa-4 fixcolors"> |
93a68cfa1
|
143 |
</v-footer> |
f0281dd43
|
144 |
</v-app> |
93a68cfa1
|
145 |
</template> |
f0281dd43
|
146 |
|
93a68cfa1
|
147 |
<script> |
03dcbf0c1
|
148 |
import http from '@/Services/http.js'; |
93a68cfa1
|
149 150 |
export default { data: () => ({ |
f0281dd43
|
151 152 |
e1: true, e2:0, |
04e3fbc56
|
153 |
snackbar: false, |
03dcbf0c1
|
154 155 156 157 158 |
y: 'top', x: 'right', mode: '', timeout: 4000, text: '', |
93a68cfa1
|
159 |
loading: false, |
f0281dd43
|
160 161 162 163 |
email: '', forgetemail:'', password:'', changepassword:'', |
603a06702
|
164 |
valid: true, |
f0281dd43
|
165 |
emailRules: [ |
603a06702
|
166 167 168 169 |
v => !!v || "E-mail is required", v => /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || "E-mail must be valid" |
f0281dd43
|
170 171 172 173 174 175 176 177 178 179 |
], rules: { required: value => !!value || "password is Required.", min: v => (/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/.test( v ) && v.length >= 6) || "Min 4 characters upper case lower case symbol required" } |
93a68cfa1
|
180 181 182 |
}), methods: { |
e173bab21
|
183 |
reset () { |
603a06702
|
184 |
if (this.$refs.form.validate()) { |
f0281dd43
|
185 186 187 188 189 |
http().get('/schoolForgotPassword?email='+ this.forgetemail) .then(response => { // console.log("response=====>",response.data.data.token); this.$store.dispatch("setToken", response.data.data.token); this.loading = true; |
1c1942362
|
190 |
this.e2 = 2 ; |
f0281dd43
|
191 192 193 194 195 196 197 198 |
if(this.snackbar=true){ this.text= "Please you Fill Last Step of Forget Password!" } }).catch(err => { this.text="User Not Found or Incorrect Email" this.snackbar= true; this.loading = false; }) |
603a06702
|
199 |
} |
f0281dd43
|
200 201 202 203 204 205 206 207 |
}, resetPassword(){ let forgotPassword = { resetToken: this.$store.state.token, email: this.email, password: this.changepassword } http().post('/schoolResetPassword',forgotPassword) |
e173bab21
|
208 |
.then(response => { |
03dcbf0c1
|
209 210 211 |
console.log("response=====>",response); this.loading = true; if(this.snackbar=true){ |
f0281dd43
|
212 |
this.text= "Successfully Change your Password" |
03dcbf0c1
|
213 214 215 216 |
} setTimeout(() => { this.$router.push('/'); }, 1000); |
e173bab21
|
217 |
}).catch(err => { |
03dcbf0c1
|
218 219 220 |
this.text="User Not Found or Incorrect Email" this.snackbar= true; this.loading = false; |
e173bab21
|
221 |
}) |
93a68cfa1
|
222 |
} |
03dcbf0c1
|
223 224 225 226 227 228 |
}, computed:{ color(){ return this.loading ? 'success' : 'error' } } |
93a68cfa1
|
229 230 |
}; |
1c1942362
|
231 232 233 234 235 |
</script> <style scoped lang="css"> .content { padding: 100px 0px 100px 0px !important; } |
93a68cfa1
|
236 237 238 239 240 241 242 243 244 |
#login { height: 50%; width: 100%; position: absolute; top: 0; left: 0; content: ""; z-index: 0; } |
04e3fbc56
|
245 |
img{ |
5c102c705
|
246 247 248 |
position:absolute; top:13px; left:8px; |
04e3fbc56
|
249 250 251 252 |
} .v-btn--large { padding: 0px 74px; } |
9f9522c1d
|
253 254 255 |
.button{ text-transform: none; } |
03dcbf0c1
|
256 257 258 259 260 261 262 263 264 |
@media screen and (max-width: 472px) { .v-btn--large { padding:0px 20px !important; font-size:13px; } h5 { font-size: 11px; } } |
a0fe54618
|
265 |
@media screen and (max-width: 600px) { |
55f72b7d7
|
266 267 268 |
.theme--light .v-btn, .application .theme--light.v-btn { color: white !important; } |
55f72b7d7
|
269 270 271 272 273 274 |
.logoSchool{ font-size: 18px; margin-top: 20px !important; } .content { padding: 0px 0px 0px 0px !important; |
a0fe54618
|
275 276 |
} } |
93a68cfa1
|
277 |
</style> |