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