Guest User

Untitled

a guest
Oct 20th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. <form [formGroup]="form">
  2. <div class="form-group">
  3. <label for="oldPassword">Old Password</label>
  4. <input
  5. formControlName="oldPassword"
  6. id="oldPassword"
  7. type="text"
  8. class="form-control">
  9. <div *ngIf="oldPassword.pending">Checking password...</div>
  10. <div *ngIf="oldPassword.touched && oldPassword.invalid" class="alert alert-danger">
  11. <div *ngIf="oldPassword.errors.required">Old password is required</div>
  12. <div *ngIf="oldPassword.errors.checkOldPassword">Password is incorrect</div>
  13. </div>
  14. </div>
  15. <div class="form-group">
  16. <label for="newPassword">New password</label>
  17. <input
  18. formControlName="newPassword"
  19. id="newPassword"
  20. type="text"
  21. class="form-control">
  22. <div *ngIf="newPassword.touched && newPassword.invalid" class="alert alert-danger">
  23. <div *ngIf="newPassword.errors.required">New password is required</div>
  24. </div>
  25. </div>
  26. <div class="form-group">
  27. <label for="confirmNewPassword">Confirm new password</label>
  28. <input
  29. formControlName="confirmNewPassword"
  30. id="confirmNewPassword"
  31. type="text"
  32. class="form-control">
  33. <div *ngIf="confirmNewPassword.touched && confirmNewPassword.invalid" class="alert alert-danger">
  34. <div *ngIf="confirmNewPassword.errors.required">Confirm password is required</div>
  35. <div *ngIf="confirmNewPassword.errors.confirmNewPassword">Passwords don't match</div>
  36. </div>
  37. </div>
  38. <button class="btn btn-primary" type="submit">Change Password</button>
  39. </form>
  40.  
  41. import { Component, OnInit } from '@angular/core';
  42. import { FormGroup, FormControl, Validators } from '@angular/forms';
  43. import { PasswordValidators } from './password.validators';
  44.  
  45. @Component({
  46. selector: 'new-password',
  47. templateUrl: './new-password.component.html',
  48. styleUrls: ['./new-password.component.css']
  49. })
  50. export class NewPasswordComponent {
  51. form = new FormGroup({
  52. oldPassword: new FormControl('', Validators.required, PasswordValidators.checkOldPassword),
  53. newPassword: new FormControl('', Validators.required),
  54. confirmNewPassword: new FormControl('', Validators.required )
  55. })
  56.  
  57. get oldPassword() {
  58. return this.form.get('oldPassword');
  59. }
  60.  
  61. get newPassword() {
  62. return this.form.get('newPassword');
  63. }
  64.  
  65. get confirmNewPassword() {
  66. return this.form.get('confirmNewPassword');
  67. }
  68.  
  69. addNewPassword(newPassword: HTMLInputElement) {
  70. let np = this.newPassword;
  71. return np;
  72. }
  73.  
  74. }
  75.  
  76. import { AbstractControl, ValidationErrors } from '@angular/forms';
  77.  
  78. export class PasswordValidators {
  79.  
  80.  
  81. static checkOldPassword(control: AbstractControl) : Promise<ValidationErrors | null> {
  82. return new Promise((resolve, reject) => {
  83. setTimeout(() => {
  84. if(control.value !== '1234')
  85. resolve({ checkOldPassword: true }) ;
  86. else resolve(null);
  87. }, 2000);
  88. });
  89. }
  90.  
  91. static confirmNewPassword(control: AbstractControl) : ValidationErrors | null {
  92. if(control.value === control.newPassword.value)
  93. return null;
  94. }
  95.  
  96. }
Add Comment
Please, Sign In to add comment