Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Projekt] Material Design CSS für ioBroker.vis

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Projekt] Material Design CSS für ioBroker.vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • Uhula
      Uhula last edited by

      @MaikB85

      Du Schelm, "mdui-title" ist doch für Cards und Tiles gar nicht dokumentiert 😉

      Dein Problem kannst du aber leichter lösen: Ordne den beiden Schaltflächen zum [Öffnen] und [Zoomen] einfach die Eigenschaft "z-index = 2" zu; dann liegen sie "über" den Titelhintergründen.

      Freut mich, wie intensiv du das MD nutzt.

      1 Reply Last reply Reply Quote 0
      • M
        MaikB85 last edited by

        @Uhula:

        @MaikB85

        Du Schelm, "mdui-title" ist doch für Cards und Tiles gar nicht dokumentiert 😉

        Dein Problem kannst du aber leichter lösen: Ordne den beiden Schaltflächen zum [Öffnen] und [Zoomen] einfach die Eigenschaft "z-index = 2" zu; dann liegen sie "über" den Titelhintergründen.

        Freut mich, wie intensiv du das MD nutzt. `
        😄

        Okay gut das du das sagst, so gehts natürlich auf. Aber die Transparenz der Buttons müsste ich dann trotzdem anpassen damit sie nicht heller sind wie die anderen oder? Das MD ist einfach genau das was ich mir immer vorgestellt habe für meine vis!

        Achso was mir gerade einfällt. Die linke Nav-Bar ist ja mit aufklappbaren Gruppen aufgebaut. Einmal Group "Pages" und einmal "Links". Wie kann man da noch mehr hinzufügen? Habe jetzt einmal eine Gruppe Innenbereich und einmal Außenbereich. Würde gerne aber noch eine Dabei haben und das ändern in Räume, Gruppen und Außenbereich.

        1 Reply Last reply Reply Quote 0
        • Uhula
          Uhula last edited by

          @MaikB85

          Da die Schaltflächen mit einem größeren z-Index "vor" der Aufhellung liegen, werden sie korrekt dargestellt. Den z-Index musst du dir als Folien vorstellen, die übereinander liegen. Je größer der Wert, desto weiter oben liegen sie auf dem Folienstapel, du guckst von oben drauf.

          Im lnav kannst du weitere Objekte/Einträge hinzufügen. Am einfachsten ist es, einen kompletten "Ast" - also Open/Close Schlatfläche PLUS darunter liegende Schaltflächen - via "Widgets exportieren" und "Widgets importieren" zu duplizieren und dann anzupassen. Da die Widgets immer in der Reihenfolge des Einfügens gerendert werden, musst du evtl. bestehende Widgets, die weiter unten dargestellt werden sollen, auf dem gleichen Weg verschieben.

          1 Reply Last reply Reply Quote 0
          • O
            ok1 last edited by

            @Uhula, vielen Dank für die schnelle Antwort - funktioniert bestens !

            1 Reply Last reply Reply Quote 0
            • M
              MaikB85 last edited by

              @Uhula:

              Im lnav kannst du weitere Objekte/Einträge hinzufügen. Am einfachsten ist es, einen kompletten "Ast" - also Open/Close Schlatfläche PLUS darunter liegende Schaltflächen - via "Widgets exportieren" und "Widgets importieren" zu duplizieren und dann anzupassen. Da die Widgets immer in der Reihenfolge des Einfügens gerendert werden, musst du evtl. bestehende Widgets, die weiter unten dargestellt werden sollen, auf dem gleichen Weg verschieben. `

              Ah okay. Werde ich mal so probieren. Meine Frage war aber eigentlich anders gemeint. Hab es jetzt aber rausgefunden. Mir ging es um die Eigenschaft "mdui-group-xxx". Ich wusste erst nicht dass man da selber Gruppen definieren kann z.B. "mdui-group-rooms". Dachte der erkennt nur "mdui-group-pages" und "mdui-group-links"

              Gruß Maik

              1 Reply Last reply Reply Quote 0
              • O
                ok1 last edited by

                @Uhula:

                @ok1

                Die Funktionalität war nicht für Views in Dialogen gedacht, sondern nur für solche im Hauptfenster (vis_container) selbst. Es wurde im Script nur ein Eventhandler für das Hauptfenster gesetzt. Ich habe es mal ausprobiert, diese auf den gesamten body zu setzen, dann funktioniert es auch in Dialogen.

                Dazu musst du im Script, in der unteren setTimeout() Funktion die "#vis_container" durch "body" ersetzen (insgesamt 4x).

                Bisher:

                setTimeout(function () {

                // click-Eventhandler für "mdui-scale-" setzen

                $("#vis_container").on( "click", "[class*='mdui-scale-']", function(event) {

                MDUI.scale( $(this) );

                } );

                …

                });

                Neu:

                setTimeout(function () {

                // click-Eventhandler für "mdui-scale-" setzen

                $("body").on( "click", "[class*='mdui-scale-']", function(event) {

                MDUI.scale( $(this) );

                } );

                …

                });

                Werde ich so auch in die Scripte übernehmen. Danke für den Hinweis. `

                Ich bin noch auf ein Problem gestoßen. Im normalen Anzeigemodus funktioniert die Lösung oben wunderbar. Geht man dann aber in den Fullscreen-Modus (über das Widget basic-FullScreen) verschwindet der Dialog unter der Fullscreen-Anzeige bzw. wird unter der Fullscreen-Anzeige erzeugt, ist aber nicht sichtbar. Erst wenn man den Fullscreen-Modus wieder verlässt erscheint die Dialog-Box. Leider habe ich bislang keine funktionierende CSS- bzw. Script-Lösung gefunden. Daher im Voraus vielen Dank für Eure Unterstützung.

                1 Reply Last reply Reply Quote 0
                • Uhula
                  Uhula last edited by

                  @ok1:

                  Ich bin noch auf ein Problem gestoßen. Im normalen Anzeigemodus funktioniert die Lösung oben wunderbar. Geht man dann aber in den Fullscreen-Modus (über das Widget basic-FullScreen) verschwindet der Dialog unter der Fullscreen-Anzeige bzw. wird unter der Fullscreen-Anzeige erzeugt, ist aber nicht sichtbar. Erst wenn man den Fullscreen-Modus wieder verlässt erscheint die Dialog-Box. Leider habe ich bislang keine funktionierende CSS- bzw. Script-Lösung gefunden. Daher im Voraus vielen Dank für Eure Unterstützung. `
                  Das liegt daran, da im Fullscreen-Modus der z-index über die CSS-Klasse ":-webkit-full-screen { }" auf 2147483647 gesetzt wird (warum auch immer). Widget-Dialoge hingegen setzen den z-index nur auf 998; das Material Design Fullscreen auf z-index 2000. Wenn man beides auf 2147483647 anpasst und am Script eine kleine Änderungen vornimmt, geht es. Es bleibt aber die Frage, was dann nicht mehr geht. Kannst du ja mal testen, ob ich das generell ändern kann.

                  Manuell:

                  <u>In der MD CSS:</u>

                  /* –---

                  Dialog

                  ----- */

                  .mdui-runtime .ui-dialog {

                  ...

                  z-index: 2147483647 !important;

                  }

                  <u>In der MD Script:</u>

                  function _toggleFullscreen( $ele ){

                  …

                  $target.attr("style","position:fixed; left:0; top:0; width:100%; height:100%; ****z-index: 2147483647 !important;****background:#212121 !important; ");

                  $target.appendTo( "body" );

                  //$target.appendTo( "body #vis_container" );

                  }

                  }

                  1 Reply Last reply Reply Quote 0
                  • N
                    noxx last edited by

                    @Uhula:

                    @zahnheinrich:

                    @noxx:

                    Ein Video-Tutorial habe ich derzeit nicht geplant (dann würde ich lieber ein MD-vis Adapter machen …). Durch die MD-Demo bzw. MD-Simpel Projekte, die man als Basis eines eigenen Projekts nehmen sollte und dem PDF-Handbuch mit der Beschreibung der "mdui-" CSS sollte man aber auch so voran kommen. Wenn nicht, hier im Forum fragen. `

                    Danke, leider fehlt mir etwas die Zeit mich da reinzuarbeiten. Evtl im Winter.

                    Wenn man die Demos aufmacht, sind das natürlich für einen Einsteiger bömische Dörfer.

                    In FHEM hatte mir das damals geholfen: https://www.youtube.com/watch?v=O5DsCKTNF8c

                    Ist aber natürlich ein ganz anderer Funktionsumfang.

                    Gruß

                    1 Reply Last reply Reply Quote 0
                    • O
                      ok1 last edited by

                      @Uhula:

                      Das liegt daran, da im Fullscreen-Modus der z-index über die CSS-Klasse ":-webkit-full-screen { }" auf 2147483647 gesetzt wird (warum auch immer). Widget-Dialoge hingegen setzen den z-index nur auf 998; das Material Design Fullscreen auf z-index 2000. Wenn man beides auf 2147483647 anpasst und am Script eine kleine Änderungen vornimmt, geht es. Es bleibt aber die Frage, was dann nicht mehr geht. Kannst du ja mal testen, ob ich das generell ändern kann.

                      Manuell:

                      <u>In der MD CSS:</u>

                      /* –---

                      Dialog

                      ----- */

                      .mdui-runtime .ui-dialog {

                      ...

                      z-index: 2147483647 !important;

                      }

                      <u>In der MD Script:</u>

                      function _toggleFullscreen( $ele ){

                      …

                      $target.attr("style","position:fixed; left:0; top:0; width:100%; height:100%; ****z-index: 2147483647 !important;****background:#212121 !important; ");

                      $target.appendTo( "body" );

                      //$target.appendTo( "body #vis_container" );

                      }

                      } `

                      Hallo Uhula,

                      das Setzen des z-index hat sofort zum gewünschten Ergebnis geführt. Allerdings konnte ich bislang noch nicht intensiv testen, da ich mich weiterhin an den jquery-Dialogboxen festgebissen habe.

                      Zum einen habe ich ein Problem mit dem Stacken von 2 Dialogen. Diese erscheinen nicht übereinander, sondern der 2. Dialog liegt unter dem ersten Dialog.

                      Zum anderen gibt es noch einen Darstellungsfehler auf dem Tablet unter Android Chrome (die Darstellung auf dem Desktop Chrome ist ok). Der erste Aufruf des Dialogs funktioniert wie erwartet. Schließt man den Dialog über "Close" und öffnet den Dialog erneut, dann erscheint der Content nur zum Teil und ist nach oben verschoben. Über die Wisch-Geste kann man den Content dann nach unten ziehen. Es scheint auf dem Tablet eine Fehlberechnung des Content-Bereichs beim 2. Aufruf zu geben zu geben. Zudem ändert der "Close"-Button beim 2. Aufruf seine Farbe.

                      Für beide Probleme wäre wahrscheinlich der direkte Eingriff für die Dialoge über das MD-Script sinnvoll, um z.B. statt "Dialog-Close" "Dialog-Destroy" o.ä. zu testen. Oder aber um das Stacking mit moveToTop() zu beeinflussen. Aber leider habe ich VIS noch nicht so verstanden, dass ich über das MD-Script den Zugriff auf die Dialog-Methoden, Events und Optionen erhalte um die implementierten Jquery-Standards zu modifizieren.

                      Meine bisherigen Versuche waren noch nicht erfolgreich. Daher wäre ich für jede Hilfestellung sehr dankbar.
                      3515_jqui-html-dialog-stack.png
                      3515_jqui-html-dialog.png

                      1 Reply Last reply Reply Quote 0
                      • O
                        ok1 last edited by

                        @ok1:

                        Zum anderen gibt es noch einen Darstellungsfehler auf dem Tablet unter Android Chrome (die Darstellung auf dem Desktop Chrome ist ok). Der erste Aufruf des Dialogs funktioniert wie erwartet. Schließt man den Dialog über "Close" und öffnet den Dialog erneut, dann erscheint der Content nur zum Teil und ist nach oben verschoben. Über die Wisch-Geste kann man den Content dann nach unten ziehen. Es scheint auf dem Tablet eine Fehlberechnung des Content-Bereichs beim 2. Aufruf zu geben zu geben. Zudem ändert der "Close"-Button beim 2. Aufruf seine Farbe. `
                        Den Darstellungsfehler konnte ich fixen. Es lag in einem Missverständnis über das Setzen der Auflösung unter "Tools" im VIS-Editor. Nachdem ich für den darzustellenden View im Dialog die Auflösung von Tablet-Auflösung auf "nicht definiert" gesetzt habe funktioniert die Dialog-Darstellung einwandfrei.

                        Es bleibt damit noch das Problem der nicht übereinander liegenden, gestackten Dialoge.

                        1 Reply Last reply Reply Quote 0
                        • Uhula
                          Uhula last edited by

                          @ok1:

                          Es bleibt damit noch das Problem der nicht übereinander liegenden, gestackten Dialoge. `
                          Das Dialog-Stacking schau ich mir mal an. jquery-UI kann es eigentlich. Ob aber vis es auch unterstützt, werde ich mal untersuchen.

                          Alternativ kannst du aber versuchen auf das Dialog-Stacking zu verzichten in dem du auf deinem Main-Screen die Schaltfläche nicht wie bisher zum Öffnen des Konfigurationsdialogs und von dort aus weiter zur Graphanzeige designst, sondern die Schaltfläche im Main-Screen lediglich ein Kontextmenü öffnet, mit den beiden Einträgen "Konfiguration" und "Verlauf" (Kontextmenü wie es im Material Design für die FLOT Anpassung verwendet wird). Oder eben im Main-Screen zwei Schaltflächen.

                          1 Reply Last reply Reply Quote 0
                          • E
                            ErazorVIP last edited by

                            Hallo,

                            ich hätte nochmal eine Frage bezüglich der CSS Klasse.

                            Ich habe jetzt ein Image hinzugefügt mit 2 Systembildern…

                            Jetzt möchte ich gerne "mdui-red-blink" verwenden.. Das soll aber nur bei Systembild 2 passieren.

                            Hat jemand eine Idee wie ich das am besten umsetzen kann?

                            Wenn ich "mdui-red-blink" bei Generell und CSS Klasse eintrage habe ich ja das Ergebnis bei beiden Bildern. :?: :?:

                            1 Reply Last reply Reply Quote 0
                            • Meistertr
                              Meistertr Developer last edited by

                              @ErazorVIP:

                              Hallo,

                              ich hätte nochmal eine Frage bezüglich der CSS Klasse.

                              Ich habe jetzt ein Image hinzugefügt mit 2 Systembildern…

                              Jetzt möchte ich gerne "mdui-red-blink" verwenden.. Das soll aber nur bei Systembild 2 passieren.

                              Hat jemand eine Idee wie ich das am besten umsetzen kann?

                              Wenn ich "mdui-red-blink" bei Generell und CSS Klasse eintrage habe ich ja das Ergebnis bei beiden Bildern. :?: :?: ` Du musst das unter den Reiter widget eintragen und nicht bei view. Dann geht es

                              Gesendet von meinem Handy

                              1 Reply Last reply Reply Quote 0
                              • E
                                ErazorVIP last edited by

                                @Meistertr:

                                @ErazorVIP:

                                Hallo,

                                ich hätte nochmal eine Frage bezüglich der CSS Klasse.

                                Ich habe jetzt ein Image hinzugefügt mit 2 Systembildern…

                                Jetzt möchte ich gerne "mdui-red-blink" verwenden.. Das soll aber nur bei Systembild 2 passieren.

                                Hat jemand eine Idee wie ich das am besten umsetzen kann?

                                Wenn ich "mdui-red-blink" bei Generell und CSS Klasse eintrage habe ich ja das Ergebnis bei beiden Bildern. :?: :?: ` Du musst das unter den Reiter widget eintragen und nicht bei view. Dann geht es

                                Gesendet von meinem Handy `

                                Ja das habe ich unter Widget eingetragen:

                                ~~![](</s><URL url=)http://up.picr.de/30746075bk.png" />

                                ~~![](</s><URL url=)http://up.picr.de/30746076ix.png" />

                                Das Problem ist halt nur ich möchte es nur bei ein Systembild haben wenn der Signalzustand auf true springt z.B.!~~~~

                                1 Reply Last reply Reply Quote 0
                                • Uhula
                                  Uhula last edited by

                                  @ErazorVIP:

                                  Das Problem ist halt nur ich möchte es nur bei ein Systembild haben wenn der Signalzustand auf true springt z.B.! `
                                  CSS Klassen, die nur für die Signalbilder gelten sollen, sind dort unter der Eigenschaft "Klassen[x]" einzugeben. Z.B. "Klassen[0]" = "mdui-red-blink"

                                  Damit blinkt dann das Signalbild, nicht das Widget! Letzteres ist auch via CSS-Klassen nicht erreichbar, da die Signale eigene HTML-Elemente auf gleicher Ebene wie das Widget selbst sind.

                                  Eine Lösung, wo das Widget selbst den Blink-Style annimmt, wäre folgende: Du legst über dein Widget eine identische Kopie, setzt dort als CSS-Klasse für das Widget "mdui-red-blink" und unter "Sichtbarkeit" setzt du die Eigenschaft so, dass dieses Widget nur sichtbar ist, wenn dein gewünschter State gesetzt ist.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    speedy78 last edited by

                                    Also erstmal vielen dank für diese Arbeit. Sieht sehr gut aus.

                                    Jetzt habe ich nur eine Frage wie fange ich am besten an mit dem VIS Editor umzugehen. Hat jemand vielleicht eine Anleitung damit man mal richtig darein kommt um dann das hier besser umsetzen zu können.

                                    Vielen dank im voraus.

                                    ( Neuling )

                                    1 Reply Last reply Reply Quote 0
                                    • E
                                      ErazorVIP last edited by

                                      @Uhula:

                                      @ErazorVIP:

                                      Das Problem ist halt nur ich möchte es nur bei ein Systembild haben wenn der Signalzustand auf true springt z.B.! `
                                      CSS Klassen, die nur für die Signalbilder gelten sollen, sind dort unter der Eigenschaft "Klassen[x]" einzugeben. Z.B. "Klassen[0]" = "mdui-red-blink"

                                      Damit blinkt dann das Signalbild, nicht das Widget! Letzteres ist auch via CSS-Klassen nicht erreichbar, da die Signale eigene HTML-Elemente auf gleicher Ebene wie das Widget selbst sind.

                                      Eine Lösung, wo das Widget selbst den Blink-Style annimmt, wäre folgende: Du legst über dein Widget eine identische Kopie, setzt dort als CSS-Klasse für das Widget "mdui-red-blink" und unter "Sichtbarkeit" setzt du die Eigenschaft so, dass dieses Widget nur sichtbar ist, wenn dein gewünschter State gesetzt ist. ` Danke, coole Projekt [emoji3]

                                      Gesendet von meinem SM-G935F mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • O
                                        ok1 last edited by

                                        @Uhula:

                                        @ok1:

                                        Es bleibt damit noch das Problem der nicht übereinander liegenden, gestackten Dialoge. `
                                        Das Dialog-Stacking schau ich mir mal an. jquery-UI kann es eigentlich. Ob aber vis es auch unterstützt, werde ich mal untersuchen.

                                        . `
                                        Hallo Uhula,

                                        ich möchte kurz nachfragen, ob Du bereits nach dem Dialog-Stacking schauen konntest.

                                        Wenn man die Dialog-Boxen als "nicht modal" öffnet, dann lassen sich die beiden übereinander liegenden Dialoge mit Click auf den jeweiligen Dialog nach vorne holen.

                                        Was mir bislang nicht gelungen ist, ist dieses beim Öffnen eines neuen Dialogs über das MD-Script und Javascript- bzw. JQuery-Funktionen zu automatisieren. Es klemmt beim Selektieren der gesamten Box incl. Inhalt und der MoveToTop-Funktion von JQuery beim dialogopen-Event von JQuery. Für jede Hilfe bin ich dankbar !

                                        1 Reply Last reply Reply Quote 0
                                        • Meistertr
                                          Meistertr Developer last edited by

                                          Insperiert von uhula Arbeite ich mich wie schon gesagt nun auch immer tiefer in css ein hier mal ein kleiner Vorgeschmack, falls jemand Interesse hat, kann ich es gerne (nach Fertigstellung) zur Verfügung stellen.

                                          Eine Frage hab ich dies bezüglich noch:

                                          1: wie kann am einfachsten den wert eines Buttons abfragen unter den scripten z.B jqui icon State?

                                          2: wie kann ich aus den Reiter scripte heraus ein object in iobroker schalten?
                                          1768_2017-10-28_17h42_05.gif

                                          1 Reply Last reply Reply Quote 0
                                          • Bluefox
                                            Bluefox last edited by

                                            Wäre so was interessant? Aber nicht umsonst :? ca. 10€ ?

                                            Es ist GIF. Klick das Bild an.
                                            48_pinpad.gif

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            761
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            111
                                            650
                                            174777
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo