FB_Calllist: js Error

Begonnen von Elektrolurch, 28 Januar 2018, 16:20:25

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo,

seit kurzem bekomme ich beim Ausfühern des Befehls:

set Telefonliste clear

folgenden JavaScript Error angezeigt:

Syntax error:  js on parse error: unespected identifier "clear"


Elektrolurch
configDB und Windows befreite Zone!

rudolfkoenig

Koenntest du bitte in der JavaScript-Konsole den Stacktrace dazu hier anzeigen?

Elektrolurch

Hallo Rudi,
Zitat:
Koenntest du bitte in der JavaScript-Konsole den Stacktrace dazu hier anzeigen?

Habe ich auf dem Firefox versucht, aber leider entzieht sich die JavaScript - Konsole meinem ScreenReader. Auch sehe ich da nicht die Fehlermeldung. Vermutlich ist die auf dem FF ausgeschaltet. Aber auf meinem iPhone blockiert die Java - Meldung den Screen bis ich auf OK klicke.
Aber es lässt sich mit zwei Zeilen auch ohne Fritzbox (vermutlich) nachstellen, denn die Liste kann auch leer sein, es reicht den Befehl "set Telefonliste clear" einzugeben.

configDB und Windows befreite Zone!

Markus Bloch

Hallo Elektrolurch,

ich habe vor kurzem FB_CALLLIST grundlegend überarbeitet und dabei auch fhemweb_fbcalllist.js geändert. Ich vermute, dass dein Browser nachwievor die alte Version aus dem Cache nutzt. Bitte führe mal einen kompletten Reload aus: [STRG]+[SHIFT]+[R]

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Elektrolurch

Hallo Markus,

danke für den Hinweis. Ich hatte 72_FB_CALLLIST aus dem Update genommen, aber übersehen, dass sich die .js - Datei geändert hatte.
Bei der Gelegenheit habe ich einen kleinnen CR:
Ich hatte das schon bei mir eingebaut: bei disable 3 wird die html - Ausgabe unterdrückt, wie bei den readingsGroup. Ich nutze den Mechanismus um bei einem Raum per Untermenü verschiedene Darstellungen (Beleuchtung, Klima, Audio usw) auf dem iphone umzuschalten, da es ja bisher noch für small devices in der fhemWEB noch keine Unteräume gibt.

Es ist in 72_FB_CALLLIST bei der html-Erzeugung Routine nur eine Abfrage auf disable 3 einzubauen und mit return "" zu verlassen.
Allerdings kam dann beim umschalten der Unteransichten (72_FB_CALLLIST auf disable 3 setzen) ein Fehler von dem .js.

Könntest Du das mit dme disable 3 und der html-Unterdrückung einbauen? Anrufe  sollen aber weiterhin im callist gespeichert werden.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Markus Bloch

#5
Zitat von: Elektrolurch am 29 Januar 2018, 15:00:35
Ich nutze den Mechanismus um bei einem Raum per Untermenü verschiedene Darstellungen (Beleuchtung, Klima, Audio usw) auf dem iphone umzuschalten, da es ja bisher noch für small devices in der fhemWEB noch keine Unteräume gibt.

Schau dir mal den f18 style an, da gibts das => https://forum.fhem.de/index.php/topic,82351.0.html

Einfach als stylesheetPrefix => "f18" setzen. Zur Barrierefreiheit zwecks Screenreader kann ich leider nichts sagen, aber in der mobilen Ansicht (welcher Style direkt unterstützt) kann man Unterräume anwählen.

Zitat von: Elektrolurch am 29 Januar 2018, 15:00:35
Es ist in 72_FB_CALLLIST bei der html-Erzeugung Routine nur eine Abfrage auf disable 3 einzubauen und mit return "" zu verlassen.
Allerdings kam dann beim umschalten der Unteransichten (72_FB_CALLLIST auf disable 3 setzen) ein Fehler von dem .js.

Könntest Du das mit dme disable 3 und der html-Unterdrückung einbauen? Anrufe  sollen aber weiterhin im callist gespeichert werden.

Ich versteh nicht genau was du konkret meinst. Wenn du kein HTML erstellst, was machst du dann mit FB_CALLLIST? Hast du evtl. ein diff deiner Änderungen?

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Elektrolurch

Hallo Markus,

Zitat:
Schau dir mal den f18 style an, da gibts das => https://forum.fhem.de/index.php/topic,82351.0.html

Habe ich eine neue fhemWEB - Instanz mit dem  stylesheetPrefix f18 definiert.
Aber die Räume stellen sihc auf meinem iphone als Liste und nicht als Menü dar und es lässt sich leider per ScreenReader nur ziemlich umständlich bedienen... oder ich habe da was falsch gemacht.
Mit dem stylesheetPrefix darksmallscreen bekommt man oben ein Menü für die Räume. Da ich mit Hilfe von ReadingsGroups mir in jedem Raum quasi Unterräume definiert habe, wobei das so gelöst wurde:
Jede rg hat oben das gleiche Menü füer die Unteräume. Wird einer der Unterräume ausgewählt, we so wird die aktuelle rg des Unterraums auf disable 0 gesetzt und alle rgs der anderen Unteräume auf disable 3.
Wird die Seite des Raums also ausgegeben, so werden zwar alle rg_HTML - Subroutinen aufgerufen, die liefern aber bei disable 3 nur einen Leerstring zurück und nur die rg(s) des darzustellenden Unterraums liefert ihren HTML aus.

Beim 72_CALLIST habe ich folgendes geändert:

sub FB_CALLLIST_Notify($$)
{
...
# Elektrolurch   
    return undef if(AttrVal($name,'disabled',0) == 1);


Damit bei disable 3 trotzdem di Anrufe in die internen Daten des Moduls gespeichert werden. Und:

sub FB_CALLLIST_list2html($;$)
{
    my ($hash, $to_json) = @_;
   
    return undef if( !$hash );
   
    my $name = $hash->{NAME};
    my $alias = AttrVal($hash->{NAME}, "alias", $hash->{NAME});
    return '' if(AttrVal($name,'disable',0) == 3);
# Elektrolurch

Es ist dann das gleiche Verhalten, wie bei der readingsGroup, die liefert gem. commandRef bei disable a3 auch einen leeren String zurück.

Elektrolurch
configDB und Windows befreite Zone!

Markus Bloch

Hallo Elektrolurch,

bei readingsGroup ist es aber etwas anders wie beschrieben:

disable 0 - Es werden Events verarbeitet und angezeigt
disable 1 - Es werden KEINE Events verarbeitet. Die Anzeige bleibt auf dem letzten Stand eingefroren
disable 2 - Es werden KEINE Events verarbeitet. Die Tabelle enthält anstatt der Daten den Schriftzug "disabled" in roter Schrift
disable 3 - Es werden KEINE Events verarbeitet. Die Tabelle wird NICHT angezeigt

Dein Wunsch ist es, bei FB_CALLLIST ein ähnliches Verhalten mit dem disable-Attribut zu erreichen. Allerdings möchtest Du, dass weiterhin Events verarbeitet werden. Das wiederspricht aber dem Konzept des "disabled"-Attributs.

Ich würde daher vorschlagen analog zu den bereits vorhandenen Attributen "no-table-header" und "no-heading" hier ein "no-table" einfügen um das Erstellen einer Tabelle komplett zu unterbinden.

Was meinst Du?

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Elektrolurch

Hallo Markus,

das stimmt natürlich mit dem kleinen Unterschied zur rg. Allerdings hat die rg ja auch nur eine passive Rolle, was die Daten angeht, denn sobald sie wieder sichtbar ist, werden ja die aktuellen readings der Objekte wieder angezeigt. Wird die calllist deaktiviert, sammelt sie ja auch keine Daten mehr und die Anrufe gehen sozusagen unwiderruflich verloren.
Zitat:
hier ein "no-table" einfügen um das Erstellen einer Tabelle komplett zu unterbinden.

Was meinst Du?

Im Prinzip könnte ich mit einem zusätzlichen Attribut auch leben, hat aber dann zur Folge, dass ich beim sichtbar/unsichtbar machen dann auch noch auf den Typ abfragen müsste, um dann entweder disabled oder das  Attribut no-table zu verwenden. Wäre nicht so elegant....

Elektrolurch
configDB und Windows befreite Zone!

Markus Bloch

Alternative wäre das Umsetzen von "disabled" analog zu rg und ein attribut, was trotz aktiviertem disabled (egal welche Stufe) weiterhin die Event-Verarbeitung aktiv hält.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Elektrolurch

Ja, das wäre die eleganteste Lösung.
configDB und Windows befreite Zone!

Markus Bloch

Habe ich soeben eingecheckt. Diesmal bitte auch die .js-Datei mit aktualisieren ;-)

Gibts ab morgen via update.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)