You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by an...@apache.org on 2019/09/25 14:48:57 UTC

[incubator-dlab] 06/08: [DLAB-472]: added filtering by multiple values

This is an automated email from the ASF dual-hosted git repository.

ankovalyshyn pushed a commit to branch DLAB-1056
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 4c9df434d0ce4749dc1cbad84d837b2158d6751a
Author: Andriana Kovalyshyn <An...@epam.com>
AuthorDate: Wed Sep 25 17:30:40 2019 +0300

    [DLAB-472]: added filtering by multiple values
---
 .../management/management-data.service.ts               |  4 ++++
 .../management-grid/management-grid.component.html      | 13 ++++++++-----
 .../management-grid/management-grid.component.ts        | 17 +++++++++++++----
 3 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts
index 090a253..3078ad9 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts
@@ -35,6 +35,10 @@ export class EnvironmentsDataService {
     this.getAllEnvironmentData();
   }
 
+  public getEnvironmentDataDirect() {
+    return this.manageEnvironmentsService.getAllEnvironmentData().subscribe(response => response);
+  }
+
   private getAllEnvironmentData() {
     this.manageEnvironmentsService.getAllEnvironmentData().subscribe(
       (response) => this._data.next(response));
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
index 95832b5..092e483 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
@@ -18,7 +18,7 @@
   -->
 
 <div class="ani">
-  <table mat-table [dataSource]="allEnvironmentData" class="data-grid management mat-elevation-z6">
+  <table mat-table [dataSource]="allFilteredEnvironmentData" class="data-grid management mat-elevation-z6">
     <ng-container matColumnDef="user">
       <th mat-header-cell *matHeaderCellDef class="user"> User </th>
       <td mat-cell *matCellDef="let element">{{ element.user }}</td>
@@ -162,9 +162,9 @@
           </button>
 
           <button mat-icon-button class="btn apply" (click)="applyFilter(filterForm)"
-            [disabled]="allEnvironmentData?.length == 0 && !filtering">
+            [disabled]="allFilteredEnvironmentData?.length == 0 && !filtering">
             <i class="material-icons"
-              [ngClass]="{'not-allowed': allEnvironmentData?.length == 0 && !filtering}">done</i>
+              [ngClass]="{'not-allowed': allFilteredEnvironmentData?.length == 0 && !filtering}">done</i>
           </button>
         </div>
       </th>
@@ -173,7 +173,10 @@
 
     <ng-container matColumnDef="placeholder">
       <td mat-footer-cell *matFooterCellDef colspan="6" class="info">
-        To start working, please, create new environment
+        <span
+          *ngIf="(!allFilteredEnvironmentData) && !filtering || (allFilteredEnvironmentData?.length == 0) && !filtering">
+          To start working, please, create new environment</span>
+        <span *ngIf="(allFilteredEnvironmentData?.length == 0) && filtering">No matches found</span>
       </td>
     </ng-container>
 
@@ -183,7 +186,7 @@
     <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
 
 
-    <tr [hidden]="allEnvironmentData?.length" mat-footer-row *matFooterRowDef="['placeholder']"></tr>
+    <tr [hidden]="allFilteredEnvironmentData?.length" mat-footer-row *matFooterRowDef="['placeholder']"></tr>
   </table>
 
 </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
index ff62f99..2270693 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
@@ -45,6 +45,7 @@ export interface ManageAction {
 })
 export class ManagementGridComponent implements OnInit {
   allEnvironmentData: Array<any>;
+  allFilteredEnvironmentData: Array<any>;
   loading: boolean = false;
   filterConfiguration: ManagementConfigModel = new ManagementConfigModel([], '', [], [], [], []);
   filterForm: ManagementConfigModel = new ManagementConfigModel([], '', [], [], [], []);
@@ -69,13 +70,17 @@ export class ManagementGridComponent implements OnInit {
 
   ngOnInit() {
     this.environmentsDataService._data.subscribe(data => {
-      this.allEnvironmentData = EnvironmentModel.loadEnvironments(data);
-      this.getDefaultFilterConfiguration(data);
+      if (data) {
+        this.allEnvironmentData = EnvironmentModel.loadEnvironments(data);
+        this.getDefaultFilterConfiguration(data);
+        this.applyFilter(this.filterForm);
+      }
     });
   }
 
   buildGrid(): void {
     this.refreshGrid.emit();
+    this.filtering = false;
   }
 
   public onUpdate($event): void {
@@ -89,7 +94,7 @@ export class ManagementGridComponent implements OnInit {
   }
 
   public applyFilter(config) {
-    let filteredData = this.allEnvironmentData;
+    let filteredData = this.getEnvironmentDataCopy();
 
     const containsStatus = (list, selectedItems) => {
       return list.filter((item: any) => { if (selectedItems.indexOf(item.status) !== -1) return item; });
@@ -119,7 +124,11 @@ export class ManagementGridComponent implements OnInit {
         return isUser && isType && isStatus && isShape && isProject && isResources;
       });
     }
-    this.allEnvironmentData = filteredData;
+    this.allFilteredEnvironmentData = filteredData;
+  }
+
+  getEnvironmentDataCopy() {
+    return this.allEnvironmentData;
   }
 
   toggleResourceAction(environment: any, action: string, resource?): void {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org