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/07/16 14:21:21 UTC

[incubator-dlab] 03/05: [DLAB-867]: filtering by status and shapes

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

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

commit a322bd86cb3ddaccc57600bc549a99ab7b206498
Author: Andriana Kovalyshyn <An...@epam.com>
AuthorDate: Tue Jul 16 17:20:17 2019 +0300

    [DLAB-867]: filtering by status and shapes
---
 .../resources-grid/resources-grid.component.html   |   4 +-
 .../resources-grid/resources-grid.component.scss   |   6 ++
 .../resources-grid/resources-grid.component.ts     | 101 +++++++++++++--------
 3 files changed, 70 insertions(+), 41 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
index 62c1022..bda825c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
@@ -157,8 +157,8 @@
     </ng-container>
     <ng-container matColumnDef="resource-filter">
       <th mat-header-cell *matHeaderCellDef class="resources-col">
-        <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'resources'"
-          [items]="filterConfiguration.resources" [model]="filterForm.resources"></multi-select-dropdown>
+        <!-- <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'resources'"
+          [items]="filterConfiguration.resources" [model]="filterForm.resources"></multi-select-dropdown> -->
       </th>
     </ng-container>
     <ng-container matColumnDef="cost-filter">
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
index cf2d788..b984844 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
@@ -47,6 +47,12 @@ table {
 
   .filter-row {
     height: 0 !important;
+
+    th {
+      &:last-child {
+        padding-right: 6px;
+      }
+    }
   }
 
   .name-col {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
index a7f868e..a3ec44c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
@@ -58,20 +58,10 @@ export class ResourcesGridComponent implements OnInit {
 
   environments: Exploratory[];
   forse: boolean = true;
-
-
-
-
   filteredEnvironments: Exploratory[] = [];
   filterConfiguration: FilterConfigurationModel = new FilterConfigurationModel('', [], [], [], '');
   filterForm: FilterConfigurationModel = new FilterConfigurationModel('', [], [], [], '');
 
-  isOutscreenDropdown: boolean;
-  collapseFilterRow: boolean = false;
-  filtering: boolean = false;
-  activeFiltering: boolean = false;
-  healthStatus: GeneralEnvironmentStatus;
-
   public filteringColumns: Array<any> = [
     { title: 'Environment name', name: 'name', class: 'name-col', filter_class: 'name-filter', filtering: true },
     { title: 'Status', name: 'statuses', class: 'status-col', filter_class: 'status-filter', filtering: true },
@@ -81,8 +71,25 @@ export class ResourcesGridComponent implements OnInit {
     { title: '', name: 'actions', class: 'actions-col', filter_class: 'action-filter', filtering: false }
   ];
 
-  displayedColumns: string[] = this.filteringColumns.map(item => item.name);
-  displayedFilterColumns: string[] = this.filteringColumns.map(item => item.filter_class);
+  public displayedColumns: string[] = this.filteringColumns.map(item => item.name);
+  public displayedFilterColumns: string[] = this.filteringColumns.map(item => item.filter_class);
+
+
+
+
+
+
+
+  isOutscreenDropdown: boolean;
+  collapseFilterRow: boolean = false;
+  filtering: boolean = false;
+  activeFiltering: boolean = false;
+  healthStatus: GeneralEnvironmentStatus;
+
+
+
+
+
 
   constructor(
     public toastr: ToastrService,
@@ -109,9 +116,8 @@ export class ResourcesGridComponent implements OnInit {
 
 
 
-
-
-  getDefaultFilterConfiguration(): void {
+  // PRIVATE
+  private getDefaultFilterConfiguration(): void {
     const data: Exploratory[] = this.environments;
     const shapes = [], statuses = [], resources = [];
 
@@ -130,36 +136,53 @@ export class ResourcesGridComponent implements OnInit {
     }));
 
     this.filterConfiguration = new FilterConfigurationModel('', statuses, shapes, resources, '');
+  }
 
-    debugger;
+
+
+  private getEnvironmentsListCopy() {
+    // let filteredData: any = this.environments.map(env => (<any>Object).create(env));
+    return this.environments.map(env => JSON.parse(JSON.stringify(env)));
   }
 
+
+
+
   applyFilter_btnClick(config: FilterConfigurationModel) {
     this.filtering = true;
+    let filteredData = this.getEnvironmentsListCopy();
 
-    let filteredData: Exploratory[] = this.environments.map(env => (<any>Object).assign({}, env));
-    // let filteredData: any = this.environments.map(env => (<any>Object).create(env));
-    // const containsStatus = (list, selectedItems) => {
-    //   return list.filter((item: any) => { if (selectedItems.indexOf(item.status) !== -1) return item; });
-    // };
-
-    // config && (filteredData = filteredData.filter((item: any) => {
-    //   const isName = item.name.toLowerCase().indexOf(config.name.toLowerCase()) !== -1;
-    //   const isStatus = config.statuses.length > 0 ? (config.statuses.indexOf(item.status) !== -1) : (config.type !== 'active');
-    //   const isShape = config.shapes.length > 0 ? (config.shapes.indexOf(item.shape) !== -1) : true;
-
-    //   const modifiedResources = containsStatus(item.resources, config.resources);
-    //   let isResources = config.resources.length > 0 ? (modifiedResources.length > 0) : true;
-
-    //   if (config.resources.length > 0 && modifiedResources.length > 0) { item.resources = modifiedResources; }
-    //   if (config.resources.length === 0 && config.type === 'active' ||
-    //     modifiedResources.length >= 0 && config.resources.length > 0 && config.type === 'active') {
-    //     item.resources = modifiedResources;
-    //     isResources = true;
-    //   }
-
-    //   return isName && isStatus && isShape && isResources;
-    // }));
+
+    const containsStatus = (list, selectedItems) => {
+      debugger;
+      return list.filter((item: any) => { if (selectedItems.indexOf(item.status) !== -1) return item; });
+    };
+
+    config && (filteredData.forEach((project: any) => {
+
+
+      debugger;
+
+      project.exploratory = project.exploratory.filter(item => {
+
+        const isName = item.name.toLowerCase().indexOf(config.name.toLowerCase()) !== -1;
+        const isStatus = config.statuses.length > 0 ? (config.statuses.indexOf(item.status) !== -1) : (config.type !== 'active');
+        const isShape = config.shapes.length > 0 ? (config.shapes.indexOf(item.shape) !== -1) : true;
+
+        const modifiedResources = containsStatus(item.resources, config.resources);
+        let isResources = config.resources.length > 0 ? (modifiedResources.length > 0) : true;
+
+        if (config.resources.length > 0 && modifiedResources.length > 0) { item.resources = modifiedResources; }
+
+        if (config.resources.length === 0 && config.type === 'active' ||
+          modifiedResources.length >= 0 && config.resources.length > 0 && config.type === 'active') {
+          item.resources = modifiedResources;
+          isResources = true;
+        }
+        // && isResources
+        return isName && isStatus && isShape;
+      })
+    }));
 
     config && this.updateUserPreferences(config);
     this.filteredEnvironments = filteredData;


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