Ankündigung

Einklappen
Keine Ankündigung bisher.

eigenes Widget - einbinden von JS

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

    eigenes Widget - einbinden von JS

    Hallo,

    kann mir jemand auf die Sprünge helfen?

    Ich nutze die CV in der 0.8 Version.

    Möchte nun gerne eine eigen JS Datei einbinden um z.B: ein eigenes Widget zu erstellen.

    Dazu habe ich in der index.html meine js Datei eingebunden, welche unter structure/pure/ liegt.

    Aber wenn ich mir den Quellcode anschaue ist diese ZEile einfach nicht vorhanden.

    Gibt es hier irgendwo einen Cache oder so was?

    Ich möchte igentlich nur ein Widget einbinden um alle Werte, welche in ein Div geschriebenw erden an dem Punkt zu trenne und daraus zwei Spans zu machen.
    Ich möchte optisch die Nachkommastelle kleiner darstellen.

    #2
    Ja die CV arbeitet mit Cache. Also am besten mal den Browser Cache leeren und neu laden. Wenn das immer noch nicht hilft die Seite mal mit &forceReload=true aufrufen.
    Gruss Patrik alias swiss

    Kommentar


      #3
      Super

      Das hat funktioniert!

      Kann mir nun noch jemand in kurzen Worten den Unterschied in der CV zwische einen Widget und einem Plugin erklären?

      Was nutze ich für mein Vorhaben am Besten?

      Kommentar


        #4
        Widgets sind einfache Anzeige- oder Bedieneinheiten wie ein Button oder ein Textfeld ohne logik oder sonnst was

        Ein Plugin darf da wesentlich komplexer sein (was auch zulasten der Ladezeit gehen kann) und auch gewisse einfache Logikfunktionen enthalten.

        Widgets werden immer eingebunden und gehöhern zur "Grundlast". Plugins kann der Benutzer nach bedarf einbinden, muss sich aber bewusst sein, dass das einbinden von "dicken" Plugins zulasten der Ladezeit geht. Dies magzuhause im LAN keine grosse Rolle spielen aber unterwegs auf einem Mobilgerät und schlechter Internetverbindung kann dies schwer ins Gewicht fallen

        Für dein Vorhaben wäre also die Auslegung als Plugin sinnvoll. Dann musst du dies auch nicht in der index.html "hart" einbinden.

        Es reicht, wenn du im Ordner plugins einen Ordner mit einem beliebigen Namen erstellst und dann den Namen des Ordners (= PluginName) im Metabereich der Config angiebst.

        Der js Code muss den Dateinamen structure_plugin.js haben und sich im oben selbst erstellten Ordner befinden.
        Gruss Patrik alias swiss

        Kommentar


          #5
          Hallo swiss,

          danke für die Erklärung.

          Wieso aber kann ich nicht ein Art "Info Widget 2" bauen, welches den gelieferten Wert einfach auftrennt und in zwei Spans zurückgibt?

          Braucht man dafür wirklich ein Plugin?
          Ich möchte ja schließlich weiterhin <address>, <format>, <label> angeben können...

          Wo müsste ich ein Widget (js Datei) speichern und wie sieht der allgemeine Aufbau eines Widgets aus?

          edit:
          Ich kann ja im Info Widget über <formula> auch JS Code einbauen, welcher in function(x) geladen wird. Da kann ich auch mit einem val.split('.') einen Wert am Komma trennen und diesen auch nach belieben ausgeben. Alles super. Aber es funktioniert nicht, dass ich ein "<span>" mit ausgebe also z.B. y="<span class='test'>Mein Wert</span>'.

          ich bekomme immer nur "Mein Wert" und nicht den span Tag.

          Kommentar


            #6
            Zitat von Jache Beitrag anzeigen
            Möchte nun gerne eine eigen JS Datei einbinden um z.B: ein eigenes Widget zu erstellen.

            Dazu habe ich in der index.html meine js Datei eingebunden, welche unter structure/pure/ liegt.
            Die index.html ändern ist (so man nicht als Entwickler im SVN arbeitet) ungeschickt. Die wird nämlich beim nächsten Update gnadenlos überschrieben.

            Um leicht eigene Anpassungen durchführen zu können gibt es auch eine offizielle Lösung, die auch Updates überlebt:
            In /config/structure_custom.js kannst Du beliebigen JS Code hinterlegen, z.B. auch eigene Widgets.

            Der Hinweis mit dem forceReload ist natürlich auch wichtig, dass kann ggf. auch bei der Entwicklung der structure_custom.js helfen.
            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
              Hallo Chris,

              die Datei existiert bei mir nicht.

              Habe Sie nun angelegt.
              Muss ich Sie irgendwo noch einbinden, denn wenn ich als bsp.: ein alert("Hello") in die Datei schreibe funktioniert das nicht

              Kommentar


                #8
                Ich sehe gerade, dass der Optimierungs-Algorithmus beim Erstellen des Release diese Datei wie eine normale Source-Datei behandelt, d.h. fest einbaut

                => Das sollte funktionieren, in der 0.8.0 ist's aber kaputt
                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


                  #9
                  Ok

                  In welcher Version ist es denn ganz?

                  Kommentar


                    #10
                    Z.B. in der SVN Version.

                    Vorschlag für einen Workaround im Release: lege einfach diese Datei an und lade die in der index.html

                    Wenn dann eine neue Version kommt, sollte es hoffentlich automatisch wieder funktionieren und die überschriebene index.html würde dann auch nicht mehr stören.
                    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


                      #11
                      Klar könnte man dafür auch ein Widget bauen. Nur sind die Widget unter structur/pure die Standardwidgets die zum Lieferumfang gehören. Deine Sonderlösung ist dort und über index.html eingebunden nicht gut aufgehoben, da diese Verzeichnissen ohne Rücksicht beim nächsten Update überschrieben werden könnten. Also entweder als Plugin (die werden in der config eingebunden und sind desshalb sicher). Oder in structur_custom.js wie von Chris vorgeschlagen. Die sollte automatisch eingebunden werden. Allerdings müssen die Widgets gewisse "Regeln" einhalten. Einfach ein"nackter" js Code der irgendwas macht geht AFAIK nicht da es nicht ein einfacher include ist.
                      Gruss Patrik alias swiss

                      Kommentar


                        #12
                        Hallo swiss,

                        ok stehen diese Regeln irgendwo?

                        Kommentar


                          #13
                          Nein das steht bis jetzt noch nirgends. Aber du kannst ja ein bestehendes Widget als Vorlage verwenden damit lässt sich der Aufbau gut ableiten.

                          Im minimum braucht das Widget einen Namen mit dem es intern eindeutig identifiziert werden kann...

                          Code:
                          basicdesign.addCreator('info', {
                          Aber ich würde zum anfangen ohnehin ein bestehendes Widget wie info komplett in die structure_custom.js kopieren und anpassen.
                          Gruss Patrik alias swiss

                          Kommentar


                            #14
                            Danke dir Das hilft mir weiter.

                            Letzte Frage

                            Wo finde ich ein bestehendes Widget? Ordnerstuktur?

                            Kommentar


                              #15
                              Im Release-Paket im Unterorder /src/structure/pure/

                              Oder im Online-SVN-Browser: Open Automation / Code / [r2040] /CometVisu/branches/release_0.8.0/src/structure/pure
                              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

                              Lädt...
                              X