Guest User

Untitled

a guest
Nov 9th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. export class AdminComponent implements OnInit, AfterViewInit, OnDestroy {
  2.  
  3. @ViewChild('input') inputRef: ElementRef
  4. @ViewChild('modal_edit') modal_editRef: ElementRef
  5.  
  6. users: User[]
  7. userId: string = null
  8. modal_edit: MaterialInstance
  9. form: FormGroup
  10. image: File
  11. imagePreview = ''
  12. isNew = true
  13. user: User
  14.  
  15. constructor(
  16. private userService: UserService
  17. ) { }
  18.  
  19. ngOnInit() {
  20. this.form = new FormGroup({
  21. username: new FormControl(null, [Validators.required]),
  22. password: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  23. name: new FormControl(null, Validators.required),
  24. roles: new FormControl(null, Validators.required)
  25. })
  26.  
  27. }
  28.  
  29. private loadUser() {
  30. this.userService.fetch().subscribe(
  31. users => {
  32. this.users = users
  33. }
  34. );
  35. }
  36.  
  37. ngAfterViewInit() {
  38. this.modal_edit = MaterialService.initModal(this.modal_editRef)
  39. }
  40.  
  41. ngOnDestroy() {
  42. this.modal_edit.destroy()
  43. }
  44.  
  45. onSelectUser(user: User){
  46. this.userId = user.id
  47. this.form.patchValue({
  48. name: user.name,
  49. username: user.username,
  50. roles: user.roles
  51. })
  52. this.imagePreview = user.photoSrc
  53. this.modal_edit.open()
  54. MaterialService.updateTextInputs()
  55. }
  56.  
  57. onCancel() {
  58. this.modal_edit.close()
  59. this.form.reset(
  60. {
  61. name: '',
  62. username: '',
  63. roles: '',
  64. imagePreview: '',
  65. password: ''
  66. }
  67. )
  68. }
  69.  
  70. triggerClick() {
  71. this.inputRef.nativeElement.click()
  72. }
  73.  
  74. onFileUpload(event: any) {
  75. const file = event.target.files[0]
  76. this.image = file
  77.  
  78. const reader = new FileReader()
  79.  
  80. reader.onload = () => {
  81. this.imagePreview = reader.result
  82. }
  83.  
  84. reader.readAsDataURL(file)
  85. }
  86.  
  87. onUpdate() {
  88. if(this.userId) {
  89. this.user.id = this.userId
  90. this.userService.update(this.user.id, this.form.value.name, this.form.value.username, this.form.value.password, this.form.value.roles, this.image).subscribe(
  91. () => {
  92. MaterialService.toast('Changes saved')
  93. this.loadUser()
  94. },
  95. error => {
  96. this.form.enable()
  97. MaterialService.toast(error.error.message)
  98. },
  99. () => {
  100. this.modal_edit.close()
  101. })
  102. }
  103. }
  104.  
  105.  
  106. }
  107.  
  108. update(id: string, name: string, username: string, password: string, roles?: string, image?: File): Observable<User> {
  109. const fd = new FormData()
  110.  
  111. if (image) {
  112. fd.append('image', image, image.name)
  113. }
  114. fd.append('name', name)
  115. fd.append('username', username)
  116. fd.append('password', password)
  117. fd.append('roles', roles)
  118.  
  119. return this.http.patch<User>(`/api/admin/${id}`, fd)
  120. }
Add Comment
Please, Sign In to add comment