]>
Commit | Line | Data |
---|---|---|
7da18e44 | 1 | import { Component, OnInit } from '@angular/core'; |
4b2f33f3 | 2 | import { FormBuilder, FormGroup } from '@angular/forms'; |
7da18e44 C |
3 | import { Router } from '@angular/router'; |
4 | ||
7ddd02c9 C |
5 | import { NotificationsService } from 'angular2-notifications'; |
6 | ||
7da18e44 | 7 | import { UserService } from '../shared'; |
4b2f33f3 | 8 | import { FormReactive, USER_USERNAME, USER_PASSWORD } from '../../../shared'; |
7da18e44 C |
9 | |
10 | @Component({ | |
11 | selector: 'my-user-add', | |
ec8d8440 | 12 | templateUrl: './user-add.component.html' |
7da18e44 | 13 | }) |
4b2f33f3 | 14 | export class UserAddComponent extends FormReactive implements OnInit { |
7da18e44 C |
15 | error: string = null; |
16 | ||
4b2f33f3 C |
17 | form: FormGroup; |
18 | formErrors = { | |
19 | 'username': '', | |
20 | 'password': '' | |
21 | }; | |
22 | validationMessages = { | |
23 | 'username': USER_USERNAME.MESSAGES, | |
24 | 'password': USER_PASSWORD.MESSAGES, | |
25 | }; | |
7da18e44 | 26 | |
4b2f33f3 C |
27 | constructor( |
28 | private formBuilder: FormBuilder, | |
29 | private router: Router, | |
7ddd02c9 | 30 | private notificationsService: NotificationsService, |
4b2f33f3 C |
31 | private userService: UserService |
32 | ) { | |
33 | super(); | |
34 | } | |
35 | ||
36 | buildForm() { | |
37 | this.form = this.formBuilder.group({ | |
38 | username: [ '', USER_USERNAME.VALIDATORS ], | |
39 | password: [ '', USER_PASSWORD.VALIDATORS ], | |
7da18e44 | 40 | }); |
4b2f33f3 C |
41 | |
42 | this.form.valueChanges.subscribe(data => this.onValueChanged(data)); | |
43 | } | |
44 | ||
45 | ngOnInit() { | |
46 | this.buildForm(); | |
7da18e44 C |
47 | } |
48 | ||
0f6da32b | 49 | addUser() { |
7da18e44 C |
50 | this.error = null; |
51 | ||
4b2f33f3 C |
52 | const { username, password } = this.form.value; |
53 | ||
54 | this.userService.addUser(username, password).subscribe( | |
7ddd02c9 C |
55 | () => { |
56 | this.notificationsService.success('Success', `User ${username} created.`); | |
57 | this.router.navigate([ '/admin/users/list' ]); | |
58 | }, | |
7da18e44 | 59 | |
bf68dd75 | 60 | err => this.error = err.text |
7da18e44 C |
61 | ); |
62 | } | |
63 | } |