Skip to content
Snippets Groups Projects
Commit 276871f3 authored by Tifenn Guillas's avatar Tifenn Guillas
Browse files

Gestion des accordeons pour criteria => DONE

parent 3412a95b
No related branches found
No related tags found
2 merge requests!68Develop,!18Resolve "Gestion des accordeons"
......@@ -33,8 +33,4 @@ export class CriteriaByFamilyComponent {
add(criterion: Criterion): void {
this.addCriterion.emit(criterion);
}
delete(id: number): void {
this.deleteCriterion.emit(id);
}
}
......@@ -7,70 +7,27 @@
<div class="border rounded my-2">
<p class="border-bottom bg-light text-primary py-4 pl-4">{{ criteriaFamilyList[0].label }}</p>
<div class="px-3">
<app-criteria-by-family [criteriaFamily]="criteriaFamilyList[0]" [datasetAttributeList]="datasetAttributeList"
[criteriaList]="criteriaList" (addCriterion)="addCriterion($event)">
<app-criteria-by-family [criteriaFamily]="criteriaFamilyList[0]"
[datasetAttributeList]="datasetAttributeList" [criteriaList]="criteriaList"
(addCriterion)="add($event)">
</app-criteria-by-family>
</div>
</div>
</div>
<accordion *ngIf="!isLoading() && criteriaFamilyList.length > 1">
<accordion-group #ag *ngFor="let family of criteriaFamilyList" [panelClass]="'custom-accordion'" class="my-2"
[isOpen]="true">
<button class="btn btn-link btn-block clearfix" accordion-heading>
<div class="pull-left float-left">
{{ family.label }}
&nbsp;
<span *ngIf="ag.isOpen"><i class="fas fa-chevron-up"></i></span>
<span *ngIf="!ag.isOpen"><i class="fas fa-chevron-down"></i></span>
</div>
</button>
<div *ngFor="let attribute of getAttributeByFamily(family.id)">
<div [ngSwitch]="attribute.search_type">
<div *ngSwitchCase="'fd'">
<app-field class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[placeholder]="attribute.placeholder_min" [criterion]="getCriterion(attribute.id)"
(add)="add($event)">
</app-field>
</div>
<div *ngSwitchCase="'bw'">
<app-between class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[placeholderMin]="attribute.placeholder_min" [placeholderMax]="attribute.placeholder_max"
[criterion]="getCriterion(attribute.id)" (add)="add($event)">
</app-between>
</div>
<div *ngSwitchCase="'se'">
<app-select class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[options]="getOptions(attribute.id)" [criterion]="getCriterion(attribute.id)"
(add)="add($event)">
</app-select>
</div>
<div *ngSwitchCase="'ms'">
<app-select-multiple class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[options]="getOptions(attribute.id)" [criterion]="getCriterion(attribute.id)"
(add)="add($event)">
</app-select-multiple>
</div>
<div *ngSwitchCase="'dl'">
<app-datalist class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[placeholder]="attribute.placeholder_min" [options]="getOptions(attribute.id)"
[criterion]="getCriterion(attribute.id)" (add)="add($event)"></app-datalist>
</div>
<div *ngSwitchCase="'rd'">
<app-radio class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[options]="getOptions(attribute.id)" [criterion]="getCriterion(attribute.id)"
(add)="add($event)">
</app-radio>
</div>
<div *ngSwitchCase="'cb'">
<app-checkbox class="criteria" [id]="attribute.id" [label]="attribute.form_label"
[options]="getOptions(attribute.id)" [criterion]="getCriterion(attribute.id)"
(add)="add($event)">
</app-checkbox>
</div>
<div *ngSwitchDefault>
{{attribute.search_type}} search type not supported
</div>
</div>
<accordion *ngIf="!isLoading() && criteriaFamilyList.length > 1">
<accordion-group #ag *ngFor="let family of criteriaFamilyList" [panelClass]="'custom-accordion'" class="my-2"
[isOpen]="true">
<button class="btn btn-link btn-block clearfix" accordion-heading>
<div class="pull-left float-left">
{{ family.label }}
&nbsp;
<span *ngIf="ag.isOpen"><i class="fas fa-chevron-up"></i></span>
<span *ngIf="!ag.isOpen"><i class="fas fa-chevron-down"></i></span>
</div>
</accordion-group>
</accordion>
\ No newline at end of file
</button>
<app-criteria-by-family [criteriaFamily]="family" [datasetAttributeList]="datasetAttributeList"
[criteriaList]="criteriaList" (addCriterion)="add($event)">
</app-criteria-by-family>
</accordion-group>
</accordion>
\ No newline at end of file
......@@ -14,7 +14,6 @@ export class CriteriaTabsComponent {
@Input() datasetAttributeList: Attribute[];
@Input() criteriaList: Criterion[];
@Output() addCriterion: EventEmitter<Criterion> = new EventEmitter();
@Output() deleteCriterion: EventEmitter<number> = new EventEmitter();
isLoading() {
if (this.criteriaFamilyList.length > 0 && this.datasetAttributeList.length > 0) {
......@@ -24,25 +23,7 @@ export class CriteriaTabsComponent {
}
}
getAttributeByFamily(idFamily) {
return this.datasetAttributeList
.filter(attribute => attribute.id_criteria_family === idFamily)
.sort((a, b) => a.criteria_display - b.criteria_display);
}
getOptions(idAttribute) {
return JSON.parse(this.datasetAttributeList.find(attribute => attribute.id === idAttribute).options);
}
getCriterion(id: number): Criterion {
return this.criteriaList.find(criterion => criterion.id === id);
}
add(criterion: Criterion): void {
this.addCriterion.emit(criterion);
}
delete(id: number): void {
this.deleteCriterion.emit(id);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment