Autor Thema: data-substitution mit Array  (Gelesen 127 mal)

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 863
data-substitution mit Array
« am: 12 Oktober 2018, 09:07:33 »
Servus beinander (oder besser Servus setstate)!

Ich hab gerade ein Problem mit data-substitution, bei dem ich nicht wirklich weiterkomme.
Folgendes Szenario:
Ich lasse mir einen Kalender (=mehrere CALENDARs zusammengefasst über das CALVIEW-Modul) in einer Tabelle über Label-Widgets anzeigen. Im (von mir verwendeten) summary-Reading stehen dann Einträge wie z.B. "Max Mustermann 1970" oder "9E: Praktischer Leistungsnachweis in IT bei XY". Nun möchte ich, der Übersicht und Länge halber, einige Teile dieser Readings ersetzen, bzw. kürzen.
Wenn ich die Jahreszahl aus dem ersten Beispiel entfernen möchte, dann haut das mit
data-substitution="s/(19\d{2}|20\d{2})|21\d{2}//g"wunderbar hin.
Auch wenn ich aus dem anderen Beispiel einige Bestandteile "ersetzen" möchte ("9E: " und "Praktischer Leistungsnachweis"), dann geht das mit
data-substitution="toString()replace('9E: ','').replace('Praktischer Leistungsnachweis','PLN')"hervorragend.
Was leider immer mit einem Fehler
fhem-tablet-ui.min.js:1
SyntaxError: missing name after . operator
endet, ist der Versuch beide Substitutions in ein Array zu packen.
data-substitution='["s/(19\d{2}|20\d{2})|21\d{2}//g","toString()replace('9E: ','').replace('Praktischer Leistungsnachweis','PLN')"]'Mache ich etwas falsch oder wird dieser Use-Case bei data-substitution schlichtweg nicht angenommen?

Beste Grüße,
Tom

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3844
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:data-substitution mit Array
« Antwort #1 am: 22 Oktober 2018, 22:50:08 »
mehrere Replacements kann man so machen:

data-substitution='["alle Fenster sind geschlossen.","alles geschlossen","FensterRechts|FensterLeft|Fenster","<br>","noch offen",""]'
"alle Fenster sind geschlossen." -> "alles geschlossen"
"FensterRechts|FensterLeft|Fenster" -> "<br>"
"noch offen" -> ""

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 863
Antw:data-substitution mit Array
« Antwort #2 am: 23 Oktober 2018, 09:53:58 »
Danke!
Auch wenn Du mir eigentlich nur nochmal die Syntax erklärt hast, die ich bereits vorher vermeintlich verstanden hatte, hat es nun Klick gemacht.
Natürlich braucht es ein "Pärchen": "Begriff(e) -> "Substitution(en)". Das war natürlich beim Ersetzen durch RegEX nicht gegeben; da war die Substitution ja schon auf der "Begriffeseite" beinhaltet.
Jetzt läuft es. Danke für den Schubser!