Skip to content
Snippets Groups Projects
Commit 8efe923a authored by francois.grand's avatar francois.grand
Browse files

#27 : ajout des templates de fieldset

parent ec4c2616
No related branches found
No related tags found
1 merge request!12Resolve "Ajout de la calculette "Ouvrages hydrauliques""
......@@ -4,6 +4,13 @@
"type": "fieldset",
"option": "cal",
"fields": [
{
"type": "input",
"id": "Q",
"symbol": "Q",
"unit": "m³/s",
"value": 0.5
},
{
"type": "input",
"id": "Z1",
......@@ -15,11 +22,55 @@
"id": "Z2",
"unit": "m",
"value": 1
}
]
},
{
"id": "fs_struct_cem88d",
"type": "fieldset_template",
"structType": "Cem88d",
"option": "cal",
"fields": [
{
"type": "input",
"id": "ZDV",
"unit": "m",
"value": 1
},
{
"type": "input",
"id": "Q",
"unit": "m³/s",
"id": "L",
"unit": "m",
"value": 1
},
{
"type": "input",
"id": "Cd",
"value": 0.5
}
]
},
{
"id": "fs_struct_cem88v",
"type": "fieldset_template",
"structType": "Cem88v",
"option": "cal",
"fields": [
{
"type": "input",
"id": "ZDV",
"unit": "m",
"value": 1
},
{
"type": "input",
"id": "L",
"unit": "m",
"value": 1
},
{
"type": "input",
"id": "Cd",
"value": 0.5
}
]
......@@ -36,7 +87,6 @@
]
},
{
"type": "options",
"idCal": "J"
"type": "options"
}
]
\ No newline at end of file
{
"fs_param_hydro": "Paramètres hydrauliques",
"Q": "Débit total",
"Z1": "Cote amont",
"Z2": "Cote aval",
"Q": "Débit total",
"fs_struct_cem88d": "Cem88d",
"ZDV": "Cote de la crête du déversoir ou du radier de la vanne",
"L": "Largeur du déversoir",
"Cd": "Coefficient de débit",
"fs_struct_cem88v": "Cem88v",
"fs_param_calc": "Paramètres de calcul",
"Pr": "Précision de calcul"
}
\ No newline at end of file
......@@ -10,15 +10,22 @@ import { NgParameter } from "./ngparam";
export class FieldSet extends FormulaireElement {
private _fields: Field[];
constructor(nodeType: ComputeNodeType, id: string, formId: number) {
private _template: boolean;
constructor(nodeType: ComputeNodeType, id: string, formId: number, tmpl: boolean) {
super(nodeType, id, formId);
this._fields = [];
this._template = tmpl;
}
public get fields() {
return this._fields;
}
public get isTemplate(): boolean {
return this._template;
}
public addField(f: Field) {
this._fields.push(f);
}
......
......@@ -126,12 +126,15 @@ export class FormulaireDefinition extends Observable implements Observer {
public getFieldSets(): FieldSet[] {
let res: FieldSet[] = [];
if (this.hasSectionNodeTypeSelect) {
for (let fs of this._fieldSets)
if (fs.computeNodeType == this._sectionNodeType || fs.computeNodeType == ComputeNodeType.None)
res.push(fs);
} else {
res = this._fieldSets;
for (let fs of this._fieldSets) {
const ok = !fs.isTemplate && (
!this.hasSectionNodeTypeSelect ||
fs.computeNodeType == this._sectionNodeType ||
fs.computeNodeType == ComputeNodeType.None
);
if (ok)
res.push(fs);
}
return res;
......@@ -509,21 +512,20 @@ export class FormulaireDefinition extends Observable implements Observer {
return res;
}
private parse_fieldset(fieldset: {}) {
const fs_id: string = fieldset["id"];
const nt: string = fieldset["nodeType"];
private parse_fieldset(json: {}) {
const fs_id: string = json["id"];
const nt: string = json["nodeType"];
let node_type: ComputeNodeType = nt == undefined ? ComputeNodeType.None : ComputeNodeType[nt];
const res: FieldSet = new FieldSet(node_type, fs_id, this._uid);
const res: FieldSet = new FieldSet(node_type, fs_id, this._uid, json["type"] == "fieldset_template");
this._fieldSets.push(res);
const fields = fieldset["fields"];
const fields = json["fields"];
for (const field_index in fields) {
const field = fields[field_index];
if (field["type"] === "input") {
const param = this.parse_input(node_type, fieldset, field);
if (param != undefined)
res.addField(param);
const param = this.parse_input(node_type, json, field);
res.addField(param);
} else if (field["type"] === "select") {
const param = this.parse_select(node_type, field);
res.addField(param);
......@@ -533,7 +535,7 @@ export class FormulaireDefinition extends Observable implements Observer {
}
}
this.parse_dependencies(res, fieldset);
this.parse_dependencies(res, json);
}
private getOption(option: string): string {
......@@ -558,6 +560,7 @@ export class FormulaireDefinition extends Observable implements Observer {
switch (type) {
// field set
case "fieldset":
case "fieldset_template":
this.parse_fieldset(conf);
break;
......
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