Ankündigung

Einklappen
Keine Ankündigung bisher.

Wer nutzt noch Basic.shifter?

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

    Wer nutzt noch Basic.shifter?

    Hallo zusammen,

    seit es die dynamischen icons gibt, ist IMHO der basic.shifter obsolet. Seine Aufgabe war, quasi-dynamische icons mittels Durchlaufen einer Serie von statischen icons zu erzeugen. Die Serien, die im ./icons Verzeichnis zu finden sind, gibt es alle auch als dynamische icons.

    Wenn sich hier im Forum kein Widerstand regt, setze ich den shifter im nächsten Release auf deprecated und verdrahte ihn fest auf die dynamischen icons. Im übernächsten Release fliegt er dann ganz raus.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 26.09.2020, 21:36. Grund: Thema erledigt

    #2
    Ich

    Kommentar


      #3
      Ich nutze ihn auch. Würde ihn aber ersetzen.

      Kommentar


        #4
        Sipple , NGem , Danke für die Antworten. Ich würde gerne verstehen, was Ihr genau braucht. Hier kurz meine Überlegungen:
        1. Aktive Elemente (die item-Werte verändern) und Anzeigeelemente sollten IMHO sauber getrennt werden. Anzeigeelemente sollen also rein passiv sein.
        2. basic.shifter und auch icon.xyz besitzen derzeit noch die Eigenschaft, dass sie mit einem parameter für "item_switch" aufgerufen werden, welches durch Klick auf das icon hin und her geschaltet wird ('toggle'). Dies führt gelegentlich zu Problemen und deshalb würde ich dieses Verhalten stillegen. Wer einen Schalter braucht, hat ja basic.stateswitch zur Verfügung, der auch die dynamischen icons verarbeitet.
        3. Wie gesagt gibt es alle bisherigen icon-Serien auch als dynamische icons. Deshalb gibt es mit dem issue #65 schon seit 2016 den Vorschlag, die icon Serien nicht weiter zu unterstützen. Den würde ich jetzt mal umsetzen.
        Habt Ihr besondere Anforderungen, die nicht mehr erfüllt werden, wenn ich die o.g. Maßnahmen umsetze? Dann wäre ich für eine kurze Beschreibung dankbar.

        Gruß Wolfram
        Zuletzt geändert von wvhn; 29.07.2020, 13:27. Grund: Korrektur Punkt 2

        Kommentar


          #5
          Gerne.

          Ich bräuchte "dynamisches Einfärben dynamischer Icons". Man kann die dynamischen Icons zwar einfärben, aber eben nicht abhängig des darzustellenden Werts (oder?).

          Siehe Bild. Das Zisternensymbol soll ab gewissen Füllständen auch die Farbe ändern. Von Grün über Gelb, Orange und am Ende Rot. Das habe ich so gelöst, dass ich die entsprechende Iconserie manuell eingefärbt und unter dem passenden Namen abgespeichert habe. Primitiv, macht aber exakt was es soll. Habe ich mehrfach verwendet.

          Shifter.png

          Bei der Zisterne gibt es vielleicht sogar ne Lösung, weil es zumindest ein dynamisches Icon ist. Beim folgenden Icon aber nicht, also keine andere Chance, denke ich.

          Batterie.png

          Ja, ich weiß, es gibt ein dynamisches Batteriesymbol. Aber, das ist zu klein, nicht so "hübsch" und ich verwende es für meine Stellmotoren, weil es da imho besser passt.

          Wenn das ohne Shifter geht und du mir genau sagst wie (ohne ein neues Widget zu entwickeln oder in Javascript rumzufummeln) kann das weg

          P.S. Vielleicht hat ja ein Meister des SVG Lust und Zeit dieses schöne Batteriesymbol dynamisch zu bauen. Die fünf Stufen von kein Balken bis vier Balken reichen völlig. Meine E3DC zeigt das genauso an.
          Zuletzt geändert von Sipple; 29.07.2020, 12:56.

          Kommentar


            #6
            Zitat von Sipple Beitrag anzeigen
            Vielleicht hat ja ein Meister des SVG Lust und Zeit dieses schöne Batteriesymbol dynamisch zu bauen. Die fünf Stufen von kein Balken bis vier Balken reichen völlig. Meine E3DC zeigt das genauso an.
            Da muss man nicht unbedingt ein Meister sein

            Ich finde dieses Batterie-Symbol auch schöner, als das bisherige. Wenn man aus dem angehängten ZIP-File den js-Teil in icon.js und den html-Teil in icon.html integriert, ist das icon mit den gleichen Parametern als "icon.battery2" nutzbar.

            Ich stelle die vollständigen Dateien in github auf smartvisu-newstuff.
            Angehängte Dateien
            Zuletzt geändert von wvhn; 29.07.2020, 21:42.

            Kommentar


              #7
              Zitat von Sipple Beitrag anzeigen
              Wenn das ohne Shifter geht und du mir genau sagst wie (ohne ein neues Widget zu entwickeln oder in Javascript rumzufummeln)
              Das Einfärben der dynamischen Icons selbst ist etwas Entwicklungsaufwand. Ich muss mal sehen, ob ich das hinbekomme. Ist aber nicht ganz oben auf der to-do Liste, weil es auch mit basic.symbol geht:
              Code:
              {{ basic.symbol('test','ug.batt.fuellstand','', icon.battery2('tst','', 'ug.batt.fuellstand', 0, 100), [0, 50, 100], '', ['red', 'yellow', 'green']) }}
              Die Funktion von basic.shifter lässt sich auch unter Verwendung der "alten" Serienicons mit eleganterer Einfärbung realsieren:
              Code:
              {{ basic.symbol('test', 'ug.batt.fuellstand', '', ['measure_battery_0', 'measure_battery_50', 'measure_battery_100'], [0, 50, 100], '', ['red', 'yellow', 'green']) }}
              Kanns damit weg?

              Ich nehme gerne auch weitere Hinweise / Wünsche von anderen Forenteilnehmern entgegen, insbesondere auch zu der toggle-Funktion.

              Gruß
              Wolfram
              Zuletzt geändert von wvhn; 30.07.2020, 08:00.

              Kommentar


                #8


                Jetzt kann das weg, aus meiner Sicht

                Kommentar


                  #9
                  Halt!

                  Kann es sein, dass es mit basic.symbol NICHT funktioniert, weil das symbol nur angezeigt wird, wenn der Wert des items EXAKT der definierte ist? Also in deinem Beispiel oben würde das Symbol nur dann sichtbar sein, wenn der Wert genau 0, 50 oder 100 ist und nicht bei einem Wert dazwischen.

                  So war das eben bei mir bei einem Test.

                  Mit basic.icon geht es, weil das immer angezeigt wird. Das kann aber keine Schwellenwerte, also muss man mit Hilfsitems für z.B. RGB Werte arbeiten, die in SHNG berechnet werden. Gelöst habe ich es z.B. so:

                  Code:
                  {{ basic.icon(icon.meter('', '', 'E3DC.Leistung.Netz.Icon', 0, 100), 'rgb', ['E3DC.Leistung.Netz.Icon.Farbe_R', 'E3DC.Leistung.Netz.Icon.Farbe_G', 'E3DC.Leistung.Netz.Icon.Farbe_B']) }}
                  Ist komplizierter, tut's aber.

                  Gruß, Martin
                  Zuletzt geändert von Sipple; 30.07.2020, 07:50.

                  Kommentar


                    #10
                    Noch was.

                    Das icon.battery2 ist super. Allerdings verhält es sich momentan wohl so (ich arbeite mit 0-100%), dass alle vier Balken nur bei 100% angezeigt werden, bei 99% schon nur noch drei. Keinen Balken zeigt er auch nur bei 0% an und bei 1% schon einen Balken.
                    Wäre es möglich das so zu ändern, dass er von 0%-20% keinen Balken, von 20%-40% einen, von 40%-60% zwei, von 60%-80% drei und von 80%-100% vier Balken anzeigt? So hat sich mein alter shifter verhalten und das gefällt mir besser.

                    Gruß, Martin

                    Kommentar


                      #11
                      Zitat von wvhn Beitrag anzeigen
                      Wer einen Schalter braucht, hat ja basic.stateswitch zur Verfügung, der auch die dynamischen icons verarbeitet.
                      Dies ist für mich ausreichend.

                      Kommentar


                        #12
                        Zitat von Sipple Beitrag anzeigen
                        von 0%-20% keinen Balken, von 20%-40% einen, von 40%-60% zwei, von 60%-80% drei und von 80%-100% vier Balken
                        Das kannst Du testweise selbst einstellen, indem Du im html-Teil die 'data-val' Werte (von oben nach unten) auf 20, 40, 60 und 80 setzt. Der js-code nimmt den Wert des items und blendet jeweils dasjenige SVG-Element ein, für das der zugehörige data-val Schwellwert kleiner oder gleich dem item-Wert ist.

                        Dass das Widget schon beim Wert 1 den ersten Balken anzeigt, habe ich so beim Testen nicht beobachtet. Vom js-Code her wäre das auch nicht nachvollziehbar. Das muss ich mir heute Abend noch einmal ansehen.

                        Kommentar


                          #13
                          Kann auch sein dass ich mich bei den 0% getäuscht habe. Bei den 100 bin ich aber sicher,
                          werde ich testen.

                          Kommentar


                            #14
                            Zitat von Sipple Beitrag anzeigen
                            Kann es sein, dass es mit basic.symbol NICHT funktioniert, weil das symbol nur angezeigt wird, wenn der Wert des items EXAKT der definierte ist?
                            Das habe ich tatsächlich nicht getestet, u.a. weil ich kein passendes test-item hatte und fest davon ausgegangen bin (bzw. glaube gelesen zu haben), dass der 'value'-Parameter in basic.symbol Schwellwerte angibt. Bitte teste mal, ob es schon ausreicht, als 'formula'-Parameter nur ein '>' einzugeben. Dann wird im js-Teil eine Variable 'asThreshold' auf true gesetzt. Wenn das nicht funktioniert, schaue ich mir das auch heute Abend noch einmal an.

                            Danke und Gruß
                            Wolfram

                            Kommentar


                              #15
                              Zitat von wvhn Beitrag anzeigen
                              Bitte teste mal, ob es schon ausreicht, als 'formula'-Parameter nur ein '>' einzugeben.
                              Krass, das war es.

                              Danke, bist der Held!

                              Zitat von wvhn Beitrag anzeigen
                              Das kannst Du testweise selbst einstellen, indem Du im html-Teil die 'data-val' Werte (von oben nach unten) auf 20, 40, 60 und 80 setzt.
                              Auch erledigt, scheint zu klappen.

                              Schaut super aus!

                              Kommentar

                              Lädt...
                              X