FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: dt2510 am 14 Oktober 2019, 13:06:46

Titel: data-substitution und data-pre/post-text beim label Widget
Beitrag von: dt2510 am 14 Oktober 2019, 13:06:46
Es taucht immer wieder das Problem auf, dass ich bei der Anzeige von Stückzahlen Ein-/Mehrzahl angeben muss, z.B.

<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es ist/sind " data-post-text=" Lampe(n) eingeschaltet"></div>

Die Anzeige sieht entsprechend so aus

es ist/sind 0 Lampe(n) eingeschaltet
es ist/sind 1 Lampe(n) eingeschaltet
es ist/sind 2 Lampe(n) eingeschaltet

Schöner wäre natürlich

es sind 0 Lampen eingeschaltet
es ist 1 Lampe eingeschaltet
es sind 2 Lampen eingeschaltet

Ich habe es mit data-substitution versucht, aber hier scheint pre/post-text nicht beachtet zu werden

<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es sind " data-post-text=" Lampen eingeschaltet" data-substituition=["sind 1 Lampen","ist 1 Lampe"]></div>

Ergebnis

es sind 0 Lampen eingeschaltet
es sind 1 Lampen eingeschaltet
es sind 2 Lampen eingeschaltet

Wie löst ihr so etwas ?
Titel: Antw:data-substitution und data-pre/post-text beim label Widget
Beitrag von: setstate am 15 Oktober 2019, 20:55:23
Mit RegEx im data-substitution geht das.

<div data-type="label" data-device="ftuitest" data-substitution='["^([02-9]+|[0-9]{2,})$", "$1 Lampen", "^1$", "1 Lampe"]'></div>

pre-text und post-text wird erst nach der data-substitution Behandlung angefügt.
Titel: Antw:data-substitution und data-pre/post-text beim label Widget
Beitrag von: dt2510 am 16 Oktober 2019, 09:33:02
Zitat von: setstate am 15 Oktober 2019, 20:55:23
Mit RegEx im data-substitution geht das.

<div data-type="label" data-device="ftuitest" data-substitution='["^([02-9]+|[0-9]{2,})$", "$1 Lampen", "^1$", "1 Lampe"]'></div>

pre-text und post-text wird erst nach der data-substitution Behandlung angefügt.

auf die Idee bin ich noch gar nicht gekommen ...

sähe dann bei mir also so aus:
<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es " data-post-text=" eingeschaltet" data-substituition=["^([02-9]+|[0-9]{2,})$", "sind $1 Lampen", "^1$", "ist 1 Lampe"]></div>

Ich muss unbedingt in RegEx fitter werden ... gibt es da eine einigermäßen verständliche Dokumentation (zumal RegEx meines Wissens ja nicht überall gleich ist ...)
Titel: Antw:data-substitution und data-pre/post-text beim label Widget
Beitrag von: Eisix am 17 Oktober 2019, 14:16:05
Hallo,


https://regex101.com/
(https://regex101.com/)

sollte dir helfen.

Gruß
Eisix