Blame view
src/pages/changepassword.vue
3.42 KB
93a68cfa1
|
1 2 |
<template> <v-app id="login"> |
04e3fbc56
|
3 |
<!-- <v-toolbar color="grey lighten"> |
93a68cfa1
|
4 5 6 |
<v-toolbar-items> <img src="/static/ana@2x.png" height="36" alt="ana"> </v-toolbar-items> |
04e3fbc56
|
7 8 |
</v-toolbar>--> <!-- <v-content> --> |
93a68cfa1
|
9 |
<v-container fluid fill-height> |
04e3fbc56
|
10 11 |
<v-layout> <v-flex xs12 sm8 md6 lg7 offset-xs2> |
93a68cfa1
|
12 13 14 15 16 17 |
<v-toolbar color="black" dark> <v-spacer></v-spacer> <v-toolbar-title>Change Password</v-toolbar-title> <v-spacer></v-spacer> </v-toolbar> |
04e3fbc56
|
18 |
<v-card class="elevation-1 pa-3" id="form"> |
93a68cfa1
|
19 |
<v-card-text> |
04e3fbc56
|
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 |
<v-flex xs12 sm8 md8 lg8 offset-xs2> <v-form class="mt-3" > <v-text-field :rules="[rules.required, rules.min]" :append-icon="e1 ? 'visibility_off' : 'visibility'" :append-icon-cb="() => (e1 = !e1)" :type="e1 ? 'password' : 'text'" v-model="password" label="Current Password"> </v-text-field> <v-text-field v-model="npassword" :rules="[rules.required, rules.min]" :append-icon="e2 ? 'visibility_off' : 'visibility'" :append-icon-cb="() => (e2 = !e2)" :type="e2 ? 'password' : 'text'" label="New Password" ></v-text-field> <v-text-field v-model="cnpassword" :append-icon="e3 ? 'visibility_off' : 'visibility'" :append-icon-cb="() => (e3 = !e3)" :type="e3 ? 'password' : 'text'" label="Confirm Password" ></v-text-field> </v-form></v-flex> |
93a68cfa1
|
46 47 |
</v-card-text> <v-card-actions> |
04e3fbc56
|
48 |
|
93a68cfa1
|
49 50 51 52 53 |
<v-flex text-sm-center> <v-btn class="mt-3" round color="black" dark large |
04e3fbc56
|
54 |
:loading="loading" |
93a68cfa1
|
55 56 |
@click="reset">Reset Password</v-btn></v-flex> </v-card-actions> |
04e3fbc56
|
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<v-snackbar :timeout="timeout" v-model="snackbar" color="green" > {{ text }} <v-icon flat @click="snackbar = false" > close </v-icon> </v-snackbar> |
93a68cfa1
|
71 72 73 74 |
</v-card> </v-flex> </v-layout> </v-container> |
04e3fbc56
|
75 76 |
<!-- </v-content> <v-footer class="pa-4" color="grey darken-2"> |
93a68cfa1
|
77 |
|
04e3fbc56
|
78 |
</v-footer> --> |
93a68cfa1
|
79 80 81 82 83 84 85 |
</v-app> </template> <script> import axios from 'axios'; export default { data () { return { |
04e3fbc56
|
86 87 88 89 90 |
e1: true, e2: true, e3: true, snackbar: false, timeout: 1000, |
93a68cfa1
|
91 92 |
loading: false, valid: false, |
04e3fbc56
|
93 94 95 96 97 98 99 100 |
text: 'Password Changed', password: '', 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' }, npassword: '', cnpassword: '', |
93a68cfa1
|
101 102 103 104 105 |
}; }, methods: { reset () { this.loading = true; |
04e3fbc56
|
106 |
this.snackbar = true; |
93a68cfa1
|
107 |
setTimeout(() => { |
04e3fbc56
|
108 |
|
93a68cfa1
|
109 |
this.$router.push('/dashboard'); |
04e3fbc56
|
110 111 112 |
}, 2000); |
93a68cfa1
|
113 114 115 116 |
} } }; </script> |
04e3fbc56
|
117 |
<style scoped> |
93a68cfa1
|
118 119 120 |
img{ position:absolute; top:13px; |
04e3fbc56
|
121 |
left:50px; |
93a68cfa1
|
122 |
} |
04e3fbc56
|
123 124 125 126 |
.v-btn--large { padding: 0px 74px; } </style> |