Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler in status.activelist in 3.4.0

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Fehler in status.activelist in 3.4.0

    Hi

    Ich habe am Wochenende mal die 3.4.0 parallel installiert, auf dem selben Server wie die 3.3.1.
    Folgendes Problem:

    Alt (3.3.1):

    grafik.png

    Neu (3.4.0)

    grafik.png

    Beim 2. Bild habe ich mal absichtlich auf den untersten Listeneintrag geklickt, damit man sieht, dass es ansich eine korrekte Meldung ist, aber weder die Icons noch der Haupttext ist sichtbar. Der Zusatztext aber schon, wie man sieht.

    Die Pages etc. sind 1:1 kopiert.

    Alle Browser sind betroffen, auf allen Geräten, Caches löschen bringt nichts.

    Der Pages Teil sieht so aus und hat bisher immer tadellos funktioniert:

    Code:
    <div data-role="collapsible">
                    <h3><img style="height: 20px; vertical-align: middle;" src="dropins/icons/ws/Logo_Ondilo.png" alt="Ondilo ICO"> &nbsp; Nachrichten</h3>
                    <div>
                    <table width=100%>
                        <tr>
                            <td align=left>
                                {{ status.activelist('', 'ICO.Nachrichten', 'title', 'updated_at', 'message', 'status') }}
                                {{ status.collapse('Acknowledge_Button', 'ICO.Nachrichten', ['', '1'], 'hide') }} <!-- Warum das so geht weiß keiner -->
                                <div class="hide" data-bind="Acknowledge_Button" align=right>
                                    {{ basic.trigger('', 'ICO_ack_messages', '', 'info_ack.svg') }}
                                </div>
                            </td>
                        </tr>                  
                    </table>
                    </div>
                </div>​
    ​
    Der JSON String vom Backend:

    Code:
    [{'id': 23435339, 'title': 'Reinigen Sie die Filterpatrone', 'message': 'Häufiges Reinigen der Filterpatrone gewährleistet ihre Effizienz und hilft, Algenbildung zu verhindern.', 'created_at': '2023-12-09T22:20:40+0000', 'updated_at': '09.12.2023 23:20', 'status': 'waiting', 'deadline': '2023-12-10T00:00:00+0000'}, {'id': 23426914, 'title': 'Reinigen Sie die Filterpatrone', 'message': 'Häufiges Reinigen der Filterpatrone gewährleistet ihre Effizienz und hilft, Algenbildung zu verhindern.', 'created_at': '2023-12-09T16:14:53+0000', 'updated_at': '09.12.2023 17:14', 'status': 'waiting', 'deadline': '2023-12-10T00:00:00+0000'}, {'id': 23417538, 'title': 'Reinigen Sie die Filterpatrone', 'message': 'Häufiges Reinigen der Filterpatrone gewährleistet ihre Effizienz und hilft, Algenbildung zu verhindern.', 'created_at': '2023-12-09T10:09:12+0000', 'updated_at': '09.12.2023 11:09', 'status': 'waiting', 'deadline': '2023-12-10T00:00:00+0000'}, {'id': 23398997, 'title': 'Reinigen Sie die Filterpatrone', 'message': 'Häufiges Reinigen der Filterpatrone gewährleistet ihre Effizienz und hilft, Algenbildung zu verhindern.', 'created_at': '2023-12-09T04:03:31+0000', 'updated_at': '09.12.2023 05:03', 'status': 'waiting', 'deadline': '2023-12-10T00:00:00+0000'}, {'id': 23398996, 'title': 'Es ist Zeit für die wöchentliche Poolpflege.', 'message': 'Die wöchentliche Wartung besteht in der Entleerung und Reinigung des Abschäumer- und Pumpenkorbs und der Entfernung aller Fremdkörper aus Ihrem Reiniger und Wasser.', 'created_at': '2023-12-09T04:03:31+0000', 'updated_at': '09.12.2023 05:03', 'status': 'waiting', 'deadline': '2023-12-10T00:00:00+0000'}]
    Bin etwas ratlos, weil mir nichts mehr einfällt was ich noch checken könnte.

    Gruß, Martin
    Zuletzt geändert von wvhn; 11.12.2023, 11:19. Grund: Status gelöst gesetzt

    #2
    Moin Martin,

    danke für die gute Dokumentation, mit der ich das Problem nachstellen konnte.

    Mein erster Blick geht immer in die Inline-Doku. Da sieht man live, ob das Widget einen Fehler hat. Wenn das nicht der Fall ist, liegt es an der eigenen Parametrierung, oder den Klassikern (Cache, doppelte Dateinamen, problematische Angaben in der visu.js oder visu.css ...).

    In diesem Fall hast Du vermutlich die Angaben in der Sprachdatei (./lang/de.ini) im Abschnitt "status_event_format" noch nicht übernommen, die für die Darstellung benötigt werden. Das widget findet für den Status "waiting" kein icon und keine Farbe und zeigt daher nichts an. Ändere ich im item einen Status von "waiting" in "info", erscheint der Eintrag.

    image.png

    Man kann die Erweiterung der Sprachdatei seit einiger Zeit in den Ordner ./dropins/lang auslagern und damit vor dem Überschreiben schützen. Wie das geht, steht in ./lang/readme.txt.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 10.12.2023, 20:05.

    Kommentar


      #3
      Moin Wolfram

      Die custom.ini im dropin Ordner verwende ich schon seit es sie gibt und der passende Eintrag ist dort auch drin:

      Code:
      [status_event_format]
      waiting[icon] = message_info
      waiting[color] = #5e2028​
      Dazu passend steht die Sprache in den Einstellungen auch auf Custom. Das war es also sicher nicht. Ich vermute mal, dass sich beim Kopieren der config.ini irgendwas verschluckt hat, obwohl auch die Rechte passen. Jedenfalls geht es nun, nachdem ich die Einstellung der Sprache von Custom auf Deutsch geändert habe, dann abgespeichert und jetzt wieder zurück auf Custom gestellt habe. Muss man nicht verstehen, aber letztendlich zählt das Ergebnis

      Danke für Deine Hilfe

      Martin
      Zuletzt geändert von Sipple; 11.12.2023, 07:47.

      Kommentar


        #4
        Moin Martin,

        ich habe versucht, das Verhalten zu reproduzieren:
        • neues SV Verzeichnis angelegt
        • eigene Seiten, config.ini und eigene Sprachdatei in ./dropins/lang kopiert
        • Visu im neuen Verzeichnis aufgerufen
        Das Hakeln der Sprachdatei mit der config.ini konnte ich nicht nachstellen. Es ist aber sinnvoll, die Konfiguration bei jeder neuen SV-Version einmal aufzurufen und neu abzuspeichern, weil dann eventuell mit der Version neu hinzugekommene Konfigurationsoptionen mit ihren Default-Werten angelegt und abgespeichert werden.

        Man kann übrigens recht leicht überprüfen, ob die Erweiterung der Sprachdatei geladen ist. Dazu gibt man in der Entwicklerkonsole des Browsers den gesuchten Schlüssel ein - im obigen Beispiel "sv_lang.status_event_format.waiting". Dann sollten die zugehörigen Eigenschaften angezeigt werden.

        Bei mir gab es allerdings ein anderes Problem: zum Test habe ich Deine Daten von oben in die custom.ini kopiert. Dabei ist ein nicht druckbares Zeichen in die Datei geraten, so dass die Farbe nicht akzeptiert wurde. In so einem Fall hilft es, mit z.B. Notepad++ in der Ansicht "alle Symbole anzeigen" die Datei zu kontrollieren und ggfls. zu bereinigen.

        Gruß
        Wolfram

        Kommentar


          #5
          Zitat von wvhn Beitrag anzeigen
          Man kann übrigens recht leicht überprüfen, ob die Erweiterung der Sprachdatei geladen ist. Dazu gibt man in der Entwicklerkonsole des Browsers den gesuchten Schlüssel ein - im obigen Beispiel "sv_lang.status_event_format.waiting". Dann sollten die zugehörigen Eigenschaften angezeigt werden.
          Guter Tipp, das füge ich mal in meine Notizen ein.

          Zitat von wvhn Beitrag anzeigen
          Bei mir gab es allerdings ein anderes Problem: zum Test habe ich Deine Daten von oben in die custom.ini kopiert. Dabei ist ein nicht druckbares Zeichen in die Datei geraten, so dass die Farbe nicht akzeptiert wurde. In so einem Fall hilft es, mit z.B. Notepad++ in der Ansicht "alle Symbole anzeigen" die Datei zu kontrollieren und ggfls. zu bereinigen.
          Ja, das könnte evtl. auch ein Ansatzpunkt sein, da bin ich auch schon mehrfach drüber gestolpert. Erst gestern wieder.
          Hier z.B. in deiner Antwort #9 im Thread https://knx-user-forum.de/forum/supp...3-3-1-und-v3-4 .
          Da sind bei class="mylink“ die Gänsefüßchen am Ende anders und da hat das natürlich so auch erst nicht funktioniert. Konnte es aber schnell finden.

          Alles gut soweit.

          Kommentar


            #6
            Hallo zusammen,

            ich benutze das status.activelist in Zusammenhang mit 'openweathermap.alerts', was bisher auch funktioniert hat. Jetzt habe ich aber ähnliches Problem wie im ersten Beitrag, die Felder bleiben leer, wenn man drauf klickt, dann erscheint der 'description' Text.
            Das Control ist folgendermaßen definiert:
            {{ status.activelist('', 'wetter.alerts', 'event', 'start', 'description', '') }}​
            'level' ist also leer ('openweathermap.alerts' bietet hier nichts geeignetes an) und ist laut Doku auch optional.
            Durch Versuche (extra einen level tag in das dict eingefügt und das Control entsprechend erweitert) habe ich herausgefunden, dass es mit 'level' funktioniert.
            Es sieht also so aus, als ob das Widget jetzt zwingend den 'level' benötigt, ist das richtig? Bzw. lässt es sich irgendwie bewerkstelligen, dass es wieder ohne geht?

            Gruß
            Franz

            Kommentar


              #7
              Moin Franz,

              aktuell benötigt das Widget eine Angabe zum Level, um daraus das anzuzeigende icon zu bestimmen. Die Doku ist da etwas missverständlich. Sie bezeichnet das Feld als optional, sagt aber, dass defaultmäßig die Eigenschaft "level" verwendet wird.

              Ein kurzer Test zeigt, dass dies in v3.3.1 noch ohne "level" funktioniert hat. Ich schau mir das kurzfristig an.

              Gruß
              Wolfram

              Kommentar


                #8
                Moin Franz, franzmm

                es hat sich herausgestellt, dass dies schlicht ein Bug ist, weil die CSS-Definition nur für SVGs und damit nicht für das Default-Bild "trans.png" gültig sind. Wenn Du in der visu.css im Ordner Deiner Seiten folgendes ergänzt, passt die Darstellung wieder:
                Code:
                /** workaround für status.activelist in v3.4 */
                .ui-listview .ui-btn>img.icon {
                    position: absolute;
                    left: 0;
                    top: 0;
                    max-height: 5em;
                    max-width: 5em;
                }​
                Ich fixe das nacher noch im develop branch.

                Gruß
                Wolfram
                Zuletzt geändert von wvhn; 07.01.2024, 19:05.

                Kommentar


                  #9
                  Servus Wolfram,

                  ja, damit funktioniert es wieder.

                  Vielen Dank für die schnelle Hilfe!

                  Gruß
                  Franz

                  Kommentar

                  Lädt...
                  X