Skip to content
Snippets Groups Projects
Commit 6403762e authored by Dorchies David's avatar Dorchies David
Browse files

Merge branch 'devel' into '596-conduites-en-charge-ajouter-loi-de-strickler'

# Conflicts:
#   jalhyd_branch
parents 338f1c6f 2c80448d
No related branches found
No related tags found
2 merge requests!225Release v4.17.0,!200Resolve "Conduites en charge : ajouter loi de Strickler"
Pipeline #140182 passed
......@@ -304,4 +304,44 @@ describe("ngHyd − calculate with linked parameters", () => {
expect(Number(volume)).toBeCloseTo(44.565, 3);
});
it(" − a link target parameter should not be able to link to another parameter", async () => {
debugger
// create 1st PAB-Chute
await navBar.clickNewCalculatorButton();
await browser.sleep(200);
await listPage.clickMenuEntryForCalcType(12);
await browser.sleep(200);
// upstream water level should not have link mode (only one calculator)
const Z1_1 = calcPage.getInputById("Z1");
expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(false);
// create 2nd PAB-Chute
await navBar.clickNewCalculatorButton();
await browser.sleep(200);
await listPage.clickMenuEntryForCalcType(12);
await browser.sleep(200);
// back to 1st calculator
await navBar.clickCalculatorTab(0);
await browser.sleep(200);
// upstream water level should have link mode (now there are 2 calculators)
expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(true);
// back to 2nd calculator
await navBar.clickCalculatorTab(1);
await browser.sleep(200);
// link upstream water level in 2nd calculator to upstream water level in 1st one
const Z1_2 = calcPage.getInputById("Z1");
await calcPage.setParamMode(Z1_2, "link");
// back to 1st calculator
await navBar.clickCalculatorTab(0);
await browser.sleep(200);
// upstream water level should not have link mode (already a link target)
expect(await calcPage.inputHasLinkModeButton(Z1_1)).toBe(false);
});
});
......@@ -184,6 +184,14 @@ export class CalculatorPage {
return await button.isPresent();
}
async inputHasLinkModeButton(input: ElementFinder) {
// get parent (div.container)
const container = await this.findParentContainer(input);
// find radio buttons
const button: ElementFinder = container.element(by.css("mat-button-toggle.radio_link > button"));
return await button.isPresent();
}
/**
* @returns true if "fixed mode" button linked to an input is selected
*/
......
<IfModule mod_rewrite.c>
# SSL Redirect
# enable Rewrite capabilities
RewriteEngine On
# check the connection is not already HTTPS
RewriteCond %{HTTPS} off
# rewrite URL with https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
<filesMatch "\.json$">
FileETag None
<ifModule mod_headers.c>
......
......@@ -41,6 +41,7 @@
<span fxHide.gt-xxs>C</span>
</mat-button-toggle>
<!-- (click)="onRadioClick('link')" [checked]="isRadioLinkChecked" [disabled]="isRadioLinkDisabled"> -->
<mat-button-toggle class="radio_link" value="radio_link" *ngIf="hasRadioLink()"
(click)="onRadioClick('link')" [checked]="isRadioLinkChecked" [disabled]="! canExitCalcMode()">
<span fxHide.xxs>{{ uitextParamLie }}</span>
......
......@@ -4,7 +4,7 @@ import { I18nService } from "../../services/internationalisation.service";
import { NgParameter, ParamRadioConfig } from "../../formulaire/elements/ngparam";
import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component";
import { ServiceFactory } from "../../services/service-factory";
import { ParamValueMode, ParallelStructure, ParamCalculability, Pab } from "jalhyd";
import { ParamValueMode, ParallelStructure, ParamCalculability, Pab, Session } from "jalhyd";
import { FormulaireService } from "../../services/formulaire.service";
import { ParamLinkComponent } from "../param-link/param-link.component";
import { ParamValuesComponent } from "../param-values/param-values.component";
......@@ -192,7 +192,7 @@ export class ParamFieldLineComponent implements OnChanges {
* calcule la présence du radio "paramètre lié" (importé d'un autre module de calcul)
*/
public hasRadioLink(): boolean {
if (this._formService.formulaires.length > 0) {
if (this._formService.formulaires.length > 0 && !this.isParameterLinkTarget()) {
// au moins 2 modules de calcul ouverts
if (this._formService.formulaires.length > 1) {
return this._formService.getLinkableValues(this.param).length > 0;
......@@ -254,6 +254,20 @@ export class ParamFieldLineComponent implements OnChanges {
return false;
}
/**
* @returns true if parameter is a link target
*/
private isParameterLinkTarget(): boolean {
return Session.getInstance().isParameterLinkTarget(this.param.paramDefinition);
}
/**
* compute link radio button "disabled" status
*/
public get isRadioLinkDisabled(): boolean {
return !this.canExitCalcMode() || this.isParameterLinkTarget();
}
public get radioCalTitle(): string {
if (this.isRadioCalDisabled) {
return this.intlService.localizeText("INFO_PARAMFIELD_CANNOT_CALC_LINKS_LOOP");
......
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