843387b33fc37a582037f020ce64fe6929511e30
[usecase-ui.git] /
1 import { Component, OnDestroy, OnInit } from '@angular/core';
2 import { NzMessageService, NzModalService } from "ng-zorro-antd";
3 import { MaasApi } from '@src/app/api/maas.api';
4 import { KnowledgeBase, modalClose } from './knowledge-base.type';
5 import { TranslateService } from '@ngx-translate/core';
6
7 @Component({
8   selector: 'app-knowledge-base-management',
9   templateUrl: './knowledge-base-management.component.html',
10   styleUrls: ['./knowledge-base-management.component.less']
11 })
12 export class KnowledgeBaseManagementComponent implements OnInit {
13   editKnowledgeBaseShow = false;
14   knowledgeBaseId = '';
15   data: KnowledgeBase[] = [];
16   createModalShow: boolean = false;
17   knowledgeBaseShow: boolean = false;
18   knowledgeBaseDetail: Object = {};
19
20   constructor(
21     private myhttp: MaasApi,
22     private message: NzMessageService,
23     private modalService: NzModalService,
24     private translate: TranslateService
25   ) { }
26
27   ngOnInit() {
28     this.getKnowledgeBaseData()
29   }
30
31   getKnowledgeBaseData(): void {
32     this.myhttp.getKnowledgeBaseRecord()
33       .subscribe(
34         (data) => {
35           this.data = data.result_body
36         },
37         () => {
38           this.message.error('Failed to obtain knowledgeBase data');
39         }
40       )
41   }
42
43   create(): void {
44     this.createModalShow = true;
45   }
46   createModalClose($event: modalClose): void {
47     this.createModalShow = false;
48     if ($event.cancel) {
49       return;
50     }
51     this.getKnowledgeBaseData()
52   }
53
54   editKnowledgeBaseModuleClose($event: modalClose): void {
55     this.editKnowledgeBaseShow = false;
56     if ($event.cancel) {
57       return;
58     }
59     this.getKnowledgeBaseData()
60   }
61
62   knowledgeBaseDetailClose(): void {
63     this.knowledgeBaseShow = false;
64   }
65
66   deleteKnowledgeBase(data: KnowledgeBase): void {
67     this.myhttp.deleteKnowledgeBaseData(data.knowledgeBaseId).subscribe((data) => {
68       this.getKnowledgeBaseData()
69       if (data.result_header.result_code === 200) {
70         this.message.success('Deleted successfully');
71       } else {
72         this.message.error(data.result_header.result_message);
73       }
74     }, () => {
75       this.message.error('Deletion failed');
76     });
77   }
78
79   displayKnowledgeDetails(data): void {
80     this.knowledgeBaseShow = true;
81     this.myhttp.getKnowledgeBaseById(data.knowledgeBaseId)
82       .subscribe(
83         (data) => {
84           this.knowledgeBaseDetail = data.result_body;
85         },
86         () => {
87           this.message.error('Failed to obtain knowledge base data');
88         }
89       )
90   }
91
92   editKnowedgeBase(data: KnowledgeBase) {
93     this.knowledgeBaseId = data.knowledgeBaseId;
94     this.editKnowledgeBaseShow = true;
95   }
96
97   showDeleteConfirm(data: KnowledgeBase): void {
98     this.modalService.confirm({
99       nzTitle: this.translate.instant('maas.deleteTitle'),
100       nzContent: this.translate.instant('maas.knowledgeBase.deleteKnowledgeBaseContent'),
101       nzOkText: 'Yes',
102       nzOkType: 'danger',
103       nzOnOk: () => this.deleteKnowledgeBase(data),
104       nzCancelText: 'No',
105       nzIconType: 'warning',
106     });
107   }
108
109 }