You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ot...@apache.org on 2018/10/24 15:03:55 UTC

[06/51] [abbrv] metron git commit: METRON-1760 Kill PCAP job should prompt for confirmation (ruffle via nickwallen) closes apache/metron#1199

METRON-1760 Kill PCAP job should prompt for confirmation (ruffle via nickwallen) closes apache/metron#1199


Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/91c410fd
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/91c410fd
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/91c410fd

Branch: refs/heads/feature/METRON-1090-stellar-assignment
Commit: 91c410fd2016d8776aba650b41239c971b706d01
Parents: 8b2f297
Author: ruffle <ft...@gmail.com>
Authored: Tue Sep 18 11:11:44 2018 -0400
Committer: nickallen <ni...@apache.org>
Committed: Tue Sep 18 11:11:44 2018 -0400

----------------------------------------------------------------------
 .../metron-alerts/package-lock.json             | 14 +++
 metron-interface/metron-alerts/package.json     |  1 +
 .../pcap/pcap-panel/pcap-panel.component.html   | 17 +++-
 .../pcap-panel/pcap-panel.component.spec.ts     | 36 +++++++-
 .../app/pcap/pcap-panel/pcap-panel.component.ts |  1 +
 .../metron-alerts/src/app/pcap/pcap.module.ts   |  4 +-
 .../metron-alerts/src/confirm-popover.scss      | 95 ++++++++++++++++++++
 metron-interface/metron-alerts/src/styles.scss  |  1 +
 8 files changed, 166 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/package-lock.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/package-lock.json b/metron-interface/metron-alerts/package-lock.json
index 7d25b51..f927ffe 100644
--- a/metron-interface/metron-alerts/package-lock.json
+++ b/metron-interface/metron-alerts/package-lock.json
@@ -5808,6 +5808,15 @@
       "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
       "dev": true
     },
+    "angular-confirmation-popover": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/angular-confirmation-popover/-/angular-confirmation-popover-4.2.0.tgz",
+      "integrity": "sha512-ItCPzV52user93NRk9rF4Rp8NpawBWJdkNf8+6lH//f5i/N5HY0Aq5Hcch3xk19h9P48k0WZnfwOQL181xe4MQ==",
+      "requires": {
+        "positioning": "^1.3.1",
+        "tslib": "^1.9.0"
+      }
+    },
     "ansi-html": {
       "version": "0.0.7",
       "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
@@ -14148,6 +14157,11 @@
         }
       }
     },
+    "positioning": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/positioning/-/positioning-1.4.0.tgz",
+      "integrity": "sha512-LbN+mgAXtcDdN46xMJ3yZwjndqqYJODaO5qKmU+MVMu5tL3K2dlm1Qha/zh1k2JAFym5HDaZpnPfO4gr91VTRw=="
+    },
     "posix-character-classes": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/package.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/package.json b/metron-interface/metron-alerts/package.json
index 2133b74..14172fd 100644
--- a/metron-interface/metron-alerts/package.json
+++ b/metron-interface/metron-alerts/package.json
@@ -26,6 +26,7 @@
     "@types/jquery": "^3.3.4",
     "ace-builds": "^1.2.6",
     "ajv": "^6.5.1",
+    "angular-confirmation-popover": "^4.2.0",
     "bootstrap": "4.0.0-alpha.6",
     "core-js": "^2.4.1",
     "font-awesome": "^4.7.0",

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.html
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.html b/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.html
index 6b18a5f..37e21ee 100644
--- a/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.html
+++ b/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.html
@@ -19,7 +19,22 @@
     <div class="progress pcap-progress-background">
       <div class="progress-bar progress-bar-animated pcap-progress" role="progressbar" attr.aria-valuenow="{{progressWidth}}" aria-valuemin="0" aria-valuemax="100" [ngStyle]="{'width': progressWidth + '%'}">{{progressWidth}}%</div>
     </div>
-    <button data-qe-id="pcap-cancel-query-button" class="pcap-cancel-query-button btn btn-primary btn-sm" (click)="cancelQuery()" [disabled]="!queryId"></button>
+    <button
+      mwlConfirmationPopover
+      [popoverMessage]="cancelConfirmMessage"
+      placement="left"
+      (confirm)="cancelQuery()"
+      cancelText="No"
+      confirmText="Yes"
+      confirmButtonType="danger"
+      appendToBody="true"
+      popoverClass="pcap-cancel-query-confirm-popover confirm-popover"
+
+      data-qe-id="pcap-cancel-query-button"
+      class="pcap-cancel-query-button btn btn-primary btn-sm"
+      [disabled]="!queryId"
+    >
+    </button>
   </div>
   <div *ngIf="errorMsg" class="alert alert-danger" role="alert" data-qe-id="error">
     {{ errorMsg }}

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.spec.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.spec.ts b/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.spec.ts
index aa9b799..29bd649 100644
--- a/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.spec.ts
+++ b/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.spec.ts
@@ -27,6 +27,7 @@ import { By } from '../../../../node_modules/@angular/platform-browser';
 import { PcapRequest } from '../model/pcap.request';
 import { of, defer } from 'rxjs';
 import { RestError } from '../../model/rest-error';
+import { ConfirmationPopoverModule } from 'angular-confirmation-popover';
 
 @Component({
   selector: 'app-pcap-filters',
@@ -66,6 +67,9 @@ describe('PcapPanelComponent', () => {
 
   beforeEach(async(() => {
     TestBed.configureTestingModule({
+      imports: [
+        ConfirmationPopoverModule.forRoot(),
+      ],
       declarations: [
         FakeFilterComponent,
         FakePcapListComponent,
@@ -346,7 +350,7 @@ describe('PcapPanelComponent', () => {
     expect(fixture.debugElement.query(By.css('[data-qe-id="pcap-cancel-query-button"]'))).toBeDefined();
   });
 
-  it('should hide the progress bar if the user clicks on the cancel button', fakeAsync(() => {
+  it('should hide the progress bar if the user clicks on the cancel button and confirms', fakeAsync(() => {
     component.queryRunning = true;
     component.queryId = '42';
     fixture.detectChanges();
@@ -356,6 +360,12 @@ describe('PcapPanelComponent', () => {
     const cancelBtnEl = cancelBtn.nativeElement;
 
     cancelBtnEl.click();
+    fixture.detectChanges();
+
+    const confirmButton = fixture.debugElement.query(By.css('.pcap-cancel-query-confirm-popover .btn-danger'));
+    const confirmButtonEl = confirmButton.nativeElement;
+
+    confirmButtonEl.click();
     tick();
     fixture.detectChanges();
 
@@ -377,6 +387,12 @@ describe('PcapPanelComponent', () => {
     const cancelBtnEl = cancelBtn.nativeElement;
 
     cancelBtnEl.click();
+    fixture.detectChanges();
+
+    const confirmButton = fixture.debugElement.query(By.css('.pcap-cancel-query-confirm-popover .btn-danger'));
+    const confirmButtonEl = confirmButton.nativeElement;
+
+    confirmButtonEl.click();
     tick();
     fixture.detectChanges();
 
@@ -399,6 +415,12 @@ describe('PcapPanelComponent', () => {
     const cancelBtnEl = cancelBtn.nativeElement;
 
     cancelBtnEl.click();
+    fixture.detectChanges();
+
+    const confirmButton = fixture.debugElement.query(By.css('.pcap-cancel-query-confirm-popover .btn-danger'));
+    const confirmButtonEl = confirmButton.nativeElement;
+
+    confirmButtonEl.click();
     tick();
     fixture.detectChanges();
 
@@ -438,6 +460,12 @@ describe('PcapPanelComponent', () => {
     const cancelBtnEl = cancelBtn.nativeElement;
 
     cancelBtnEl.click();
+    fixture.detectChanges();
+
+    const confirmButton = fixture.debugElement.query(By.css('.pcap-cancel-query-confirm-popover .btn-danger'));
+    const confirmButtonEl = confirmButton.nativeElement;
+
+    confirmButtonEl.click();
     tick();
     fixture.detectChanges();
 
@@ -457,6 +485,12 @@ describe('PcapPanelComponent', () => {
     const cancelBtnEl = cancelBtn.nativeElement;
 
     cancelBtnEl.click();
+    fixture.detectChanges();
+
+    const confirmButton = fixture.debugElement.query(By.css('.pcap-cancel-query-confirm-popover .btn-danger'));
+    const confirmButtonEl = confirmButton.nativeElement;
+
+    confirmButtonEl.click();
     tick();
     fixture.detectChanges();
 

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts b/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts
index 5f262e9..8e4c375 100644
--- a/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts
+++ b/metron-interface/metron-alerts/src/app/pcap/pcap-panel/pcap-panel.component.ts
@@ -46,6 +46,7 @@ export class PcapPanelComponent implements OnInit, OnDestroy {
   pagination: PcapPagination = new PcapPagination();
   savedPcapRequest: {};
   errorMsg: string;
+  cancelConfirmMessage = 'Are you sure want to cancel the running query?';
 
   constructor(private pcapService: PcapService) { }
 

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/src/app/pcap/pcap.module.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/app/pcap/pcap.module.ts b/metron-interface/metron-alerts/src/app/pcap/pcap.module.ts
index a789a8a..be61438 100644
--- a/metron-interface/metron-alerts/src/app/pcap/pcap.module.ts
+++ b/metron-interface/metron-alerts/src/app/pcap/pcap.module.ts
@@ -29,6 +29,7 @@ import { PcapPanelComponent } from './pcap-panel/pcap-panel.component';
 import { PcapPacketLineComponent } from './pcap-packet-line/pcap-packet-line.component';
 import { PcapPaginationComponent } from './pcap-pagination/pcap-pagination.component';
 import { PcapService } from './service/pcap.service';
+import { ConfirmationPopoverModule } from 'angular-confirmation-popover';
 
 @NgModule({
   imports: [
@@ -37,7 +38,8 @@ import { PcapService } from './service/pcap.service';
     FormsModule,
     HttpClientModule,
     ReactiveFormsModule,
-    DatePickerModule
+    DatePickerModule,
+    ConfirmationPopoverModule.forRoot()
   ],
   declarations: [
     PcapListComponent,

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/src/confirm-popover.scss
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/confirm-popover.scss b/metron-interface/metron-alerts/src/confirm-popover.scss
new file mode 100644
index 0000000..2c05270
--- /dev/null
+++ b/metron-interface/metron-alerts/src/confirm-popover.scss
@@ -0,0 +1,95 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+$popover-button-color-confirm: #006EA0;
+$popover-button-border-color-confirm: $popover-button-color-confirm;
+
+$popover-button-color-cancel: #333333;
+$popover-button-border-color-cancel: #0F6F9E;
+
+$popover-background-color: #0C3B43;
+$popover-border-color: #1B596C;
+
+.confirm-popover {
+  background-color: $popover-background-color;
+  border: 1px solid $popover-border-color;
+  color: #999999;
+
+  & .btn {
+    font-size: 14px;
+    cursor: pointer;
+  }
+
+  & .btn-default {
+    background-color: $popover-button-color-cancel;
+    border-color: $popover-button-border-color-cancel;
+    color: #32ABDF;
+
+    &:hover {
+      background-color: #004b6d;
+    }
+  }
+
+  & .btn-danger {
+    background-color: $popover-button-color-confirm;
+    border-color: $popover-button-border-color-confirm;
+    color: white;
+
+    &:hover {
+      background-color: #004b6d;
+      border-color: #004b6d;
+    }
+  }
+
+
+  &.popover-top {
+    &::before {
+      border-top-color: $popover-border-color;
+    }
+    &::after {
+      border-top-color: $popover-background-color;
+      bottom: -9px;
+    }
+  }
+  &.popover-right {
+    &::before {
+      border-right-color: $popover-border-color;
+    }
+    &::after {
+      border-right-color: $popover-background-color;
+      left: -9px;
+    }
+  }
+  &.popover-bottom {
+    &::before {
+      border-bottom-color: $popover-border-color;
+    }
+    &::after {
+      border-bottom-color: $popover-background-color;
+      top: -9px;
+    }
+  }
+  &.popover-left {
+    &::before {
+      border-left-color: $popover-border-color;
+    }
+    &::after {
+      border-left-color: $popover-background-color;
+      right: -9px;
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/metron/blob/91c410fd/metron-interface/metron-alerts/src/styles.scss
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/src/styles.scss b/metron-interface/metron-alerts/src/styles.scss
index 687ad14..614d539 100644
--- a/metron-interface/metron-alerts/src/styles.scss
+++ b/metron-interface/metron-alerts/src/styles.scss
@@ -22,6 +22,7 @@
 @import "metron-dialog.scss";
 @import "../node_modules/pikaday-time/scss/pikaday.scss";
 @import "hexagon";
+@import "confirm-popover.scss";
 
 body,
 button {