Migration to AGL gerrit (update go import)
[src/xds/xds-agent.git] / webapp / src / app / pages / sdks / sdk-card / sdk-card.component.ts
index 8228570..76dc732 100644 (file)
@@ -1,7 +1,27 @@
+/**
+* @license
+* Copyright (C) 2017-2018 "IoT.bzh"
+* Author Sebastien Douheret <sebastien@iot.bzh>
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 import { Component, Input, Pipe, PipeTransform } from '@angular/core';
-import { SdkService, ISdk } from '../../../@core-xds/services/sdk.service';
+import { SdkService, ISdk, StatusType } from '../../../@core-xds/services/sdk.service';
 import { AlertService } from '../../../@core-xds/services/alert.service';
 
+import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
+import { ConfirmModalComponent, EType } from '../../confirm/confirm-modal/confirm-modal.component';
 
 @Component({
   selector: 'xds-sdk-card',
@@ -17,19 +37,37 @@ export class SdkCardComponent {
 
   constructor(
     private alert: AlertService,
-    private sdkSvr: SdkService
+    private sdkSvr: SdkService,
+    private modalService: NgbModal,
   ) {
   }
 
-  labelGet(sdk: ISdk) {
-    return sdk.profile + '-' + sdk.arch + '-' + sdk.version;
+  canRemove(sdk: ISdk) {
+    return sdk.status === StatusType.INSTALLED;
   }
 
-  delete(sdk: ISdk) {
-    this.sdkSvr.delete(sdk).subscribe(
-      res => { },
-      err => this.alert.error('ERROR delete: ' + err)
-    );
+  remove(sdk: ISdk) {
+    const modal = this.modalService.open(ConfirmModalComponent, {
+      size: 'lg',
+      backdrop: 'static',
+      container: 'nb-layout',
+    });
+    modal.componentInstance.title = 'Confirm SDK deletion';
+    modal.componentInstance.type = EType.YesNo;
+    modal.componentInstance.question = `
+    Do you <b>permanently remove '` + sdk.name + `'</b> SDK ?
+    <br><br>
+    <i><small>(SDK ID: ` + sdk.id + ` )</small></i>`;
+
+    modal.result
+      .then(res => {
+        if (res === 'yes') {
+          this.sdkSvr.remove(sdk).subscribe(
+            r => { },
+            err => this.alert.error(err),
+          );
+        }
+      });
   }
 }