sortColumn: Sortierung nur nach Klick?

Begonnen von mahowi, 05 Januar 2017, 09:07:38

Vorheriges Thema - Nächstes Thema

mahowi

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"'} }
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

justme1968

#1
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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mahowi

#2
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)
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

justme1968

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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mahowi

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.  ;)
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

mahowi

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
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

justme1968

die pfeile bekommst du so weg: 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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mahowi

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"'} }
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

FunkOdyssey

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?


christiang

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

TWART016

Ich habe derzeit ebenfalls den Fehler bei readingsgroup mit dem nmap Modul.

Gibt es mittlerweile eine Lösung dazu?

ComputerZOO

Moin,

dito, habe die Sortierung momentan aus der NMAP-Übersicht rausgeschmissen.

popy

Ebenfalls das gleiche Thema, gibt es schon eine Lösung außer das sortColumns zu entfernen?

popy


we5

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.  🤷🏽‍♂️

popy

Wow, super dass der Bug endlich gefunden ist.
Kommt der Fix mit einem Update?

Danke