2 Copyright (C) 2019 CMCC, Inc. and others. All rights reserved.
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
16 import {Component, OnInit, ViewChild, ElementRef} from '@angular/core';
17 import {DashboardApiService} from "src/app/core/services/dashboard-api.service";
18 import {NgbModal} from "@ng-bootstrap/ng-bootstrap";
19 import {Template,newTemplate} from "src/app/core/models/template.model";
21 import {NgxSpinnerService} from "ngx-spinner";
24 import {NewTemplateModalComponent} from "./new-template-modal/new-template-modal.component";
25 import {EditTemplateModalComponent} from "./edit-template-modal/edit-template-modal.component";
26 import {AlertComponent} from "src/app/core/alert/alert.component";
28 import {ToastrNotificationService} from "src/app/core/services/toastr-notification.service";
31 selector: 'app-template-list',
32 templateUrl: './template-list.component.html',
33 styleUrls: ['./template-list.component.css']
35 export class TemplateListComponent {
36 template_list: any = [];
37 templates: Template[] = [];
38 temps: Template[] = [];
39 Template_New: Template;
40 Template_Newbody: newTemplate;
41 dashboardDeteleModelShow = true;
42 loadingIndicator: boolean = true;
45 <div class="d-flex justify-content-center">
47 <label class="dl-nodata">No Data</label>
52 @ViewChild("searchText") searchText: ElementRef;
54 private modalService: NgbModal,
55 private dashboardApiService: DashboardApiService,
56 private spinner: NgxSpinnerService,
57 private notificationService: ToastrNotificationService,
60 this.loadingIndicator = false;
63 this.initData().then(data => {
64 this.initTemplateList(this.template_list).then(
66 // for cache of datatable
67 this.temps = [...data];
68 this.templates = data;
82 this.template_list = [];
83 this.template_list = await this.getTemplateList();
84 this.Template_New = new Template();
85 this.Template_Newbody = new newTemplate();
91 return this.dashboardApiService.getTemplateAll().toPromise();
94 async initTemplateList(template_list: []) {
95 var t: Template[] = [];
96 for (var i = 0; i < template_list.length; i++) {
97 let data = template_list[i];
101 submitted: data["submitted"],
104 topic: data["topic"],
105 designType: data["designType"],
106 display: data["display"],
115 const modalRef = this.modalService.open(NewTemplateModalComponent, {
116 windowClass: "dl-md-modal templatess",
119 this.Template_New = new Template();
120 this.Template_Newbody = new newTemplate();
121 modalRef.componentInstance.template = this.Template_Newbody;
122 modalRef.componentInstance.templatelist_length = this.template_list.length;
123 modalRef.componentInstance.passEntry.subscribe(receivedEntry => {
124 this.Template_Newbody = receivedEntry;
125 let name = this.Template_Newbody.name;
126 this.dashboardApiService
127 .createNewTemplate(this.Template_Newbody)
130 if (res.statusCode == 200) {
131 this.Template_New = res.returnBody;
132 console.log(this.Template_New,"this.Template_New add Success");
133 this.template_list.push(this.Template_New);
134 this.template_list = [...this.template_list];
135 console.log(this.template_list, "this.template_list,inserted");
136 this.notificationService.success("SUCCESSFULLY_CREARED");
138 this.notificationService.error("FAILED_CREARED");
143 this.notificationService.error(err);
151 const emitType = event.type;
152 if(emitType == "dblclick"){
153 console.log('Activate Event', event);
154 let id = event.row.id;
155 this.editTemplateModal(id);
160 editTemplateModal(id) {
161 const index = this.template_list.findIndex(t => t.id === id);
162 // const name = this.template_list[index].name;
163 const modalRef = this.modalService.open(EditTemplateModalComponent, {
164 windowClass: "dl-md-modal templatess",
167 modalRef.componentInstance.edittemplate = this.template_list[index];
168 modalRef.componentInstance.passEntry.subscribe(receivedEntry => {
169 const name = receivedEntry.name;
170 this.Template_New = receivedEntry;
171 this.dashboardApiService
172 .updateNewTemplate(this.Template_New)
176 if (res.statusCode == 200) {
177 this.template_list[index] = this.Template_New;
178 this.template_list = [...this.template_list];
179 console.log(this.template_list, "this.template_list,update");
180 this.notificationService.success("SUCCESSFULLY_UPDATED");
182 this.notificationService.error("FAILED_UPDATED");
187 this.notificationService.error(err);
194 deleteTemplateModel(id: number) {
195 const index = this.template_list.findIndex(t => t.id === id);
196 const modalRef = this.modalService.open(AlertComponent, {
200 const name = this.template_list[index].name;
201 // modalRef.componentInstance.dashboardDeteleModelShow = this.dashboardDeteleModelShow;
202 modalRef.componentInstance.message = "ARE_YOU_SURE_DELETE";
203 modalRef.componentInstance.passEntry.subscribe(receivedEntry => {
205 this.dashboardApiService.DeleteTemplate(id).subscribe(
207 console.log(res,"template detele res");
208 console.log(JSON.stringify(res).length,"JSON.stringify(res).length");
209 if (JSON.stringify(res).length<=2) {
210 console.log("Success deleted template");
211 this.template_list.splice(index, 1);
212 this.template_list = [...this.template_list];
213 this.notificationService.success("SUCCESSFULLY_DELETED");
215 console.log("Fail deleted template");
216 this.notificationService.error("FAILED_DELETED");
222 this.notificationService.error(err);
230 deployTemplate(id: number) {
231 const index = this.template_list.findIndex(t => t.id === id);
232 const name = this.template_list[index].name;
233 const body = this.template_list[index];
235 this.dashboardApiService.deployTemplateKibana(id, body).subscribe(
238 console.log(res,"template deploy res");
239 console.log(JSON.stringify(res).length,"JSON.stringify(res).length");
240 if (JSON.stringify(res).length<=2) {
241 this.notificationService.success("Deploy_SUCCESSFULLY");
243 this.notificationService.error("Deploy_FAILED");
248 this.notificationService.error(err);
253 updateFilter(searchValue) {
254 const val = searchValue.toLowerCase();
256 const temps = this.temps.filter(function (d) {
257 return d.name.toLowerCase().indexOf(val) !== -1 || !val;
260 this.template_list = temps;