From bc9f4ad75bfac4c5d51b251982e65b420f9b14fb Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Wed, 3 Jan 2018 10:16:12 +0100
Subject: [PATCH] =?UTF-8?q?Remplacement=20des=20radios=20"param=C3=A8tre?=
 =?UTF-8?q?=20fix=C3=A9/=C3=A0=20varier/=C3=A0=20calculer"=20par=20des=20b?=
 =?UTF-8?q?outons=20dans=20un=20buttongroup?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../param-field-line.component.html           | 49 +++++--------
 .../param-field-line.component.ts             | 70 ++++++++++++-------
 2 files changed, 62 insertions(+), 57 deletions(-)

diff --git a/src/app/components/param-field-line/param-field-line.component.html b/src/app/components/param-field-line/param-field-line.component.html
index d351ac52a..ba9d29cca 100644
--- a/src/app/components/param-field-line/param-field-line.component.html
+++ b/src/app/components/param-field-line/param-field-line.component.html
@@ -4,42 +4,25 @@
         <param-input [inputDisabled]="isInputDisabled" [param]="_param" [title]="title"></param-input>
     </div>
 
-    <!-- radio "fixé" -->
-    <div class="col-4 col-sm-2">
-        <input *ngIf="hasRadioFix()" type="radio" name="radio_param_{{symbol}}" value="fix" (click)="onRadioClick(symbol, 'fix')"
-            [checked]=radioFixCheck [disabled]=isDisabled id="radio_fix" />
-        <label *ngIf="hasRadioFix()" for="radio_fix">{{uitextParamFixe}}</label>
-    </div>
+    <div class="btn-group" role="group">
+        <!-- radio "fixé" -->
+        <label class="{{radioFixClass}} h-50 px-3 py-2" [(ngModel)]="radioModel" mdbRadio="Left" name="radio_param_{{symbol}}" value="fix"
+            (click)="onRadioClick(symbol, 'fix')" [checked]=radioFixCheck [disabled]=isDisabled id="radio_fix">
+            {{uitextParamFixe}}
+        </label>
 
-    <!-- radio "varier" -->
-    <div class="col-4 col-sm-2">
-        <input *ngIf="hasRadioVar()" type="radio" name="radio_param_{{symbol}}" value="var" (click)="onRadioClick(symbol,
-            'var')" [checked]=radioVarCheck [disabled]=isDisabled id="radio_var" />
-        <label *ngIf="hasRadioVar()" for="radio_var">{{uitextParamVarier}}</label>
-    </div>
+        <!-- radio "varier" -->
+        <label class="{{radioVarClass}} h-50 px-3 py-2" [(ngModel)]="radioModel" mdbRadio="Middle" name="radio_param_{{symbol}}"
+            value="var" (click)="onRadioClick(symbol, 'var')" [checked]=radioVarCheck [disabled]=isDisabled id="radio_var">
+            {{uitextParamVarier}}
+        </label>
 
-    <!-- radio "calculer" -->
-    <div class="col-4 col-sm-2">
-        <input *ngIf="hasRadioCal()" type="radio" name="radio_param_{{symbol}}" value="cal" (click)="onRadioClick(symbol,
-                            'cal')" [checked]=radioCalCheck [disabled]=isDisabled id="radio_cal" />
-        <label *ngIf="hasRadioCal()" for="radio_cal">{{uitextParamCalculer}}</label>
+        <!-- radio "calculer" -->
+        <label class="{{radioCalClass}} h-50 px-3 py-2" [(ngModel)]="radioModel" mdbRadio="Right" name="radio_param_{{symbol}}" value="cal"
+            (click)="onRadioClick(symbol, 'cal')" [checked]=radioCalCheck [disabled]=isDisabled id="radio_cal">
+            {{uitextParamCalculer}}
+        </label>
     </div>
-
-    <!-- <div class="btn-group" role="group"> -->
-    <!-- <label class="btn {{radioFixClass}} btn-sm h-50" aria-pressed="false" [(ngModel)]="radioModel" mdbRadio="Left" mdbRippleRadius
-        name="radio_param_{{symbol}}" value="fix" (click)="onRadioClick(symbol, 'fix')" [checked]=radioFixCheck [disabled]=isDisabled
-        id="radio_fix">
-        {{uitextParamFixe}}
-    </label>
-    <label class="btn {{radioVarClass}} btn-sm h-50" [(ngModel)]="radioModel" mdbRadio="Middle" mdbRippleRadius name="radio_param_{{symbol}}"
-        value="var" (click)="onRadioClick(symbol, 'var')" [checked]=radioVarCheck [disabled]=isDisabled id="radio_var">
-        {{uitextParamVarier}}
-    </label>
-    <label class="btn {{radioCalClass}} btn-sm h-50" [(ngModel)]="radioModel" mdbRadio="Right" mdbRippleRadius name="radio_param_{{symbol}}"
-        value="cal" (click)="onRadioClick(symbol, 'cal')" [checked]=radioCalCheck [disabled]=isDisabled id="radio_cal">
-        {{uitextParamCalculer}}
-    </label> -->
-    <!-- </div> -->
 </div>
 
 <div *ngIf="isRadioVarChecked" class="row">
diff --git a/src/app/components/param-field-line/param-field-line.component.ts b/src/app/components/param-field-line/param-field-line.component.ts
index 08385a6f3..9e4addee9 100644
--- a/src/app/components/param-field-line/param-field-line.component.ts
+++ b/src/app/components/param-field-line/param-field-line.component.ts
@@ -7,7 +7,23 @@ import { NgParameter, ParamRadioConfig } from "../../formulaire/ngparam";
 
 @Component({
     selector: "param-field-line",
-    templateUrl: "./param-field-line.component.html"
+    templateUrl: "./param-field-line.component.html",
+    styles: [
+        `.btn-on {
+            color:#505050;
+            border: 3px solid #505050;
+            background-color:white;
+            text-transform: uppercase;
+            font-size: 0.8em;
+        }`,
+        `.btn-off {
+            color:white;
+            border: 3px solid #505050;
+            background-color:#505050;
+            text-transform: uppercase;
+            font-size: 0.8em;
+        }`
+    ]
 })
 export class ParamFieldLineComponent {
     @Input("param")
@@ -60,7 +76,6 @@ export class ParamFieldLineComponent {
      * calcule la présence du radio "paramètre fixé"
      */
     private hasRadioFix(): boolean {
-        // switch (this._option) {
         switch (this._param.radioConfig) {
             case ParamRadioConfig.FIX:
                 return false;
@@ -74,7 +89,6 @@ export class ParamFieldLineComponent {
      * calcule la présence du radio "paramètre à varier"
      */
     private hasRadioVar(): boolean {
-        // switch (this._option) {
         switch (this._param.radioConfig) {
             case ParamRadioConfig.VAR:
             case ParamRadioConfig.CAL:
@@ -89,7 +103,6 @@ export class ParamFieldLineComponent {
     * calcule la présence du radio "paramètre à calculer"
     */
     private hasRadioCal(): boolean {
-        // switch (this._option) {
         switch (this._param.radioConfig) {
             case ParamRadioConfig.CAL:
                 return true;
@@ -171,24 +184,33 @@ export class ParamFieldLineComponent {
         return this._param.radioState != ParamRadioConfig.FIX;
     }
 
-    // /**
-    //  * classe du radio "fixé"
-    //  */
-    // private get radioFixClass(): string {
-    //     return this.radioFixCheck == undefined ? "btn-primary" : "btn-outline-primary";
-    // }
-
-    // /**
-    //  * classe du radio "varier"
-    //  */
-    // private get radioVarClass(): string {
-    //     return this.radioVarCheck == undefined ? "btn-primary" : "btn-outline-primary";
-    // }
-
-    // /**
-    //  * classe du radio "calculer"
-    //  */
-    // private get radioCalClass(): string {
-    //     return this.radioCalCheck == undefined ? "btn-primary" : "btn-outline-primary";
-    // }
+    /**
+     * classe du radio "fixé"
+     */
+    private on = true;
+    private onClass = "btn-on"
+    private offClass = "btn-off"
+    private get radioFixClass(): string {
+        if (this.on)
+            return this.radioFixCheck == undefined ? this.offClass : this.onClass;
+        return "";
+    }
+
+    /**
+     * classe du radio "varier"
+     */
+    private get radioVarClass(): string {
+        if (this.on)
+            return this.radioVarCheck == undefined ? this.offClass : this.onClass;
+        return "";
+    }
+
+    /**
+     * classe du radio "calculer"
+     */
+    private get radioCalClass(): string {
+        if (this.on)
+            return this.radioCalCheck == undefined ? this.offClass : this.onClass;
+        return "";
+    }
 }
-- 
GitLab