Advertisement
Guest User

Untitled

a guest
Oct 12th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. ngOnInit(): void {
  2. this.userForm = this.formBuilder.group({
  3. status: {checked: this.selectedUser.status == 1},
  4. username: [this.selectedUser.username, [Validators.required, Validators.minLength(LlqaConstants.USERNAME_MIN_LENGTH)]],
  5. realname: [this.selectedUser.realname, [Validators.required, Validators.minLength(LlqaConstants.REALNAME_MIN_LENGTH)]],
  6. password: ['', this.selectedUser.passhash.length > 0 ? [Validators.required, Validators.minLength(LlqaConstants.PASSWORD_MIN_LENGTH)] : null],
  7. usercomment: [this.selectedUser.comment]
  8. });
  9. }
  10.  
  11. disableSaveButton(): boolean {
  12. return !this.userform.dirty || this.userForm.invalid;
  13. }
  14.  
  15. export class MyComponent {
  16. initialValue: any;
  17.  
  18. constructor(private fb: FormBuilder) {
  19. this.form = fb.group({...});
  20. this.initialValue = this.form.value;
  21. }
  22.  
  23. disableSaveButton() {
  24. return JSON.stringify(this.initialValue) === JSON.stringify(this.form.value);
  25. }
  26. }
  27.  
  28. export function oneValueHasToBeChangedValidator(values: { controlName: string, initialValue: string | number | boolean }[]): ValidatorFn {
  29. return (form: FormControl): { [key: string]: any } => {
  30. let sameValues = true;
  31.  
  32. for (let comparingValues of values) {
  33. if (form.value[comparingValues.controlName] != comparingValues.initialValue) {
  34. sameValues = false;
  35. break;
  36. }
  37. }
  38.  
  39. return sameValues ? {'sameValues': {values: values}} : null;
  40. };
  41. }
  42.  
  43. this.userForm = this.formBuilder.group({
  44. status: this.selectedUser.status == 1,
  45. username: [this.selectedUser.username, [Validators.required, Validators.minLength(LlqaConstants.USERNAME_MIN_LENGTH)]],
  46. realname: [this.selectedUser.realname, [Validators.required, Validators.minLength(LlqaConstants.REALNAME_MIN_LENGTH)]],
  47. password: ['', [Validators.minLength(LlqaConstants.PASSWORD_MIN_LENGTH)]],
  48. usercomment: this.selectedUser.comment == null ? "" : this.selectedUser.comment
  49. });
  50.  
  51. this.userForm.setValidators(oneValueHasToBeChangedValidator([{
  52. controlName: "status",
  53. initialValue: this.selectedUser.status == 1
  54. }, {
  55. controlName: "username",
  56. initialValue: this.selectedUser.username
  57. }, {
  58. controlName: "realname",
  59. initialValue: this.selectedUser.realname
  60. }, {
  61. controlName: "password",
  62. initialValue: ""
  63. }, {
  64. controlName: "usercomment",
  65. initialValue: this.selectedUser.comment == null ? "" : this.selectedUser.comment
  66. }]));
  67. this.userForm.updateValueAndValidity();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement