Skip to content
Snippets Groups Projects
Commit 05a606cb authored by François Grand's avatar François Grand
Browse files

feature: add BasinFieldsetContainerComponent class

refs #522
parent 2e760e47
No related branches found
No related tags found
1 merge request!166Resolve "Prébarrages: Regroupement de la saisie des bassins"
......@@ -121,6 +121,7 @@ import { LoadSessionURLComponent } from "./components/load-session-url/load-sess
import { DialogShowMessageComponent } from "./components/dialog-show-message/dialog-show-message.component";
import { DialogConfirmLoadSessionURLComponent } from "./components/dialog-confirm-load-session-url/dialog-confirm-load-session-url.component";
import { StructureFieldsetContainerComponent } from "./components/structure-fieldset-container/structure-fieldset-container.component";
import { BasinFieldsetContainerComponent } from "./components/basin-fieldset-container/basin-fieldset-container.component";
const appRoutes: Routes = [
{ path: "list/search", component: CalculatorListComponent },
......@@ -211,6 +212,7 @@ const appRoutes: Routes = [
FieldSetComponent,
FieldsetContainerComponent,
StructureFieldsetContainerComponent,
BasinFieldsetContainerComponent,
FixedResultsComponent,
FixedVarResultsComponent,
FlexGtXxsShowHideDirective,
......
{
"fs_basin_params": "Basin parameters",
"basin_container": "Basins",
"fs_basin": "Basin parameters",
"S": "Surface",
"ZF": "Bottom elevation"
......
{
"fs_basin_params": "Paramètres du bassin",
"basin_container": "Bassins",
"fs_basin": "Paramètres du bassin",
"S": "Surface",
"ZF": "Cote de fond"
......
......@@ -27,13 +27,21 @@
"type": "subform",
"config": [
{
"id": "fs_basin_params",
"type": "fieldset",
"id": "fs_basin",
"type": "fieldset_template",
"calcType": "PbBassin",
"fields": [
"S",
"ZF"
]
},
{
"id": "basin_container",
"type": "template_container",
"templates": [
"fs_basin"
]
},
{
"type": "options",
"selectIds": [ ]
......
import { Component } from "@angular/core";
import { I18nService } from "../../services/internationalisation.service";
import { ApplicationSetupService } from "../../services/app-setup.service";
import { FieldsetContainerComponent } from "../fieldset-container/fieldset-container.component";
@Component({
selector: "basin-fieldset-container",
templateUrl: "../fieldset-container/fieldset-container.component.html",
styleUrls: [
"../fieldset-container/fieldset-container.component.scss"
]
})
export class BasinFieldsetContainerComponent extends FieldsetContainerComponent {
constructor(i18nService: I18nService, appSetupService: ApplicationSetupService) {
super(i18nService, appSetupService);
}
}
......@@ -37,7 +37,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
* liste des composants FieldSet enfants
*/
@ViewChildren(FieldSetComponent)
private _fieldsetComponents: QueryList<FieldSetComponent>;
protected _fieldsetComponents: QueryList<FieldSetComponent>;
/**
* flag de validité des FieldSet enfants
......@@ -86,7 +86,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
this._container.addFromTemplate(0, after.indexAsKid());
}
private onFieldsetListChange() {
protected onFieldsetListChange() {
}
public ngAfterViewInit() {
......
......@@ -95,7 +95,8 @@
<div *ngIf="isPB" id="pb-form-container" [hidden]="! showPBInputData"
fxFlex.gt-sm="1 0 400px"
fxFlex.lt-md="1 0 500px"
fxFlex.lt-sm="1 0 300px">
fxFlex.lt-sm="1 0 300px"
fxLayout="column">
<ng-template ngFor let-fe [ngForOf]="formElements">
<field-set *ngIf="isFieldset(fe)"
......@@ -109,6 +110,13 @@
(radio)=onRadioClick($event) (validChange)=onElementValid() (inputChange)=onInputChange($event)
(tabPressed)="onTabPressed($event)">
</structure-fieldset-container>
<basin-fieldset-container *ngIf="isBasinFieldsetContainer(fe)"
[style.display]="getElementStyleDisplay(fe.id)" [_container]=fe
(radio)=onRadioClick($event) (validChange)=onElementValid()
(inputChange)=onInputChange($event) (tabPressed)="onTabPressed($event)"
fxFlex="1 0 auto">
</basin-fieldset-container>
</ng-template>
</div>
......
......@@ -204,6 +204,7 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
if (fe instanceof FieldsetContainer) {
switch (fe.getTemplate(0).calcTypeFromConfig) {
case CalculatorType.Structure:
case CalculatorType.PbBassin:
return false;
default:
......@@ -221,6 +222,14 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, AfterViewChe
return false;
}
/** détermine si un FormulaireElement est du type FieldsetContainer contenant des bassins */
public isBasinFieldsetContainer(fe: any): boolean {
if( fe instanceof FieldsetContainer){
return fe.getTemplate(0).calcTypeFromConfig === CalculatorType.PbBassin;
}
return false;
}
/** détermine si un FormulaireElement est du type PabTable */
public isPabTable(fe: any): boolean {
return fe instanceof PabTable;
......
......@@ -143,6 +143,24 @@ export class FormulairePrebarrage extends FormulaireFixedVar {
this.basinForm.preparseConfig(this.basinFormConfig);
this.basinForm.parseConfig(this.basinFormConfig);
ServiceFactory.formulaireService.updateFormulaireLocalisation(this.basinForm);
// add fieldsets for existing basins
if (node.parent.bassins.length > 0) {
for (const bassin of node.parent.bassins) {
for (const e of this.basinForm.allFormElements) {
if (e instanceof FieldsetContainer) { // @TODO manage many containers one day ?
e.addFromTemplate(0, undefined, bassin, { resetResults: false });
}
}
}
} else {
// if there was no existing basin, add a default one
for (const e of this.basinForm.allFormElements) {
if (e instanceof FieldsetContainer) {
e.addFromTemplate(0, undefined, undefined, { resetResults: false });
break;
}
}
}
this.showFormElements(this.basinForm);
} else if (node instanceof PbCloison) {
......
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