1
- < div class ="row clearfix " [@routerTransition] >
2
- < div class ="col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
3
- < div class ="card main-content ">
4
- < div class ="header ">
5
- < h2 > {{ "UpdatePassword" | localize }}</ h2 >
6
- </ div >
7
- < div class ="body table-responsive " #body >
8
- < form novalidate (ngSubmit) ="updatePassword(parentFormGroup.value) ">
9
- < div [formGroup] ="parentFormGroup ">
10
- < div class ="row ">
11
- < div class ="col-md-6 ">
12
- < mat-form-field >
13
- < input matInput id ="currentPassword " type ="password " name ="CurrentPassword " formControlName ="currentPassword "
14
- [placeholder] ="'CurrentPassword' | localize "
15
- required minlength ="2 " maxlength ="32 "
16
- />
17
- </ mat-form-field >
18
- </ div >
19
- </ div >
20
- < div class ="row ">
21
- < div class ="col-md-6 " [formGroup] ="passwordsFormGroup " formGroupName ="passwords ">
22
- < mat-form-field >
23
- < input matInput id ="newPassword " formControlName ="newPassword " type ="password " name ="NewPassword "
24
- [placeholder] ="'NewPassword' | localize "
25
- required minlength ="2 " maxlength ="32 "
26
- />
27
- < mat-error *ngIf ="passwordsFormGroup.controls.newPassword.errors ">
28
- {{ "PasswordsMustBeAtLeast8CharactersContainLowercaseUppercaseNumber" | localize }}
29
- </ mat-error >
30
- </ mat-form-field >
31
- </ div >
32
- </ div >
33
- < div class ="row ">
34
- < div class ="col-md-6 " formGroupName ="passwords ">
35
- < mat-form-field >
36
- < input matInput id ="repeatNewPassword " formControlName ="repeatNewPassword " type ="password " name ="RepeatNewPassword "
37
- [placeholder] ="'ConfirmNewPassword' | localize " [errorStateMatcher] ="equalMatcher "
38
- required minlength ="2 " maxlength ="32 "
39
- />
40
- < mat-error *ngIf ="passwordsFormGroup.errors &&
41
- passwordsFormGroup.errors.areEqual &&
42
- passwordsFormGroup.controls.newPassword.touched
43
- ">
44
- {{ "PasswordsDoNotMatch" | localize }}
45
- </ mat-error >
46
- </ mat-form-field >
47
- </ div >
48
- </ div >
49
- < button mat-flat-button type ="submit " flex ="15 " color ="primary "
50
- [disabled] ="!parentFormGroup.valid || isLoading ">
51
- {{ "Save" | localize }}
52
- < i class ="fa fa-spin fa-spinner " *ngIf ="isLoading "> </ i >
53
- </ button >
54
- </ div >
55
- </ form >
56
- </ div >
1
+ < div [@routerTransition] >
2
+ < section class ="content-header ">
3
+ < div class ="container-fluid ">
4
+ < div class ="row ">
5
+ < div class ="col-6 ">
6
+ < h1 > {{ "UpdatePassword" | localize }}</ h1 >
57
7
</ div >
8
+ </ div >
9
+ </ div >
10
+ </ section >
11
+ < section class ="content px-2 ">
12
+ < div class ="container-fluid ">
13
+ < div class ="card ">
14
+ < form
15
+ class ="form-horizontal "
16
+ autocomplete ="off "
17
+ #changePasswordForm ="ngForm "
18
+ (ngSubmit) ="changePassword() "
19
+ >
20
+ < div class ="card-body ">
21
+ < div class ="modal-body ">
22
+ < div class ="form-group row required ">
23
+ < label class ="col-md-3 col-form-label " for ="currentPassword ">
24
+ {{ "CurrentPassword" | localize }}
25
+ </ label >
26
+ < div class ="col-md-9 ">
27
+ < input
28
+ type ="text "
29
+ class ="form-control "
30
+ name ="currentPassword "
31
+ id ="currentPassword "
32
+ required
33
+ minlength ="2 "
34
+ maxlength ="32 "
35
+ [(ngModel)] ="changePasswordDto.currentPassword "
36
+ #currentPasswordModel ="ngModel "
37
+ #currentPasswordEl
38
+ />
39
+ < abp-validation-summary
40
+ [control] ="currentPasswordModel "
41
+ [controlEl] ="currentPasswordEl "
42
+ > </ abp-validation-summary >
43
+ </ div >
44
+ </ div >
45
+ < div class ="form-group row required ">
46
+ < label class ="col-md-3 col-form-label " for ="newPassword ">
47
+ {{ "NewPassword" | localize }}
48
+ </ label >
49
+ < div class ="col-md-9 ">
50
+ < input
51
+ type ="text "
52
+ class ="form-control "
53
+ name ="newPassword "
54
+ id ="newPassword "
55
+ required
56
+ minlength ="2 "
57
+ maxlength ="32 "
58
+ validateEqual ="confirmNewPassword "
59
+ reverse ="true "
60
+ pattern ="(?=^.{8,}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s)[0-9a-zA-Z!@#$%^&*()]*$ "
61
+ [(ngModel)] ="changePasswordDto.newPassword "
62
+ #newPasswordModel ="ngModel "
63
+ #newPasswordEl
64
+ />
65
+ < abp-validation-summary
66
+ [control] ="newPasswordModel "
67
+ [controlEl] ="newPasswordEl "
68
+ [customValidationErrors] ="newPasswordValidationErrors "
69
+ > </ abp-validation-summary >
70
+ </ div >
71
+ </ div >
72
+ < div class ="form-group row required ">
73
+ < label class ="col-md-3 col-form-label " for ="confirmNewPassword ">
74
+ {{ "ConfirmNewPassword" | localize }}
75
+ </ label >
76
+ < div class ="col-md-9 ">
77
+ < input
78
+ type ="text "
79
+ class ="form-control "
80
+ name ="confirmNewPassword "
81
+ id ="confirmNewPassword "
82
+ required
83
+ minlength ="2 "
84
+ maxlength ="32 "
85
+ validateEqual ="newPassword "
86
+ reverse ="false "
87
+ ngModel
88
+ #confirmNewPasswordModel ="ngModel "
89
+ #confirmNewPasswordEl
90
+ />
91
+ < abp-validation-summary
92
+ [control] ="confirmNewPasswordModel "
93
+ [controlEl] ="confirmNewPasswordEl "
94
+ [customValidationErrors] ="
95
+ confirmNewPasswordValidationErrors
96
+ "
97
+ > </ abp-validation-summary >
98
+ </ div >
99
+ </ div >
100
+ </ div >
101
+ </ div >
102
+ < div class ="card-footer justify-content-between ">
103
+ < button
104
+ type ="submit "
105
+ class ="btn btn-primary "
106
+ [disabled] ="!changePasswordForm.form.valid || saving "
107
+ >
108
+ {{ "Save" | localize }}
109
+ </ button >
110
+ </ div >
111
+ </ form >
112
+ </ div >
58
113
</ div >
59
- </ div >
114
+ </ section >
115
+ </ div >
0 commit comments