Darstellung von editierbaren '~UnixTimestampDate'

Hallo,

ich habe ein Problem im WebFrontend, das ich mir nicht erklären kann:

Folgendes Code-Fragment:


    public function ReceiveData($data)
    {
...
        $this->MaintainVariable('SuspendUntil', $this->Translate('Suspended until end of'), IPS_INTEGER, '~UnixTimestampDate', $vpos++, true);
        $this->SetValue('SuspendUntil', $suspended);
        $this->MaintainAction('SuspendUntil', true);

ReceiveData() ruft also jedesmal, wenn Daten kommen (z.B. 1/min MaintainAction() auf.

Und im WebFrontend passiert das:

D.h. bei jeden MaintainAction() wird ein Bearbeitungssymbol hinzugefügt.

Ein restart von IPS hat nichts geändert.

Es wird nur an dieser Stelle diese Variablen behandelt, eine passende RequestAction() gibt es natürlich, die Variable ist auch ganz normal bearbeitbar (egal welche der Symbole man anklickt.

Habe ich MaintainAction() falsch verstanden? Ich habe den Einsatz analog zu MaintainVariable() gesehen.

Die IPS-Version ist 4.4, ich habe es aber auch mit Version 5 ausprobiert, gleicher Effekt. Die Browser verhalten sich unter OS-X (Safari, Firefox oder Chrome) ebenso wie unter Win10 (Firefox, IE) oder iOS (Safari).

In der App (iOS) sieht es normal aus.

Hat jemand eine Idee was ich da falsch mache?

Danke
Christian

Das ist nicht korrekt und definitiv ein Fehler. Wir hatten so einen ähnlichen schon mal irgendwo… Ich schau mir das an!

paresy

PS: Trotzdem ist es extrem ineffizient was du tust. Warum kannst du das Maintain/Action nicht in ApplyChanges machen?

Ich hatte an Anfang die Variablen nur im ApplyChanges angelegt/ gelöscht, hatte aber die Empfehlung bekommen, die Variablen bei Ergebnisempfang per MaintainVariable bei Bedarf anzulegen - will natürlich nicht ausschliessen, das ich das falsch verstanden habe.

Das mit MaintainAction habe ich dann analog verwendet.

Das kann ich gerne wieder in ApplyChanges verlegen, fand ich dort eigentlich auch passender.

Es hatte allerdings (etwas) Charme: wenn ich Variablen habe, die nur unter bestimmten Umständen interessant sind, kann ich diese so „unsichtbar“ machen - das IPS_Hidden() ja in Modulen strikt verboten ist (so meine Information - Hoheit des Anwenders -) war das ganz praktisch.

Fix zur nächsten 5.2

paresy