Ankündigung

Einklappen
Keine Ankündigung bisher.

Erste Beta eines timeout plugins....

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

    Erste Beta eines timeout plugins....

    Moin Jungs,

    ich habe ins SVN ein neues Plugin hochgeschoben: "timeout".

    Die Idee ist folgende: Ich möchte, wenn über eine vorgegebene Zeit x keine Eingabe gemacht wurde, wieder zurück zu einer definierten Seite springen.

    Hintergrund ist, dass ich es schon oft erlebt habe, dass ich oder Mausi mal das aktuelle Wetter sehen wollte oder das Licht geschaltet hat (alles auf separaten Pages), dann aber nicht zurück auf die Startseite gegangen ist. Nun befindet sich aber bei mir auf der Startseite eine Übersicht der wichtigsten Zustände, sowie die aktuelle Temperatur und die Termineinträge für den aktuellen Tag. Ich fand es nervig, dass ich immer selbst zurück springen muss.

    Zur Nutzung einfach folgendes oben bei den Plugins im XML eingeben:
    Code:
    <plugins>
          ....
          <plugin name="timeout"/>
          ....
    </plugins>
    Weiter unten bei den Pages habe ich dann folgendes:
    Code:
      <page name="Start">
    
       <timeout time="60" target="Start" />
    Dieses definiert, dass nach 60 Sekunden Inaktivität zurück auf die Seite "Start" gesprungen wird.


    ToDo:
    • Das Timeout Element pro Seite erlauben um hier unterschiedliche Zeiten und/oder Ziele zu definieren.
    • Das Scrolling der Zielseite zurück auf den Anfang setzen
    • Manchmal wird der Navbar nicht aktualisiert (Graphic Icons) und so erscheint das Icon der vorhergehenden Seite immer noch gedrückt.



    Wer also Lust hat, kann hier gerne mal testen und mir ein Feedback geben.



    Gruß, Netsrac

    #2
    Dumme Frage, aber was ist der Unterschied zur schon vorhandenen screensave_time und screensave_page (beides Attribute des pages Element; vgl. auch XSD)
    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
      Das ist eine gute Frage. Ich war mir dessen nicht bewusst, dass es sowas gibt :-) Seit wann ist es da drin?!

      Werde mir am Wochenende mal anschauen, ob es wirklich das selbe tut...wenn ja, dann schmeiße ich mein Plugin wieder raus...

      Gruß, Netsrac

      Kommentar


        #4
        Erste Beta eines timeout plugins....

        Habe das mit dem screensave mal versucht und es gibt Momente wo es nicht funktioniert.

        Leider ist das nicht reproduzierbar und zwei Endgeräte mit der selben Config verhielten sich unterschiedlich. Mal klappt es und mal nicht und dann doch wieder...auch hatte ich das Gefühl, dass die Zeit kürzer war, als ich in der Comfig angegeben hatte.

        Habe mit dem timeout Plugin ja eigentlich auch noch mehr vor, so dass man es z.B, auf einzelnen Seiten unterschiedlich einbinden kann.

        Wobei sich natürlich die Frage stellt, ob es nicht logischer wäre jeder Page die optionalen Parameter screensave_page und screensave_time mitzugeben (wobei das ja dann wieder mehr ein timeout, als ein screensave wäre).

        So könnte man das Verhalten dann individuell configurieren....

        Kommentar


          #5
          Kleines Update veröffentlicht:

          • Es wird nun zum Anfang der Seite gescrolled...egal, wo man vorher war
          • Der Timer wird bei einem "PageJump on GA" zurück gesetzt

          Kommentar


            #6
            Habe das timeout plugin bei mir schon lange "klaglos" im Einsatz. Letztens fiel mir auf, das es wohl nicht mehr funktioniert.

            Der Debugger wirft folgendes aus:

            HTML-Code:
            ReferenceError: timeoutTrigger is not defined
            und im entsprechenden plugin structure_plugin.js steht in der angemahnten Zeile:

            HTML-Code:
                var idleInterval = setInterval("timeoutTrigger()", deltaT); 
            wenn man es ersetzt durch:

            HTML-Code:
                var idleInterval = setInterval(timeoutTrigger(), deltaT); 
            wirft der Debugger zumindest keine Fehler mehr aus.... aber funktionieren tut es trotzdem nicht.
            Viele Grüße Jens

            Kommentar


              #7
              Da ich das Plugin nicht nutze kann ich nicht viel kommentieren (ich weiß nicht mal was das genau macht... Müsste wohl weiter oben im Thread nachlesen )

              Was mir aber auffällt:
              Code:
              var idleInterval = setInterval("timeoutTrigger()", deltaT);
              ist uralter Code der gegen die guten Regeln des modernen JavaScript verstößt (man sollte kein eval() verwenden - ein setTimeout mit einem String als Parameter macht das implizit).

              Die andere Lösung
              Code:
              var idleInterval = setInterval(timeoutTrigger(), deltaT);
              kann nicht funktionieren, denn da wird timeoutTrigger() ausgeführt und dessen Rückgabewert dem setInterval als Parameter übergeben. Dumm nur, dass dieser Wert undefined ist...

              Versuch daher mal ganz einfach (von mir nicht getestet!):
              Code:
              var idleInterval = setInterval(timeoutTrigger, deltaT);
              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


                #8
                Das funktioniert .... man, man, man, genau diese Sache hatte ich mir letztens erst durchgelesen
                Viele Grüße Jens

                Kommentar


                  #9
                  Zitat von Chris M. Beitrag anzeigen
                  Was mir aber auffällt:
                  Code:
                  var idleInterval = setInterval("timeoutTrigger()", deltaT);
                  ist uralter Code der gegen die guten Regeln des modernen JavaScript verstößt (man sollte kein eval() verwenden - ein setTimeout mit einem String als Parameter macht das implizit).
                  Hatte ich mir damals irgendwo abgeguckt und da es funktionierte, habe ich es nie hinterfragt :-)

                  Kommentar

                  Lädt...
                  X