add-user.component.ts
3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import { Component, AfterViewInit, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { ApplicationService } from '../services/application.service';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
declare var jQuery: any;
@Component({
templateUrl: './app/components/add-user.component.html'
})
export class AddUserComponent implements AfterViewInit, OnInit {
addUserForm: FormGroup;
constructor(private application: ApplicationService, private router: Router, private fb: FormBuilder) {
}
ngAfterViewInit(): void {
this.initializeUIElements();
jQuery(function () {
jQuery('#datetimepicker1, #datetimepicker2').datetimepicker({
//language: 'pt-BR'
});
});
}
initializeUIElements(): void {
}
ngOnInit(): void {
/*if (this.application.currentUser == null) {
this.router.navigate(['/login']);
}*/
this.initializeAddUserForm();
}
showAlert(id: string): void {
jQuery('#' + id).modal('show');
}
initializeAddUserForm(): void {
this.addUserForm = this.fb.group({
'username': ['', [Validators.required]],
'password': ['', ([Validators.required, Validators.minLength(8)])],
'confirmPassword': ['', [Validators.required]],
'emailId': ['', Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)])],
'firstName': ['', [Validators.required]],
'lastName': ['', [Validators.required]],
'accountNumber': ['', [Validators.required]],
'userType': ['', [Validators.required]],
'productEdition': ['', [Validators.required]]
});
this.addUserForm.valueChanges
.subscribe(data => this.onValueChanged(data));
this.onValueChanged(); // (re)set validation messages now
}
onValueChanged(data?: any) {
if (!this.addUserForm) { return; }
const form = this.addUserForm;
for (const field in this.formErrors) {
// clear previous error message (if any)
this.formErrors[field] = '';
const control = form.get(field);
if (control && control.dirty && !control.valid) {
const messages = this.validationMessages[field];
for (const key in control.errors) {
this.formErrors[field] += messages[key] + ' ';
}
}
}
}
formErrors = {
'username': '',
'password': '',
'confirmPassword': '',
'emailId': '',
'firstName': '',
'lastName': '',
'accountNumber': '',
'userType': '',
'productEdition': ''
};
validationMessages = {
'username': {
'required': 'Username is required.'
},
'password': {
'required': 'Password is required.',
'minlength': 'Password must be at least 8 characters long.'
},
'confirmPassword': {
'required': 'Confirm password is required.'
},
'emailId': {
'required': 'EmailId is required.',
'pattern': 'Email pattern is not valid.'
},
'firstName': {
'required': 'First name is required.'
},
'lastName': {
'required': 'Last name is required.'
},
'accountNumber': {
'required': 'Account number is required.'
},
'userType': {
'required': 'User type is required.'
},
'productEdition': {
'required': 'Product edition is required.'
},
}
}