FormBuilder Dependencies: Ausblenden bereits ausgefüllten Felds beeinflusst Abhängigkeiten

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core
    1. FormContainer 1
      1. Field 1 (Radio)
      2. Field 2 (Boolean)
        (defaults to false)
        Value Field 1 = 'foo'
      3. Field 3
        => NonEmpty Field 2

    Wählt man bei Field 1 einen Wert != foo aus, wird Field 2 ausgeblendet und Field 3 ist weiterhin sichtbar.

    Wählt man bei Field 1 'foo', wählt dann bei Field 2 true, wählt im Anschluss bei Field 1 einen Wert != 'foo', ist Field 2 UND Field 3 nicht sichtbar, obwohl die Anhängigkeiten von Field 3 korrekt erfüllt wären.

  • Ich habe nur alle Custom-Felder entfernt, der (anonymisierte) Code entspricht ansonsten dem eingesetzten.

    Field 1: foo_type

    Field 2: useCustoms

    Field 3: blubPresetID

    Mit fällt gerade auf, ich hatte Field 3 im EIngangsbeitrag als NonEmpty deklariert, es ist aber Empty.

    Erwartetes Verhalten:

    1. foo befüllen
    2. type = internal

    Das Preset-Feld wird angezeigt.

    Zum Reproduzieren des fehlerhaften Verhaltens:

    1. foo befüllen
    2. type = external
    3. useCustoms = true
    4. type = internal

    Das Preset-Feld wird nicht angezeigt. Das Feld sollte aber eigentlich sichtbar sein, da useCustoms keine Anwendung findet.

    1. type = external
    2. useCustoms = false
    3. type = internal

    Das Preset-Feld wird wieder angezeigt.

  • Durch das Ausblenden von useCustoms beim type-Wechsel generierst Du undefiniertes Verhalten, was die Abhängigkeiten bzgl. dieses Feldes angeht.

    Das einfachste Vorgehen, dass solche komplexen Abhängigkeiten vermeidet, ist die Erstellung zweier einzelner Container mit den entsprechenden Feldern je nachdem, welcher type ausgewählt wird.

    PS: Bitte poste beim nächsten Mal direkt ausführbaren Code.

  • Matthias Schmidt May 18, 2021 at 10:14 AM

    Set the Label from Feedback required to Not a bug
  • Durch das Ausblenden von useCustoms beim type-Wechsel generierst Du undefiniertes Verhalten, was die Abhängigkeiten bzgl. dieses Feldes angeht.

    Ich war der Meinung in den Commits gesehen zu haben, dass ausgeblendete Felder entsprechend gehandelt werden, dann habe ich das wohl falsch interpretiert.

    Das einfachste Vorgehen, dass solche komplexen Abhängigkeiten vermeidet, ist die Erstellung zweier einzelner Container mit den entsprechenden Feldern je nachdem, welcher type ausgewählt wird.

    Warum soll ich dasselbe Feld in zwei Containern pflegen? Genau dafür gibt es ja Abhängigkeiten.

    Ich werde entsprechend eigene Dependencies umsetzen, die das korrekt handeln.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!