FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: DocCyber am 15 Februar 2024, 14:18:53

Titel: [FTUI-3] Bug bei @close in Popup?
Beitrag von: DocCyber am 15 Februar 2024, 14:18:53
Hallo zusammen,

Beim Schließen eines Popups lasse ich einen Perl-Code ausführen:
<ftui-popup "id=pop1" @close="sendFhem(`{puCloseHeatingDetails()}`)">Das funktioniert sehr gut, aber ich habe anhand der TOST-Messages festgestellt, dass der Code jeweils doppelt aufgerufen wird.
Möglicherweise liegt hier ein Bug vor; ich sehe keinen anderen Grund.

Vielleicht hat jemand eine Idee, oder @setstate sieht mal hin.

NACHTRAG
Im Übrigen passiert das bei jedem Dialog, der via @close geschlossen wird; es hat also nichts mit meinem spezifischen Code zu tun, denke ich.
Titel: Aw: [FTUI-3] Bug bei @close in Popup?
Beitrag von: setstate am 26 Februar 2024, 18:28:46
Hast du zufällig pop1 mehrfach vergeben?

Der Syntax ist auch nicht ganz richtig:
anstatt:
Zitat<ftui-popup "id=pop1"
würde ich das so schreiben:
Zitat<ftui-popup id="pop1"

Titel: Aw: [FTUI-3] Bug bei @close in Popup?
Beitrag von: DocCyber am 12 März 2024, 10:34:22
Zitat von: setstate am 26 Februar 2024, 18:28:46Der Syntax ist auch nicht ganz richtig:
Das stimmt.
Allerdings war das nur ein (falsch aufgebautes) Beispiel, um es nicht zu verkomplizieren.
Der tatsächliche, komplette Code sieht so aus:
<ftui-popup id="pop_heating"
  [active]="popup_ctrl_heating | map('`[KEOD]{1}G[1234]{1}`: true, none: false')"
  height="18em" width="24em" left="20em" top="10em" timeout="0"
  @close="sendFhem(`{puCloseHeatingDetails()}`)">
  <header class="size-3"><ftui-label [text]="TMP"></ftui-label> </header>
  <ftui-row><ftui-column>
    <ftui-label class="size-3"  text  = "Ist-Temp. "></ftui-label>
    <ftui-label class="size-3"  text  = "Soll-Temp. "></ftui-label>
    <ftui-label class="size-3"  text  = "&nbsp;"></ftui-label>
    <ftui-button popup-close
      width="7em"
      fill="outline"
      color="red"
      value="0" (value)="setreading TMP:dlg-confirmed"
      states="$value">Abbruch
    </ftui-button>
  </ftui-column>
  <ftui-column>
    <ftui-label class="size-3" [text] = "TMP:measured-temp | append(' °C')"></ftui-label>
    <!-- Temperaturwahl bei KG2 nicht möglich (dieser Heizkörper ist demontiert) -->
    <ftui-dropdown
      [disabled] = "popup_ctrl_heating | map('`[EOD]{1}G[1234]{1}`:false, KG4:false, KG2:true')"
      class="size-3"
      [value]="TMP:desired-temp"
      (value)="setreading TMP:desired-temp"
      list=",10.0,15.0,16.0,17.0,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0" >
    </ftui-dropdown>
    <ftui-label class="size-3"  text  = "&nbsp;"></ftui-label>
    <ftui-button popup-close
      width="7em"
      fill="outline"
      color="green"
      value="1" (value)="setreading TMP:dlg-confirmed"
      states="$value">OK
    </ftui-button>
  </ftui-column></ftui-row>
</ftui-popup>

Alle IDs sind unique.

Wie gesagt: der Aufruf funktioniert, aber wird jeweils doppelt ausgeführt