Fehlermeldung bei checkbox und on-for-timer

Begonnen von PatrickR, 19 November 2018, 14:24:22

Vorheriges Thema - Nächstes Thema

PatrickR

Hi!

Die Kombination von checkbox und on-for-timer führt bei mir zu folgender Fehlermeldung:

Uncaught TypeError: faelem.setProgressValue is not a function
    at startTimer (widget_famultibutton.js:66)
    at checkForTimer (widget_famultibutton.js:98)
    at String.<anonymous> (widget_famultibutton.js:586)
    at Function.each (jquery.min.js:2)
    at HTMLDivElement.<anonymous> (widget_famultibutton.js:571)
    at Function.each (jquery.min.js:2)
    at w.fn.init.each (jquery.min.js:2)
    at Object.update (widget_famultibutton.js:567)
    at Object.<anonymous> (fhem-tablet-ui.js:440)
    at Function.each (jquery.min.js:2)

Das Problem tritt dann auf, wenn man mittels eines checkbox-Widgets einen on-for-timer-Befehl sendet. (siehe auch https://forum.fhem.de/index.php/topic,88001.0.html). Das Problem sollte sich unproblematisch mit einem entsprechenden Check oder notfalls mit einer leeren setProgressValue-Funktion beheben lassen.

Grüße
Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

PatrickR

Guten Abend!

Habe nun temporär die on-for-timer-Erkennung vollständig deaktiviert.

widget_famultibutton.js, ab Zeile 46:

        /*if (seton && !$.isNumeric(seton) && !$.isArray(seton) && ftui.getPart(seton, 1) === "on-for-timer") {
            secondes = ftui.getPart(elem.data("set-on"), 2);
        } else*/ if (elem.isDeviceReading('countdown')) {
            secondes = elem.data("secondes");
        } else {
            secondes = elem.data("countdown");
        }
        return secondes;


Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

setstate

Die Fehlermeldung ist ohne Zweifel gerechtfertigt. Das Object hat in diesem Augenblick diese Funktion nicht.
Bei mir sind komischerweise beide Browser (Safari, Firefox) sehr tolerant und meckern keine Fehler an.

Zur Lösung würde ich aber lieber eine Dummy-Funktion in widget_checkbox.js in Zeile 137 einbauen.

            input.setProgressValue = function () {};

Ist damit bei dir die Fehlermeldung auch weg?

PatrickR

Zitat von: setstate am 21 November 2018, 21:13:59
Bei mir sind komischerweise beide Browser (Safari, Firefox) sehr tolerant und meckern keine Fehler an.
Safari unter iOS meckert.

Zitat von: setstate am 21 November 2018, 21:13:59
Zur Lösung würde ich aber lieber eine Dummy-Funktion in widget_checkbox.js in Zeile 137 einbauen.

            input.setProgressValue = function () {};

Ist damit bei dir die Fehlermeldung auch weg?
Sieht gut aus! Danke!

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook