X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=webapp-frontend%2Fsrc%2Fapp%2Fcontrol%2Fcontrol.component.ts;h=1c8839322ad3f25cfce702163452ccb9b06d9b31;hb=3c6dec3133de760191c89a01884acc0614460699;hp=b493587a17b47f6e4133bb15ed730779e06dad2c;hpb=60f422d33e1bab1f81b64cb832333f4d5d8501b5;p=portal%2Fric-dashboard.git
diff --git a/webapp-frontend/src/app/control/control.component.ts b/webapp-frontend/src/app/control/control.component.ts
index b493587a..1c883932 100644
--- a/webapp-frontend/src/app/control/control.component.ts
+++ b/webapp-frontend/src/app/control/control.component.ts
@@ -17,20 +17,23 @@
* limitations under the License.
* ========================LICENSE_END===================================
*/
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { LocalDataSource } from 'ng2-smart-table';
import { ControlService } from '../services/control/control.service';
import { Router } from '@angular/router';
+import { ConfirmDialogService } from './../services/ui/confirm-dialog.service'
+import { NotificationService } from './../services/ui/notification.service'
@Component({
selector: 'app-control',
templateUrl: './control.component.html',
- styleUrls: ['./control.component.css']
+ styleUrls: ['./control.component.css'],
+ encapsulation: ViewEncapsulation.Emulated,
})
export class ControlComponent {
- settings = {
+ settings = {
hideSubHeader: true,
actions: {
columnTitle: 'Actions',
@@ -38,21 +41,22 @@ export class ControlComponent {
edit: false,
delete: false,
custom: [
- { name: 'view', title: 'view', },
- ],
+ { name: 'view', title: 'visibility', },
+ { name: 'undeploy', title: 'close', },
+ ],
position: 'right'
},
columns: {
xapp: {
- title:'xApp Name',
+ title: 'xApp Name',
type: 'string',
},
name: {
- title:'Instance Name',
+ title: 'Instance Name',
type: 'string',
},
- status: {
+ status: {
title: 'Status',
type: 'string',
},
@@ -67,23 +71,58 @@ export class ControlComponent {
txMessages: {
title: 'txMessages',
type: 'array',
- },
+ },
rxMessages: {
- title: 'rxMessages',
- type: 'array',
+ title: 'rxMessages',
+ type: 'array',
},
},
};
source: LocalDataSource = new LocalDataSource();
- constructor(private service: ControlService, private router: Router) {
- this.service.getxAppInstances((instances) => { this.source.load(instances); } );
+ constructor(
+ private service: ControlService,
+ private router: Router,
+ private confirmDialogService: ConfirmDialogService,
+ private notification: NotificationService) {
+ this.service.getxAppInstances((instances) => { this.source.load(instances); });
+ }
+
+ onxAppControlAction(event) {
+ switch (event.action) {
+ case 'view':
+ this.view(event);
+ break;
+ case 'undeploy':
+ this.undeploy(event);
+ break;
+ }
}
view(event): void {
- const url = '/xapp';
- this.router.navigate([url, event]);
+ const url = '/xapp';
+ this.router.navigate([url, event]);
+ }
+
+ undeploy(event): void {
+ this.confirmDialogService.openConfirmDialog('Are you sure you want to undeploy this xApp ?')
+ .afterClosed().subscribe(res => {
+ if (res) {
+ this.service.undeployxApp(event.data.xapp).subscribe(
+ response => {
+ this.service.getxAppInstances((instances) => { this.source.load(instances); });
+ switch (response.status) {
+ case 200:
+ this.notification.success('xApp undeployed successfully!');
+ break;
+ default:
+ this.notification.warn('xApp undeploy failed.');
+ }
+ }
+ );
+ }
+ });
}