Home page carousel
[eliot.git] / blueprints / common / eliot-ui / frontend-src / src / app / nodes / nodes.component.ts
1 import { Component, OnInit, ViewChild, Inject } from '@angular/core';
2 import { MatPaginator } from '@angular/material/paginator';
3 import { MatTableDataSource } from '@angular/material/table';
4 import { nodeDetailss, nodinfo } from './../../app/datainterface';
5 import { nodeDetails } from './../datainterface';
6 import { EliotserviceService } from '../eliotservice.service';
7
8 import { NgxPermissionsService } from 'ngx-permissions';
9
10 import {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';
11
12 // import { DialogOverviewExampleDialog } from './../nodes';
13 import { debug } from 'util';
14
15 export interface DialogData {
16   animal: string;
17   name: string;
18 }
19
20 @Component({
21   selector: 'app-nodes',
22   templateUrl: './nodes.component.html',
23   styleUrls: ['./nodes.component.scss']
24 })
25
26 export class NodesComponent implements OnInit {
27   animal: string;
28   name: string;
29   nodeInfo = {} as nodeDetails;
30
31   nodeArray = {} as nodinfo;
32   display: boolean;
33   message: string;
34   variable: any;
35   role =  [];
36   hide = true;
37
38   nodeColumns: string [] = ['nodeName','nodeStatus','nodeRole','age','version','internalIp','externalIp','osImage','kernel','containerRuntime'];
39
40   nodeDataSource= new MatTableDataSource<nodinfo>(NODE_INFO_LIST);
41   nodeArrayList = [];
42
43   addNode: boolean;
44   deleteNode: boolean;
45   editNode: boolean;
46
47   @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;
48
49   constructor(
50     private serviceobj:EliotserviceService,
51     public nodeDialog: MatDialog,
52     private permissionsService: NgxPermissionsService
53   ) { }
54
55   ngOnInit() {
56     this.display = true;
57     
58     this.getNodes();
59     this.nodeDataSource.paginator = this.paginator;
60     this.addNode = true;
61     this.editNode = true;
62     this.deleteNode = true;
63
64     this.role[0] = sessionStorage.getItem('roleName');
65     debugger;
66     // this.role[0] = perm[1];
67      debugger;
68     this.permissionsService.loadPermissions(this.role);
69     
70     console.log(this.role);
71     
72   }
73
74   nodeFilter(filterValue: string) {
75     this.nodeDataSource.filter = filterValue.trim().toLowerCase();
76   }
77
78   getNodes() {
79     this.serviceobj.getNodesInfoo()
80        .subscribe(data => {
81         debugger;
82         this.nodeInfo = data;
83         this.nodeArrayList = this.nodeInfo.eliotNodes;
84         this.nodeDataSource = new MatTableDataSource(this.nodeArrayList);
85         this.nodeDataSource.paginator = this.paginator;
86        },
87        error => console.log(error));
88   }
89
90   addNodeDialog() {
91     this.addNode = true;
92     debugger;
93     this.openDialog();
94   }
95
96   deleteNodeDialog() {
97     this.deleteNode = true;
98     debugger;
99     this.openDialog();
100   }
101
102   editNodeDialog() {
103     this.editNode = true;
104     debugger;
105     this.openDialog();
106   }
107
108   // dialogChoose() {
109   //   this.openDialog();  
110   // }
111
112   openDialog(): void {
113     const dialogRef = this.nodeDialog.open(DialogOverviewExampleDialog, {
114       width: '380px',
115       data: {name: this.name, animal: this.animal}
116     });
117
118     dialogRef.afterClosed().subscribe(result => {
119       console.log('The dialog was closed');
120       this.animal = result;
121     });
122   }
123
124 }
125
126 const NODE_LIST: nodeDetailss[] = [
127   {position: 1, nodeName: 'eliot-master', role: 'master', nodeStatus: 'Ready'},
128   {position: 2, nodeName: 'eliot-worker01', role: 'worker', nodeStatus: 'NotReady'},
129   {position: 3, nodeName: 'eliot-worker02', role: 'worker', nodeStatus: 'Ready'}
130 ];
131
132 const NODE_INFO_LIST: nodinfo[] = [
133   { nodeName: '', nodeStatus: '', nodeRole: '', age: '', version: '', internalIp: '', externalIp: '', osImage: '', kernel: '', containerRuntime: ''}
134 ];
135
136 const perm = ["ADMIN", "DEVELOPER"];
137
138
139
140
141
142
143
144
145 @Component({
146   selector: 'dialog-overview-example-dialog',
147   templateUrl: 'dialog-overview-example-dialog.html',
148 })
149 export class DialogOverviewExampleDialog {
150
151   credential = "ELIOT EDGE NODE Credentials";
152   hide = true;
153   constructor(
154     public dialogRef: MatDialogRef<DialogOverviewExampleDialog>,
155     @Inject(MAT_DIALOG_DATA) public data: DialogData) {}
156
157   onNoClick(): void {
158     this.dialogRef.close();
159   }
160
161   
162
163 }