1
- import { Component , OnInit } from '@angular/core' ;
1
+ import { Component , OnInit , ViewChild } from '@angular/core' ;
2
+ import { Router } from '@angular/router' ;
2
3
import { Category } from 'src/app/models/category.model' ;
3
4
import { CategoryService } from '../../services/category.service' ;
4
5
import { LoginService } from '../../services/login.service' ;
@@ -11,7 +12,12 @@ export class CategoryComponent implements OnInit{
11
12
12
13
categories : Category [ ] ;
13
14
14
- constructor ( public categoryService : CategoryService , public loginService : LoginService ) {
15
+ @ViewChild ( "file" )
16
+ file : any ;
17
+
18
+ removeImage :boolean ;
19
+
20
+ constructor ( public categoryService : CategoryService , public loginService : LoginService , private router : Router ) {
15
21
}
16
22
17
23
ngOnInit ( ) : void {
@@ -25,4 +31,28 @@ export class CategoryComponent implements OnInit{
25
31
event . preventDefault ( ) ;
26
32
this . categoryService . addCategory ( title , description , icon ) ;
27
33
}
34
+
35
+ uploadImage ( categoryImage : Category ) : void {
36
+
37
+ const image = this . file . nativeElement . files [ 0 ] ;
38
+ if ( image ) {
39
+ let formData = new FormData ( ) ;
40
+ formData . append ( "imageField" , image ) ;
41
+ this . categoryService . setCategoryImage ( categoryImage , formData ) . subscribe (
42
+ _ => this . afterUploadImage ( categoryImage ) ,
43
+ error => alert ( 'Error uploading category image: ' + error )
44
+ ) ;
45
+ } else if ( this . removeImage ) {
46
+ this . categoryService . deleteCategoryImage ( categoryImage ) . subscribe (
47
+ _ => this . afterUploadImage ( categoryImage ) ,
48
+ error => alert ( 'Error deleting book image: ' + error )
49
+ ) ;
50
+ } else {
51
+ this . afterUploadImage ( categoryImage ) ;
52
+ }
53
+ }
54
+
55
+ private afterUploadImage ( afterCategoryImage : Category ) {
56
+ this . router . navigate ( [ '/category/' , afterCategoryImage . id_CATEGORY ] ) ;
57
+ }
28
58
}
0 commit comments