update-profile.component.ts
3.35 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
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/update-profile.component.html'
})
export class UpdateProfileComponent implements AfterViewInit, OnInit {
updateProfileForm: FormGroup;
//updateProfileForm: FormGroup({
// firstName: new FormControl(),
// lastName: new FormControl(),
// email: new FormControl()
//});
constructor(private application: ApplicationService, private router: Router, private fb: FormBuilder) {
}
ngAfterViewInit(): void {
this.initializeUIElements();
//jQuery(function () {
// jQuery("#slider-range-min-2").slider({
// range: "min",
// min: 1,
// max: 60,
// value: 10,
// slide: function (event, ui) {
// jQuery("#amount-2").val(ui.value);
// }
// });
// jQuery("#amount-2").val(jQuery("#slider-vertical-2").slider("value"));
//});
jQuery('.modal').draggable({
handle: '.modal-header'
});
}
initializeUIElements(): void {
}
ngOnInit(): void {
/*if (this.application.currentUser == null) {
this.router.navigate(['/login']);
}*/
this.initializeUpdateProfile();
}
showAlert(id: string): void {
jQuery('#' + id).modal('show');
}
initializeUpdateProfile(): void {
this.updateProfileForm = this.fb.group({
'firstName': ['', [Validators.required]],
'lastName': ['', [Validators.required]],
'email': ['', 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,}))$/)])],
});
this.updateProfileForm.valueChanges
.subscribe(data => this.onValueChanged(data));
this.onValueChanged(); // (re)set validation messages now
}
onValueChanged(data?: any) {
if (!this.updateProfileForm) { return; }
const form = this.updateProfileForm;
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 = {
'firstName': '',
'lastName': '',
'email': ''
};
validationMessages = {
'firstName': {
'required': 'First name is required.'
},
'lastName': {
'required': 'Last name is required.'
},
'email': {
'required': 'Email is required.',
'pattern': 'Email pattern is not valid.'
}
}
}