From e020aa2d43845dd94b4642fa5b10df41d3df83a3 Mon Sep 17 00:00:00 2001 From: Tifenn Guillas <tifenn.guillas@lam.fr> Date: Fri, 4 Sep 2020 17:38:10 +0200 Subject: [PATCH] WIP: Add datasets result component --- src/app/search-multiple/components/index.ts | 4 +- .../result/datasets-result.component.html | 24 +++++++ .../result/datasets-result.component.spec.ts | 64 +++++++++++++++++++ .../result/datasets-result.component.ts | 32 ++++++++++ .../components/result/overview.component.css | 11 ---- .../components/result/overview.component.ts | 3 +- .../containers/result-multiple.component.html | 7 ++ 7 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 src/app/search-multiple/components/result/datasets-result.component.html create mode 100644 src/app/search-multiple/components/result/datasets-result.component.spec.ts create mode 100644 src/app/search-multiple/components/result/datasets-result.component.ts delete mode 100644 src/app/search-multiple/components/result/overview.component.css diff --git a/src/app/search-multiple/components/index.ts b/src/app/search-multiple/components/index.ts index ef587c0f..e9759b2e 100644 --- a/src/app/search-multiple/components/index.ts +++ b/src/app/search-multiple/components/index.ts @@ -3,11 +3,13 @@ import { SummaryMultipleComponent } from './summary-multiple.component'; import { DatasetListComponent } from './datasets/dataset-list.component'; import { DatasetsByProjetComponent } from './datasets/datasets-by-projet.component'; import { OverviewComponent } from './result/overview.component'; +import { DatasetsResultComponent } from './result/datasets-result.component'; export const dummiesComponents = [ ProgressBarMultipleComponent, SummaryMultipleComponent, DatasetListComponent, DatasetsByProjetComponent, - OverviewComponent + OverviewComponent, + DatasetsResultComponent ]; \ No newline at end of file diff --git a/src/app/search-multiple/components/result/datasets-result.component.html b/src/app/search-multiple/components/result/datasets-result.component.html new file mode 100644 index 00000000..c1dd6ccc --- /dev/null +++ b/src/app/search-multiple/components/result/datasets-result.component.html @@ -0,0 +1,24 @@ +<div *ngIf="datasetsCountIsLoaded"> + <div *ngFor="let dataset of getSelectedDatasetOrderedByProject()"> + {{ dataset.label }} + </div> +</div> + + +<!-- <app-result-datatable--> +<!-- [datasetName]="datasetName | async"--> +<!-- [datasetList]="datasetList | async"--> +<!-- [queryParams]="queryParams | async"--> +<!-- [datasetAttributeList]="datasetAttributeList | async"--> +<!-- [outputList]="outputList | async"--> +<!-- [searchData]="searchData | async"--> +<!-- [dataLength]="dataLength | async"--> +<!-- [selectedData]="selectedData | async"--> +<!-- (getSearchData)="getSearchData($event)"--> +<!-- (addSelectedData)="addSearchData($event)"--> +<!-- (deleteSelectedData)="deleteSearchData($event)"--> +<!-- [processWip]="processWip | async"--> +<!-- [processDone]="processDone | async"--> +<!-- [processId]="processId | async"--> +<!-- (executeProcess)="executeProcess($event)">--> +<!-- </app-result-datatable>--> \ No newline at end of file diff --git a/src/app/search-multiple/components/result/datasets-result.component.spec.ts b/src/app/search-multiple/components/result/datasets-result.component.spec.ts new file mode 100644 index 00000000..2b508775 --- /dev/null +++ b/src/app/search-multiple/components/result/datasets-result.component.spec.ts @@ -0,0 +1,64 @@ +// import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +// import { RouterTestingModule } from '@angular/router/testing'; +// import { By } from '@angular/platform-browser'; +// +// import { ProgressBarComponentMultiple } from './progress-bar.component'; +// +// describe('[Search] Component: ProgressBarComponent', () => { +// let component: ProgressBarComponentMultiple; +// let fixture: ComponentFixture<ProgressBarComponentMultiple>; +// +// beforeEach(async(() => { +// TestBed.configureTestingModule({ +// declarations: [ProgressBarComponentMultiple], +// imports: [RouterTestingModule] +// }).compileComponents(); +// })); +// +// beforeEach(() => { +// fixture = TestBed.createComponent(ProgressBarComponentMultiple); +// component = fixture.componentInstance; +// fixture.detectChanges(); +// }); +// +// it('should create the component', () => { +// expect(component).toBeTruthy(); +// }); +// +// it('#getStepClass() should return correct step class', () => { +// let style = component.getStepClass(); +// expect(style).toBe('datasetStep'); +// component.currentStep = 'dataset'; +// style = component.getStepClass(); +// expect(style).toBe('datasetStep'); +// component.currentStep = 'criteria'; +// style = component.getStepClass(); +// expect(style).toBe('criteriaStep'); +// component.currentStep = 'output'; +// style = component.getStepClass(); +// expect(style).toBe('outputStep'); +// component.currentStep = 'result'; +// style = component.getStepClass(); +// expect(style).toBe('resultStep'); +// }); +// +// // TODO: Make test working +// // it('should apply the correct class', () => { +// // component.currentStep = 'dataset'; +// // fixture.detectChanges(); +// // let style = fixture.debugElement.query(By.css('#criteriaStep')).nativeElement.getAttribute('class'); +// // expect(style).not.toContain('active'); +// // component.currentStep = 'criteria'; +// // fixture.detectChanges(); +// // style = fixture.debugElement.query(By.css('#criteriaStep')).nativeElement.getAttribute('class'); +// // console.log(style); +// // expect(style).toContain('active'); +// // component.criteriaStepChecked = true; +// // fixture.detectChanges(); +// // style = fixture.debugElement.query(By.css('#criteriaStep')).nativeElement.getAttribute('class'); +// // expect(style).toContain('checked'); +// // const template = fixture.nativeElement; +// // expect(template.querySelector('#criteriaStep')).toBeTruthy(); +// // }); +// }); +// diff --git a/src/app/search-multiple/components/result/datasets-result.component.ts b/src/app/search-multiple/components/result/datasets-result.component.ts new file mode 100644 index 00000000..731687b3 --- /dev/null +++ b/src/app/search-multiple/components/result/datasets-result.component.ts @@ -0,0 +1,32 @@ +import { Component, Input, ChangeDetectionStrategy } from '@angular/core'; + +import { Dataset, Project } from "../../../metamodel/model"; +import { DatasetCount } from "../../store/model"; +import {sortByDisplay} from "../../../shared/utils"; + +@Component({ + selector: 'app-datasets-result', + templateUrl: 'datasets-result.component.html', + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DatasetsResultComponent { + @Input() datasetsCountIsLoaded: boolean; + @Input() projectList: Project[]; + @Input() datasetList: Dataset[]; + @Input() selectedDatasets: string[]; + @Input() datasetsCount: DatasetCount[]; + + getSelectedDatasetOrderedByProject(): Dataset[] { + let datasetsOrdered: Dataset[] = []; + const projectOrderedByName: Project[] = [...this.projectList].sort((a, b) => a.name.localeCompare(b.name)); + console.log(projectOrderedByName); + // projectOrderedByName.map(p => { + // this.datasetList.sort(sortByDisplay).map(d =>{ + // if (this.selectedDatasets.includes(d.name)) { + // datasetsOrdered.push(d); + // } + // }); + // }); + return datasetsOrdered; + } +} \ No newline at end of file diff --git a/src/app/search-multiple/components/result/overview.component.css b/src/app/search-multiple/components/result/overview.component.css deleted file mode 100644 index 00747bdc..00000000 --- a/src/app/search-multiple/components/result/overview.component.css +++ /dev/null @@ -1,11 +0,0 @@ -.tab-content { - min-height: 150px; - border-bottom: #dee2e6 solid 1px; - border-left: #dee2e6 solid 1px; - border-right: #dee2e6 solid 1px; -} - -.title { - color: #6c757d; - font-size: 90%; -} diff --git a/src/app/search-multiple/components/result/overview.component.ts b/src/app/search-multiple/components/result/overview.component.ts index eb87430f..18a0d0d2 100644 --- a/src/app/search-multiple/components/result/overview.component.ts +++ b/src/app/search-multiple/components/result/overview.component.ts @@ -6,8 +6,7 @@ import { DatasetCount, SearchMultipleQueryParams } from "../../store/model"; @Component({ selector: 'app-overview', - templateUrl: 'overview.component.html', - styleUrls: ['overview.component.css'] + templateUrl: 'overview.component.html' }) export class OverviewComponent { @Input() set datasetSearchMetaIsLoaded(datasetSearchMetaIsLoaded: boolean) { diff --git a/src/app/search-multiple/containers/result-multiple.component.html b/src/app/search-multiple/containers/result-multiple.component.html index d0fe4b00..0e432499 100644 --- a/src/app/search-multiple/containers/result-multiple.component.html +++ b/src/app/search-multiple/containers/result-multiple.component.html @@ -11,6 +11,13 @@ [datasetsCount]="datasetsCount | async" (getDatasetCount)="getDatasetsCount()"> </app-overview> + <app-datasets-result + [datasetsCountIsLoaded]="datasetsCountIsLoaded | async" + [projectList]="projectList | async" + [datasetList]="datasetList | async" + [selectedDatasets]="selectedDatasets | async" + [datasetsCount]="datasetsCount | async"> + </app-datasets-result> <!-- <app-result-datatable--> <!-- [datasetName]="datasetName | async"--> <!-- [datasetList]="datasetList | async"--> -- GitLab