+ editAppMetrics(stats?) {
+ const dialogRef = this.dialog.open(StatsDialogComponent, {
+ hasBackdrop: false,
+ data: {
+ instanceKey: this.instanceKey,
+ appName: stats.statsDetails.appName ? stats.statsDetails.appName : '',
+ metricUrl: stats.statsDetails.metricUrl ? stats.statsDetails.metricUrl : '',
+ appId: stats.statsDetails.appId ? stats.statsDetails.appId : 0,
+ isEdit: 'true'
+ }
+ });
+ dialogRef.afterClosed()
+ .subscribe((result: boolean) => {
+ if (result) {
+ this.dataSource.loadTable(this.instanceKey);
+ }
+ });
+ }
+
+ viewAppMetrics(stats?) {
+ this.statsservice.getAppMetricsById(this.instanceKey, stats.statsDetails.appId) .subscribe((res: AppStats) => {
+ this.metricsUrl = this.sanitize.bypassSecurityTrustResourceUrl(res.statsDetails.metricUrl);
+ let tabNotThere:boolean = true;
+ if (this.tabs.length <= 0) {
+ this.tabs.push(res);
+ this.selected.setValue(this.tabs.length - 1);
+ }
+ else {
+ for(let i=0; i<this.tabs.length; i++){
+ if (this.tabs[i].statsDetails.appId == res.statsDetails.appId) {
+ this.tabs[i].statsDetails.appName = res.statsDetails.appName;
+ this.tabs[i].statsDetails.metricUrl = res.statsDetails.metricUrl;
+ this.selected.setValue(i);
+ tabNotThere = false;
+ break;
+ }
+ }
+ if (tabNotThere) {
+ this.tabs.push(res);
+ this.selected.setValue(this.tabs.length - 1);
+ }
+ }
+ });
+ }
+
+ onTabChanged(event: MatTabChangeEvent) {
+ if (event.index>=0)
+ this.viewAppMetrics(this.tabs[event.index]);
+ }
+
+ deleteAppMetrics(stats?) {
+ this.confirmDialogService.openConfirmDialog('Are you sure you want to delete this entry?')
+ .afterClosed().subscribe((res: boolean) => {
+ if (res) {
+
+ this.statsservice.deleteAppMetrics(this.instanceKey, stats.statsDetails.appId).subscribe(() => {
+ for(let i=0; i<this.tabs.length; i++){
+ if (this.tabs[i].instanceKey === this.instanceKey && this.tabs[i].statsDetails.appId == stats.statsDetails.appId) {
+ this.tabs.splice(i, 1);
+ if (this.tabs.length>0) {
+ if (this.tabs[i] == null)
+ i=i-1;
+ this.viewAppMetrics(this.tabs[i]);
+ }
+ break;
+ }
+ }
+ this.dataSource.loadTable(this.instanceKey);
+ });
+ }
+ });
+ }