FHEM Forum

FHEM => Frontends => readingsGroup / readingsHistory => Thema gestartet von: Elektrolurch am 08 Februar 2023, 10:46:30

Titel: readingsGroup - fehlende </tr> im html am Zeilenende?
Beitrag von: Elektrolurch am 08 Februar 2023, 10:46:30
Hallo,

ich hatte immer wieder Probleme mit Safari auf dem iPhone, wenn über eine längere Zeit hinweg eine readingsGroup  dargestellt wurde. Die Seite reagierte dann einfach nicht mehr.
Apple hat nun mit einem der letzten Updates Safari stabiler gemacht, aber ich habe trotzdem mal versucht, eine mögliche Ursache zu finden.
Dabei ist mir folgendes aufgefallen:
In der Funktion readingsGroup_2html($;$) wird in der Hauptschleidfe

  foreach my $device (@{$devices}) {

Jede Tabellenzeile mit einem <tr> geöffnet, aber bis auf einige Sonderfälle niemals mehr mit einem </tr> geschlossen.
Manche Browser sind da wohl fehlertolerant, Safari leider in der Vergangenheit nicht.
Ich habe mal folgendes geändert:
1. Jede ausgegebene Tabellenzeile wird zusätzlich hinter dem </td> mit einem \n in den html-Code ausgegeben, so dass der html-Code besser lesbar wird.
2. Ich habe eine $in_table Variable eingeführt, die mit dem ersten Schleifendurchlauf gesetzt wird und dann am Anfang immer ein "</tr>\n" in den html-Code einfügt.
3. Ich habe noch einige Korrekturen eingefügt, z.B. bei colspan und <hr>.
4. Man kann jetzt auch Tabellen in Tabellen definieren, die werden in der Definition m it <table> und </table> eingefügt.
5. Bei dem mapping von Attributen kann man statt der readings nun auch reguläre Ausdrücke verwenden, z.B.

attr Szene_rg valueFormat {'/Decken.*/' => '...

Der reguläre Ausdruck für die readings steht in '/regex/'.
6. Zur Orientierung und leichteren Pflegbartkeit habe ich auch mal einige Kommentare eingefügt.

Alle Ergänzungen sind mit # Elektrolurch gekennzeichnet.



Elektrolurch
Titel: Antw:readingsGroup - fehlende </tr> im html am Zeilenende?
Beitrag von: justme1968 am 08 Februar 2023, 12:21:55
wenn dein fix hilft (und keine nebeneffekte hat) baue ich das gerne ein. es wäre schön wenn das noch in anderen installationen mit größeren readingsGroups getestet werden kann.

ps: laut html standard ist das schließende </tr> in den meisten fällen nicht mandatory: wenn direkt danach wieder ein <tr> kommt oder am ende der tabele zum beispiel.

irgendwo gibt es sogar einen thread dazu. da hatte ein unnötiges </tr> irgend ein problem gemacht. das ist aber schon eine weile her.