FHEM Forum

FHEM => Frontends => readingsGroup / readingsHistory => Thema gestartet von: mahowi am 05 Januar 2017, 09:07:38

Titel: sortColumn: Sortierung nur nach Klick?
Beitrag von: mahowi am 05 Januar 2017, 09:07:38
Hallo,

ich habe eine readingsGroup für die Termine aus dem Abfallkalender. Die Tabelle soll jetzt nach dem nächsten fälligen Termin sortiert werden. Dazu habe ich "sortColumn" gesetzt. Es wird aber nur sortiert, wenn ich die Spalte anklicke. Beim ersten Anzeigen sieht die Liste so aus wie im Screenshot. Hier mal ein list:
Internals:
   CFGFN
   DEF        Abfall:<Tag>,<Datum>,<>,<Ereignis>,<Tage>
Abfall:Restabfall_wochentag,Restabfall_datum,<%dustbin>,Restabfall_text,Restabfall_tage
Abfall:Altpapier_wochentag,Altpapier_datum,<%dustbin@04D921>,Altpapier_text,Altpapier_tage
Abfall:Bioabfall_wochentag,Bioabfall_datum,<%dustbin@D2691E>,Bioabfall_text,Bioabfall_tage
Abfall:GelberSack_wochentag,GelberSack_datum,<%dustbin@FFFF00>,GelberSack_text,GelberSack_tage
Abfall:Sperrmuell_wochentag,Sperrmuell_datum,<%scene_livingroom@01A3F5>,Sperrmuell_text,Sperrmuell_tage
Abfall:Gruenabfall_wochentag,Gruenabfall_datum,<%christmas_tree@2B6B17>,Gruenabfall_text,Gruenabfall_tage
Abfall:Weihnachtsbaeume_wochentag,Weihnachtsbaeume_datum,<%christmas_tree@2B6B17>,Weihnachtsbaeume_text,Weihnachtsbaeume_tage
   NAME       rgAbfallkalender
   NR         17
   NTFY_ORDER 50-rgAbfallkalender
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Abfall     1
   Content2:
   DEVICES:
     ARRAY(0x5261e48)
     ARRAY(0x51a5810)
     ARRAY(0x52617b8)
     ARRAY(0x52f2080)
     ARRAY(0x1a2e330)
     ARRAY(0x5221530)
     ARRAY(0x5221518)
     ARRAY(0x160ed80)
   Fhem:
     lastDefChange 4
     last_update 1483602702.23965
   Helper:
     DEF
     valueStyle { if ($READING eq "*._tage" && $VALUE == 0) { 'style="color:red"'}
elsif ($READING eq "*._tage" && $VALUE == 1 ) { 'style="color:yellow"'}
elsif ($READING eq "*._tage" && $VALUE > 1 && $VALUE < 8) { 'style="color:green"'} }
     Positions:
       Abfall.Altpapier_datum 3:2
       Abfall.Altpapier_tage 3:5
       Abfall.Altpapier_text 3:4
       Abfall.Altpapier_wochentag 3:1
       Abfall.Bioabfall_datum 4:2
       Abfall.Bioabfall_tage 4:5
       Abfall.Bioabfall_text 4:4
       Abfall.Bioabfall_wochentag 4:1
       Abfall.GelberSack_datum 5:2
       Abfall.GelberSack_tage 5:5
       Abfall.GelberSack_text 5:4
       Abfall.GelberSack_wochentag 5:1
       Abfall.Gruenabfall_datum 7:2
       Abfall.Gruenabfall_tage 7:5
       Abfall.Gruenabfall_text 7:4
       Abfall.Gruenabfall_wochentag 7:1
       Abfall.Restabfall_datum 2:2
       Abfall.Restabfall_tage 2:5
       Abfall.Restabfall_text 2:4
       Abfall.Restabfall_wochentag 2:1
       Abfall.Sperrmuell_datum 6:2
       Abfall.Sperrmuell_tage 6:5
       Abfall.Sperrmuell_text 6:4
       Abfall.Sperrmuell_wochentag 6:1
       Abfall.Weihnachtsbaeume_datum 8:2
       Abfall.Weihnachtsbaeume_tage 8:5
       Abfall.Weihnachtsbaeume_text 8:4
       Abfall.Weihnachtsbaeume_wochentag 8:1
     Values:
       formated:
         undef
         ARRAY(0x5261170)
         ARRAY(0x4f10f48)
         undef
         ARRAY(0x51a4fb8)
         ARRAY(0x5233e40)
       orig:
         undef
         ARRAY(0x51fde30)
         ARRAY(0x525b2b8)
         undef
         ARRAY(0x52f02f8)
         ARRAY(0x53197f0)
       prefixsuffix:
         undef
         ARRAY(0x516a068)
         ARRAY(0x183ee40)
         undef
         ARRAY(0x51a4f10)
         ARRAY(0x52522d8)
Attributes:
   alias      Müllabfuhr
   group      Termine
   nonames    1
   room       Allgemein
   sortColumn 5
   sortby     1
   valueStyle { if ($READING eq "*._tage" && $VALUE == 0) { 'style="color:red"'}
elsif ($READING eq "*._tage" && $VALUE == 1 ) { 'style="color:yellow"'}
elsif ($READING eq "*._tage" && $VALUE > 1 && $VALUE < 8) { 'style="color:green"'} }


Wo ich schon dabei bin, ist an meinem "valueStyle" irgendwas falsch? Ich bekomme die Werte für die Tage nämlich gar nicht gefärbt.

{ if ($READING eq "*._tage" && $VALUE == 0) { 'style="color:red"'}
elsif ($READING eq "*._tage" && $VALUE == 1 ) { 'style="color:yellow"'}
elsif ($READING eq "*._tage" && $VALUE > 1 && $VALUE < 8) { 'style="color:green"'} }
Titel: sortColumn: Sortierung nur nach Klick?
Beitrag von: justme1968 am 05 Januar 2017, 09:57:36
bitte ändere in fhemweb_readingsGroup.js in zeile 10 die 100 mal auf 500
noch größer und schau ob es dann geht.

eine regex wird nicht mit eq verglichen sondern mit =~

wenn du das $READING nur ein mal anfang mit !~ auf ungleich .*tage vergleichst und hier $VALUE zurück gibts sparrst du dir die anderen regex vergleiche später.

gruss
  andre
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: mahowi am 05 Januar 2017, 12:03:50
Ich habe den Wert auf 500 geändert, aber ohne Verbesserung.

Der Wert von sortColumn soll doch die Spalte angeben, nach der sortiert wird, oder? Nach der Änderung kann ich nämlich jetzt jede Spalte anklicken und es wird entsprechend sortiert. Nur die Vorgabe von "sortiere nach Spalte 5" wird nicht ausgeführt.

Regex klappt jetzt auch. Beim Sortieren wird übrigens die Einfärbung der Zeilen nicht angepaßt. Unsortiert sind die Zeilen abwechselnd hell und dunkel gefärbt, nach dem Sortieren behalten die jeweiligen Zeilen aber ihren Hintergrund, wodurch dann z.B. 2x hell hintereinander kommt. (vorher - nachher Screenshots im Anhang)
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: justme1968 am 05 Januar 2017, 14:13:44
dann geh mal auf 1000. browser cache löschen nicht vergessen.

der wert gibt an das überhaupt sortiert werden darf und ob automatisch nach einer bestimmten spalte sortiert wird.

schau mal ob es mit einer anderen spalte geht und ob du irgendwelche meldungen in der javascript console hast.

das mit dem zeilen hintergrund steht noch auf der todo liste.
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: mahowi am 05 Januar 2017, 19:33:17
So, hab jetzt 1000 eingestellt. Jetzt wird die RG zwar erst unsortiert angezeigt, wird dann aber sortiert. Auf der JS-Konsole kommt 19:25:47.561 Loading script /fhem/pgm2/sorttable.js
fhem_niceclocks.js:268 niceclocks: Ready. Processing Clock.
fhemweb.js:329 19:25:48.508 Longpoll with filter .*fhemweb.js:329 19:25:53.543 Rcvd:



Auch mit anderen Spalten und negativen Zahlen zur umgekehrten Sortierung funktioniert es jetzt.  :)


Wenn es jetzt noch die Möglichkeit gibt, den kleinen Pfeil an der sortierten Spalte auszublenden, wäre das top.  ;)
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: mahowi am 10 Januar 2017, 11:34:53
Hallo Andre,

auch wenn es mittlerweile (meistens) funktioniert mit der Sortierung, bekomme ich seit heute Fehlermeldungen als Popup. Siehe seit Update heute (10.01.17): Fehlermeldungen in Popups  (https://forum.fhem.de/index.php/topic,64541.0.html)
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: justme1968 am 10 Januar 2017, 13:13:06
die pfeile bekommst du so weg: https://forum.fhem.de/index.php/topic,62440.msg539874.html#msg539874 (https://forum.fhem.de/index.php/topic,62440.msg539874.html#msg539874)

zeig mal  bitte einen screenshot von der meldung und die javascript console wenn das passiert.
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: mahowi am 18 Januar 2017, 07:00:40
Hallo,

nach dem Update (gestern?) wird wieder nicht sortiert. Nachdem ich wieder die JS-Fehlermeldungen eingeschaltet habe, kommt beim Öffnen der Seite:
sorttable.js line 203:
Uncaught TypeError: Cannot read property 'rows' of null


In der Konsole steht dazu:
Uncaught TypeError: Cannot read property 'rows' of null
    at Object.doSort (sorttable.js:203)
    at HTMLTableElement.<anonymous> (fhemweb_readingsGroup.js:18)
    at Function.each (jquery.min.js:2)
    at m.fn.init.each (jquery.min.js:2)
    at fhemweb_readingsGroup.js:15


Und hier nochmal ein list der rg:
Internals:
   CFGFN
   DEF        Abfall:<Tag>,<Datum>,<>,<Ereignis>,<Tage>
Abfall:Restabfall_wochentag,Restabfall_datum,<%dustbin>,Restabfall_text,Restabfall_tage
Abfall:Altpapier_wochentag,Altpapier_datum,<%dustbin@04D921>,Altpapier_text,Altpapier_tage
Abfall:Bioabfall_wochentag,Bioabfall_datum,<%dustbin@D2691E>,Bioabfall_text,Bioabfall_tage
Abfall:GelberSack_wochentag,GelberSack_datum,<%dustbin@FFFF00>,GelberSack_text,GelberSack_tage
Abfall:Sperrmuell_wochentag,Sperrmuell_datum,<%scene_livingroom@01A3F5>,Sperrmuell_text,Sperrmuell_tage
Abfall:Gruenabfall_wochentag,Gruenabfall_datum,<%christmas_tree@2B6B17>,Gruenabfall_text,Gruenabfall_tage
Abfall:Weihnachtsbaeume_wochentag,Weihnachtsbaeume_datum,<%christmas_tree@2B6B17>,Weihnachtsbaeume_text,Weihnachtsbaeume_tage
   NAME       rgAbfallkalender
   NR         15
   NTFY_ORDER 50-rgAbfallkalender
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     Abfall     1
   Content2:
   DEVICES:
     ARRAY(0x49554a0)
     ARRAY(0x52b2748)
     ARRAY(0x4ba3078)
     ARRAY(0x4d728b8)
     ARRAY(0x5279660)
     ARRAY(0x4babd10)
     ARRAY(0x46534e0)
     ARRAY(0x4f16e18)
   Fhem:
     lastDefChange 61
     last_update 1484718738.79671
   Helper:
     DEF
     valueStyle { if ($READING =~ ".*tage" && $VALUE == 0) { 'style="color:red"'}
elsif ($READING =~ ".*tage" && $VALUE == 1 ) { 'style="color:yellow"'}
elsif ($READING =~ ".*tage" && $VALUE > 1 && $VALUE < 8) { 'style="color:green"'} }
     Positions:
       Abfall.Altpapier_datum 3:2
       Abfall.Altpapier_tage 3:5
       Abfall.Altpapier_text 3:4
       Abfall.Altpapier_wochentag 3:1
       Abfall.Bioabfall_datum 4:2
       Abfall.Bioabfall_tage 4:5
       Abfall.Bioabfall_text 4:4
       Abfall.Bioabfall_wochentag 4:1
       Abfall.GelberSack_datum 5:2
       Abfall.GelberSack_tage 5:5
       Abfall.GelberSack_text 5:4
       Abfall.GelberSack_wochentag 5:1
       Abfall.Gruenabfall_datum 7:2
       Abfall.Gruenabfall_tage 7:5
       Abfall.Gruenabfall_text 7:4
       Abfall.Gruenabfall_wochentag 7:1
       Abfall.Restabfall_datum 2:2
       Abfall.Restabfall_tage 2:5
       Abfall.Restabfall_text 2:4
       Abfall.Restabfall_wochentag 2:1
       Abfall.Sperrmuell_datum 6:2
       Abfall.Sperrmuell_tage 6:5
       Abfall.Sperrmuell_text 6:4
       Abfall.Sperrmuell_wochentag 6:1
       Abfall.Weihnachtsbaeume_datum 8:2
       Abfall.Weihnachtsbaeume_tage 8:5
       Abfall.Weihnachtsbaeume_text 8:4
       Abfall.Weihnachtsbaeume_wochentag 8:1
     Values:
       formated:
         undef
         ARRAY(0x4a19f10)
         ARRAY(0x5284528)
         undef
         ARRAY(0x4f3bc38)
         ARRAY(0x52fc958)
       orig:
         undef
         ARRAY(0x41c4578)
         ARRAY(0x4e4f2b8)
         undef
         ARRAY(0x4dd9b80)
         ARRAY(0x4d62ff0)
       prefixsuffix:
         undef
         ARRAY(0x4b99258)
         ARRAY(0x49f9230)
         undef
         ARRAY(0x4cda670)
         ARRAY(0x4dfe568)
Attributes:
   alias      Müllabfuhr
   group      Termine
   nonames    1
   room       Allgemein
   sortColumn 5
   sortby     1
   valueStyle { if ($READING =~ ".*tage" && $VALUE == 0) { 'style="color:red"'}
elsif ($READING =~ ".*tage" && $VALUE == 1 ) { 'style="color:yellow"'}
elsif ($READING =~ ".*tage" && $VALUE > 1 && $VALUE < 8) { 'style="color:green"'} }
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: FunkOdyssey am 10 Mai 2017, 15:14:19
Hallo,

ich habe beim Öffnen eines Raumes mit einer readingsGroup auch den Fehler:
Uncaught TypeError: Cannot read property 'rows' of null

Dies tritt nur auf, wenn sich auch ein Plot im gleichen Raum befindet.

Gibt es hierzu eine Lösung?

Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: christiang am 03 Juni 2017, 21:31:18
Hi,

ich habe den selben Fehler:

sorttable.js line 203:
Uncaught TypeError: Cannot read property 'rows' of null


Hat jemand dafür eine Lösung gefunden?

Grüße,

Christian
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: TWART016 am 25 August 2017, 00:40:18
Ich habe derzeit ebenfalls den Fehler bei readingsgroup mit dem nmap Modul.

Gibt es mittlerweile eine Lösung dazu?
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: ComputerZOO am 26 August 2017, 12:07:38
Moin,

dito, habe die Sortierung momentan aus der NMAP-Übersicht rausgeschmissen.
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: popy am 20 Februar 2020, 21:25:25
Ebenfalls das gleiche Thema, gibt es schon eine Lösung außer das sortColumns zu entfernen?
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: popy am 25 Juli 2020, 20:28:07
BUMP  :)
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: we5 am 27 August 2021, 08:26:38
Also wenn ich es richtig identifiziert habe, könnte das Problem der Timeout von 100ms für das Laden des Skripts sein. Zumindest bei mir kommt der Fehler:
sorttable.js line 203:
TypeError: null is not an object (evaluating 'table.tHead.rows')


Wenn ich den Timeout auf, sagen wir 500ms erhöhe, klappt es.
Irgendwie scheint es da (zumindest bei mir in Safari) etwas länger zu dauern.
Vielleicht liegt es daran, dass der Tabellen-Kopf erst erstellt und eingefügt werden muss, da der originale Markup von der Komponente kein <thead> schreibt.  🤷🏽‍♂️
Titel: Antw:sortColumn: Sortierung nur nach Klick?
Beitrag von: popy am 03 September 2021, 19:35:04
Wow, super dass der Bug endlich gefunden ist.
Kommt der Fix mit einem Update?

Danke