Ankündigung

Einklappen
Keine Ankündigung bisher.

Customized JavaScript?

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

    Customized JavaScript?

    Hallo.


    Gibt es einen einfachen Trick im CometVisu eine eigene JavaScript-Datei miteinzubinden. Optionalerweise wird "forceReload" Parameter mit-unterstützt.
    Grund: meine bessere Hälfte findet irritierend, wenn die Geschosse nicht gleich "hoch" sind. Dies sollte nur gelten, sobald mind. 2 Typen (z.B. "Fenster & Türen" und "Storen") nebeneinander sind.

    2017-11-01_19-38-53.png

    2017-11-01_19-46-45.png

    Dies könnte man leicht mit JQuery lösen. Habe probehalber mit Modifikation im index.html probiert, jedoch funktioniert es nicht, da Layout XML zu diesem Zeitpunkt nicht geladen wurde. Gerne würde ich auch JavaScript für weitere DOM Manipulationen offen lassen.


    - Christoph

    #2
    Grundsätzlich ist das möglich, das Vorgehen hängt aber davon ab welche Version Du nutzt. 0.10.2? Die aktuelle Entwicklungsversion? Als Release oder als Sourcen?
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Hallo Chris.

      Ich nutze: Version: 0.10.2 Release.


      - Christoph

      Kommentar


        #4
        OK, beim Release ist's natürlich am schwierigsten

        Da fallen mir spontan zwei Möglichkeiten ein:
        1. Beim gewählten Design die Datei design_setup.js (also z.B. /designs/pure/design_setup.js) mit den eigenen Wünschen erweitern
        2. Ein Plugin schreiben und in der Config mit einbinden

        Beide Möglichkeiten haben verschiedene Vor- und Nachteile.
        Bei 1: Es ist nicht "sauber" und geht beim nächsten Update kaputt, bzw. muss halt wieder eingebaut werden.
        Bei 2: Es ist (erst mal) nicht in der XSD mit drinnen, d.h. der Config-Check und ggf. Editor werden meckern. Aber mit einer XSD-Erweiterung ist das lösbar - nur ist dann das beim Update wieder weg...

        Insbesondere bei 1 muss man noch aufpassen, dass die Änderung vom Browser auch geladen wird und nicht im App Cache (-> Datei cometvisu.appcache anpassen!) und/oder Browser-Cache stecken bleibt.

        Wenn Du nun über eine dieser Wege eigenen Code einschleusen kannst, musst Du nur noch darauf achten, dass der zum richtigen Zeitpunkt läuft, also z.B. wenn die Template Engine den DOM Tree aufgebaut hat (also beim Ladevorgang) oder bei jedem Seitenwechsel.
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Hoi.

          Danke. Ich dachte, dass es einen Trick gibt - aber so habe ich es halt über design_setup.js gelöst.


          Wenn jemand das gleiches "Problem" hat, hier die Lösung:

          Code:
          var injectScript = function() {
                  window.setTimeout(
                          function() {
                                  if ($('#id_').length > 0) {
                                          // 'id_' gefunden - lade custom.js
                                          let s = document.createElement('script');
                                          s.src = './designs/discreet_slim/custom.js';
                                          document.head.appendChild(s);
                                  } else {
                                          // 'id_' nicht gefunden - probiere noch mal in 250ms (rekursiv!)
                                          injectScript();
                                  }
                          },
                          250
                  );
          }
          injectScript();
          Erklärung: Skript wird erst eingebunden (und geladen) wenn das id_ Element vorhanden ist. Bei Nichtfinden, versucht das Skript in 250ms noch mal.

          Kommentar


            #6
            Ich hab mal unter https://github.com/CometVisu/CometVisu/issues/683 in Issue aufgemacht um das in Zukunft etwas leichter zu gestalten.
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              #7
              Perfekt! Danke!

              Kommentar

              Lädt...
              X