Ankündigung

Einklappen
Keine Ankündigung bisher.

Modifikationen Ajax.js

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

    #61
    ouch.

    hab gerade bei vento66 auf der Demo Seite gesehen, wie unglücklich meine wahl mit dem Trennzeichen ";" war "XXLINK;Zum Glück geküsst;http://www.tvmovie.de/Zum-Glueck-gekuesst.84.0.html?&detail=12092183" macht es ziemlich schwer den link zu finden.

    was denkt ihr welches Trennzeichen ansonsten nicht verwendet wird ??
    "@" evtl. email
    "@@" würde gehen aber lang
    "#" zu oft verwendet in urls verwendet
    "^" evtl keine Ahnung in urls
    "~" evtl.

    wenn sollten wir das Trennzeichen möglichst schnell festlegen,
    damit nachher nicht schon zuviel in der Visu oder in Logik nach dem jetzigen Trennzeichen ";" arbeitet.

    Bitte um Vorschläge
    Nils

    aktuelle Bausteine:
    BusAufsicht - ServiceCheck - Pushover - HS-Insight

    Kommentar


      #62
      Neue Funktion:

      Code:
       
      XXHTML;<object width="320" height="265"><param name="movie" value="[URL]http://www.youtube.com/v/QhIBo4MIG4Y&hl=de&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999[/URL]" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="[URL]http://www.youtube.com/v/QhIBo4MIG4Y&hl=de&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999[/URL]" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="f" width="320" height="265"></embed></object>
      mal zum testen

      edit: nicht vergessen mal n paar Inspirationen mediaplayer,vlc-plugin,musikplayer,playlist,vlc esound(esd),video,upnp,camera mp4,.......


      html technisch ist alles danach möglich.

      der HS wandelt den html code in [object width=?320? ....
      um und das javascript wandelt es wieder zurück.

      Doch Vorsicht. Dacom hat es bestimmt nicht zum Spass ausdokumentiert.

      Code:
      --- ajax-orig.js Wed Jun 11 11:59:34 2008
      +++ ajax.js Mon Apr 20 22:10:30 2009
      @@ -39,6 +39,11 @@
       hs_connected = 0;
       isBusy=0;
       xmlhttp = null;
      +XXLINKURL = "";
      +XXINACTIVDELAY = 0;
      +XXINACTIVOBJ = null;
      +XXINACTIVTIMER = null;
      +
       
       // Markierung
       markImg = null
      @@ -1065,6 +1070,17 @@
       
       mouseClickItem = null;
       
      +function baseMouseMove(_event)
      +{
      +  if(XXINACTIVOBJ != null) {
      +    if(XXINACTIVTIMER != null) {
      +      window.clearTimeout(XXINACTIVTIMER);
      +    }
      +    XXINACTIVTIMER = window.setTimeout("doCmd(XXINACTIVOBJ)", XXINACTIVDELAY);
      +  }
      +
      +}
      +
       // Klick auf Hintergrund abfangen
       function bgClick(_event)
       {
      @@ -1268,6 +1284,48 @@
                 var item=aVisu[npos];
                 item.txt=getXmlAttr(aRes[0],"txt");
                 if (item.handle!=null) {
      +              if(item.txt.indexOf("XXHTTP;") == 0) {
      +                item.txt=item.txt.substr(7,item.txt.length);
      +                XXHTTPURL = item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
      +                // Wenn URL mit HSLIST: beginnt öffne Archiv
      +                if(XXHTTPURL.indexOf("HSLIST:") == 0) {
      +                  XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
      +                }
      +                item.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\"onclick=\"XXHTTPWin=window.open('/opt/redirect.htm?" + XXHTTPURL + "','XXHTTP');\">" +item.txt.substr(0,item.txt.indexOf(";")) + "</div>";
      +              } 
      +              if(item.txt.indexOf("XXLINK;") == 0) {
      +                item.txt=item.txt.substr(7,item.txt.length);
      +                XXHTTPURL = item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
      +                // Wenn URL mit HSLIST: beginnt öffne Archiv
      +                if(XXHTTPURL.indexOf("HSLIST:") == 0) {
      +                  XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
      +                }
      +                item.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXLINKURL='/opt/redirect.htm?" +XXHTTPURL + "';\">" +item.txt.substr(0,item.txt.indexOf(";")) + "</div>";
      +              }
      +              if(item.txt.indexOf("XXIFRAME;") == 0) {
      +                item.txt=item.txt.substr(9,item.txt.length);
      +                XXIFRAMEURL=item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
      +                if(XXIFRAMEURL == "") {
      +                  item.txt="<iframe src=\"" + XXLINKURL + "\" width=" + item.w + " height=" + item.h + " >";
      +                } else {
      +                  item.txt="<iframe src=\"/opt/redirect.htm?" + XXIFRAMEURL + "\" width=" + item.w + " height=" + item.h + " >";
      +                }
      +              }
      +              if(item.txt.indexOf("XXTRIGGER;") == 0) {
      +                delay = parseInt(item.txt.substr(10,item.txt.length)) * 1000;
      +                item.txt="";
      +                if(delay > 0) {
      +                  window.setTimeout("doCmd(item)", delay);
      +                } else {
      +                  doCmd(item);
      +                }
      +              }      
      +
      +              if(item.txt.indexOf("XXIMG;") == 0) {
      +                item.txt="<img src=\"" + item.txt.substr(6,item.txt.length) + "\" alt=\"IMAGE\" width=" + item.w + " height=" + item.h + " >";
      +              }  
      +
      +
                   item.handle.innerHTML=item.txt;
                 }
               }
      @@ -1834,6 +1892,66 @@
             aVisuItem.txt=getXmlAttr(aRes[0],"txt");
             aVisuItem.hasCmd=getXmlAttr(aRes[0],"hcmd");
             aVisuItem.click=getXmlAttr(aRes[0],"click")*1;
      +      if(aVisuItem.txt.indexOf("XXHTTP;") == 0) 
      +      {
      +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
      +        XXHTTPURL = aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
      +        // Wenn URL mit HSLIST: beginnt öffne Archiv
      +        if(XXHTTPURL.indexOf("HSLIST:") == 0)
      +        {
      +          XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
      +        }
      +        aVisuItem.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXHTTPWin=window.open('/opt/redirect.htm?" + XXHTTPURL + "','XXHTTP');\">" +aVisuItem.txt.substr(0,aVisuItem.txt.indexOf(";")) + "</div>";
      +      }
      +      if(aVisuItem.txt.indexOf("XXLINK;") == 0) 
      +      {
      +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
      +        XXHTTPURL = aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
      +        // Wenn URL mit HSLIST: beginnt öffne Archiv
      +        if(XXHTTPURL.indexOf("HSLIST:") == 0)
      +        {
      +          XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
      +        }
      +        aVisuItem.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXLINKURL='/opt/redirect.htm?" +XXHTTPURL + "';\">" +aVisuItem.txt.substr(0,aVisuItem.txt.indexOf(";")) + "</div>";
      +      }
      +      if(aVisuItem.txt.indexOf("XXIMG;") == 0) {
      +        aVisuItem.txt="<img src=\"" + aVisuItem.txt.substr(6,aVisuItem.txt.length) + "\" alt=\"IMAGE\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
      +      }  
      +      if(aVisuItem.txt.indexOf("XXHTML;") == 0) {
      +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
      +        aVisuItem.txt=aVisuItem.txt.replace(/\[/g, "<");
      +        aVisuItem.txt=aVisuItem.txt.replace(/=\?/g, "=\"");
      +        aVisuItem.txt=aVisuItem.txt.replace(/\? /g, "\" ");
      +        aVisuItem.txt=aVisuItem.txt.replace(/\?\]/g, "\">");
      +        aVisuItem.txt=aVisuItem.txt.replace(/\]/g, ">");
      +      }  
      +      if(aVisuItem.txt.indexOf("XXIFRAME;") == 0) {
      +        aVisuItem.txt=aVisuItem.txt.substr(9,aVisuItem.txt.length);
      +        XXIFRAMEURL=aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
      +        if(XXIFRAMEURL == "") {
      +          aVisuItem.txt="<iframe src=\"" + XXLINKURL + "\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
      +        } else {
      +          aVisuItem.txt="<iframe src=\"/opt/redirect.htm?" + XXIFRAMEURL + "\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
      +        }
      +      }  
      +      if(aVisuItem.txt.indexOf("XXTRIGGER;") == 0) {
      +        delay = parseInt(aVisuItem.txt.substr(10,aVisuItem.txt.length)) * 1000;
      +        aVisuItem.txt="";
      +        if(delay > 0) {
      +          window.setTimeout("doCmd(aVisuItem)", delay);
      +        } else {
      +          doCmd(aVisuItem);
      +        }
      +      }      
      +      
      +      if(aVisuItem.txt.indexOf("XXINACTIV;") == 0) {
      +        XXINACTIVDELAY = parseInt(aVisuItem.txt.substr(10,aVisuItem.txt.length)) * 1000;
      +        aVisuItem.txt="";
      +        XXINACTIVOBJ = aVisuItem;
      +        XXINACTIVTIMER = window.setTimeout("doCmd(XXINACTIVOBJ)", XXINACTIVDELAY);
      +      }
      +
      +
             aItems.push(aVisuItem);
           }
           else if (aRes[0].substr(0,3)=="BOX")
      @@ -2010,6 +2133,7 @@
       
         // HTML-Framework
         base = document.getElementById("xbase");
      +  base.onmousemove = baseMouseMove;
         mark = document.getElementById("xmark");
         reconnect = document.getElementById("xreconnect");  
         reconnect.onclick = clickReconnect;
      Nils

      aktuelle Bausteine:
      BusAufsicht - ServiceCheck - Pushover - HS-Insight

      Kommentar


        #63
        Trennzeichen: denke einfach etwas das in URLs nicht vorkommen (kann/darf) und im Text normalerweise nicht verwendet wird. Ohne jetzt über alle möglichen Varianten im Detail nachgedacht zu haben: | (Pipe) ?
        ~: nicht sicher, könnte aber glaub ich in URLs möglich sein
        @: wäre jedenfalls IMHO schlecht wegen User:Pass@site

        Ansonsten Klasse, einfach Klasse

        Makki
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          #64
          Zitat von makki Beitrag anzeigen
          Ohne jetzt über alle möglichen Varianten im Detail nachgedacht zu haben: | (Pipe) ?
          war auch mein erster Gedanke, aber ich weiß nicht obs an der rdp Sitzung liegt oder der Experte lässt mich kein | eingeben
          Nils

          aktuelle Bausteine:
          BusAufsicht - ServiceCheck - Pushover - HS-Insight

          Kommentar


            #65
            Nee, das mit dem Pipe es liegt nicht am RDP.. Blöd, bei etwas nachdenken machts auch gleich irgendwie Sinn, sonst müsste es als Trennzeichen in der proj.hs3 escaped werden
            Hab mir eben mal die w3c-speces durchgesehen, von den verbleibenden gefällt mir persönlich ~ jetzt am ehesten. Sollte ~ wirklich in einer URL verwendet werden (wo mir jetzt kein Fall bekannt wäre), muss es halt dann dort als "%7E" eingetragen werden. Ist by design wohl nur für irgendwelches Internationales-Zeichensatz-Zeug in URIs vorgesehen und z.B. Umlaute in URLs fände ich ohnehin ziemlich krank

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #66
              Zitat von makki Beitrag anzeigen
              Sollte ~ wirklich in einer URL verwendet werden (wo mir jetzt kein Fall bekannt wäre), muss es halt dann dort als "%7E" eingetragen werden.
              homedirs verwenden /~username in urls was aber wohl eher selten aus dem HS aufgerufen wird

              Mir ist noch * eingefallen der sollte in URL's Tabu sein aber evtl in der Beschreibung nicht
              Nils

              aktuelle Bausteine:
              BusAufsicht - ServiceCheck - Pushover - HS-Insight

              Kommentar


                #67
                Stimmt, ~ ist zwar selten aber wohl erlaubt. ich hab mir jetzt mal die RFC3986 als morgenlektüre zurechtgelegt, brauchbare Ideen sind bei mir wohl für heute erschöpft

                Makki
                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                -> Bitte KEINE PNs!

                Kommentar


                  #68
                  Information von Dacom

                  Wir werden alle js-Dateien als open source unter die GPL V3 stellen.

                  Es bezieht sich auf die AV (HSAjaxVisu), PV (PocketVisu) und RV (RemoteVisu) von uns, sowie die PV von Gira.

                  Dazu haben wir im Header der Dateien eine Erganzung vorgenommen.

                  Neben den o.g. Setups werden wir alle js-Dateien in einer Zip-Datei zusammenfassen und auf unserer Homepage zur Verfügung stellen.
                  Die Gira-PV wird bei Gira gehostet.

                  Nur diese zip-Datei und die Setups werden von uns gepflegt und supported.

                  Wir werden jede Änderung in den js-Dateien in einer History zu der zip-Datei mitführen.

                  Bei jeder Änderung können wir Dir einen Hinweis geben.

                  Umfang des Open Source sind nicht die Grafiken etc., die Umfang der Setups sind.

                  Wir planen die Version diese Woche noch bei uns zu hosten.
                  Gruß Matthias
                  EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                  - PN nur für PERSÖNLICHES!

                  Kommentar


                    #69
                    Klasse.

                    Dann gibts ja auch bald was in unserem Downloadbereich.
                    Nils

                    aktuelle Bausteine:
                    BusAufsicht - ServiceCheck - Pushover - HS-Insight

                    Kommentar


                      #70
                      Solange noch keine GPL Version da ist,
                      weiterhin Diffs

                      Neue Funktion (beta):
                      XXKEY;
                      Ein Textelement mit Statischem Text und Aktion: Werteingabe öffnen
                      als Kommunikationsobjekt für die Werteingabe ein 8-Bit (0..255)EIS 2,6)
                      Jetzt werden die Keycodes der Tastatureingaben an dieses Objekt
                      gesendet.




                      Code:
                      --- ajax-orig.js Wed Jun 11 11:59:34 2008
                      +++ ajax.js Tue Apr 21 11:50:33 2009
                      @@ -39,6 +39,11 @@
                       hs_connected = 0;
                       isBusy=0;
                       xmlhttp = null;
                      +XXLINKURL = "";
                      +XXINACTIVDELAY = 0;
                      +XXINACTIVOBJ = null;
                      +XXINACTIVTIMER = null;
                      +XXKEYOBJ = null;
                       
                       // Markierung
                       markImg = null
                      @@ -1065,6 +1070,31 @@
                       
                       mouseClickItem = null;
                       
                      +function baseMouseMove(_event)
                      +{
                      +  if(XXINACTIVOBJ != null) {
                      +    if(XXINACTIVTIMER != null) {
                      +      window.clearTimeout(XXINACTIVTIMER);
                      +    }
                      +    XXINACTIVTIMER = window.setTimeout("doCmd(XXINACTIVOBJ)", XXINACTIVDELAY);
                      +  }
                      +
                      +}
                      +function baseKeyDown(_event)
                      +{
                      +  if(XXKEYOBJ != null) {
                      +    if(window.event) {
                      +      keynum = _event.keyCode;
                      +    } else {
                      +      keynum = _event.which;
                      +    }
                      +    var sUrl = "id=" + String(XXKEYOBJ.id) + "&val=" + String(keynum);
                      +    doSetzeWert(sUrl);
                      +    return false;
                      +  } 
                      +}
                      +
                      +
                       // Klick auf Hintergrund abfangen
                       function bgClick(_event)
                       {
                      @@ -1268,6 +1298,48 @@
                                 var item=aVisu[npos];
                                 item.txt=getXmlAttr(aRes[0],"txt");
                                 if (item.handle!=null) {
                      +              if(item.txt.indexOf("XXHTTP;") == 0) {
                      +                item.txt=item.txt.substr(7,item.txt.length);
                      +                XXHTTPURL = item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
                      +                // Wenn URL mit HSLIST: beginnt öffne Archiv
                      +                if(XXHTTPURL.indexOf("HSLIST:") == 0) {
                      +                  XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                      +                }
                      +                item.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\"onclick=\"XXHTTPWin=window.open('/opt/redirect.htm?" + XXHTTPURL + "','XXHTTP');\">" +item.txt.substr(0,item.txt.indexOf(";")) + "</div>";
                      +              } 
                      +              if(item.txt.indexOf("XXLINK;") == 0) {
                      +                item.txt=item.txt.substr(7,item.txt.length);
                      +                XXHTTPURL = item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
                      +                // Wenn URL mit HSLIST: beginnt öffne Archiv
                      +                if(XXHTTPURL.indexOf("HSLIST:") == 0) {
                      +                  XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                      +                }
                      +                item.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXLINKURL='/opt/redirect.htm?" +XXHTTPURL + "';\">" +item.txt.substr(0,item.txt.indexOf(";")) + "</div>";
                      +              }
                      +              if(item.txt.indexOf("XXIFRAME;") == 0) {
                      +                item.txt=item.txt.substr(9,item.txt.length);
                      +                XXIFRAMEURL=item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
                      +                if(XXIFRAMEURL == "") {
                      +                  item.txt="<iframe src=\"" + XXLINKURL + "\" width=" + item.w + " height=" + item.h + " >";
                      +                } else {
                      +                  item.txt="<iframe src=\"/opt/redirect.htm?" + XXIFRAMEURL + "\" width=" + item.w + " height=" + item.h + " >";
                      +                }
                      +              }
                      +              if(item.txt.indexOf("XXTRIGGER;") == 0) {
                      +                delay = parseInt(item.txt.substr(10,item.txt.length)) * 1000;
                      +                item.txt="";
                      +                if(delay > 0) {
                      +                  window.setTimeout("doCmd(item)", delay);
                      +                } else {
                      +                  doCmd(item);
                      +                }
                      +              }      
                      +            
                      +              if(item.txt.indexOf("XXIMG;") == 0) {
                      +                item.txt="<img src=\"" + item.txt.substr(6,item.txt.length) + "\" alt=\"IMAGE\" width=" + item.w + " height=" + item.h + " >";
                      +              }  
                      +
                      +
                                   item.handle.innerHTML=item.txt;
                                 }
                               }
                      @@ -1834,6 +1906,69 @@
                             aVisuItem.txt=getXmlAttr(aRes[0],"txt");
                             aVisuItem.hasCmd=getXmlAttr(aRes[0],"hcmd");
                             aVisuItem.click=getXmlAttr(aRes[0],"click")*1;
                      +      if(aVisuItem.txt.indexOf("XXHTTP;") == 0) 
                      +      {
                      +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
                      +        XXHTTPURL = aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
                      +        // Wenn URL mit HSLIST: beginnt öffne Archiv
                      +        if(XXHTTPURL.indexOf("HSLIST:") == 0)
                      +        {
                      +          XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                      +        }
                      +        aVisuItem.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXHTTPWin=window.open('/opt/redirect.htm?" + XXHTTPURL + "','XXHTTP');\">" +aVisuItem.txt.substr(0,aVisuItem.txt.indexOf(";")) + "</div>";
                      +      }
                      +      if(aVisuItem.txt.indexOf("XXLINK;") == 0) 
                      +      {
                      +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
                      +        XXHTTPURL = aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
                      +        // Wenn URL mit HSLIST: beginnt öffne Archiv
                      +        if(XXHTTPURL.indexOf("HSLIST:") == 0)
                      +        {
                      +          XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                      +        }
                      +        aVisuItem.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXLINKURL='/opt/redirect.htm?" +XXHTTPURL + "';\">" +aVisuItem.txt.substr(0,aVisuItem.txt.indexOf(";")) + "</div>";
                      +      }
                      +      if((aVisuItem.txt.indexOf("XXKEY;") == 0) && (aVisuItem.typ == 9)){
                      +          XXKEYOBJ = aVisuItem;
                      +      }
                      +      if(aVisuItem.txt.indexOf("XXIMG;") == 0) {
                      +        aVisuItem.txt="<img src=\"" + aVisuItem.txt.substr(6,aVisuItem.txt.length) + "\" alt=\"IMAGE\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
                      +      }  
                      +      if(aVisuItem.txt.indexOf("XXHTML;") == 0) {
                      +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
                      +        aVisuItem.txt=aVisuItem.txt.replace(/\[/g, "<");
                      +        aVisuItem.txt=aVisuItem.txt.replace(/=\?/g, "=\"");
                      +        aVisuItem.txt=aVisuItem.txt.replace(/\? /g, "\" ");
                      +        aVisuItem.txt=aVisuItem.txt.replace(/\?\]/g, "\">");
                      +        aVisuItem.txt=aVisuItem.txt.replace(/\]/g, ">");
                      +      }  
                      +      if(aVisuItem.txt.indexOf("XXIFRAME;") == 0) {
                      +        aVisuItem.txt=aVisuItem.txt.substr(9,aVisuItem.txt.length);
                      +        XXIFRAMEURL=aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
                      +        if(XXIFRAMEURL == "") {
                      +          aVisuItem.txt="<iframe src=\"" + XXLINKURL + "\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
                      +        } else {
                      +          aVisuItem.txt="<iframe src=\"/opt/redirect.htm?" + XXIFRAMEURL + "\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
                      +        }
                      +      }  
                      +      if(aVisuItem.txt.indexOf("XXTRIGGER;") == 0) {
                      +        delay = parseInt(aVisuItem.txt.substr(10,aVisuItem.txt.length)) * 1000;
                      +        aVisuItem.txt="";
                      +        if(delay > 0) {
                      +          window.setTimeout("doCmd(aVisuItem)", delay);
                      +        } else {
                      +          doCmd(aVisuItem);
                      +        }
                      +      }      
                      +      
                      +      if(aVisuItem.txt.indexOf("XXINACTIV;") == 0) {
                      +        XXINACTIVDELAY = parseInt(aVisuItem.txt.substr(10,aVisuItem.txt.length)) * 1000;
                      +        aVisuItem.txt="";
                      +        XXINACTIVOBJ = aVisuItem;
                      +        XXINACTIVTIMER = window.setTimeout("doCmd(XXINACTIVOBJ)", XXINACTIVDELAY);
                      +      }
                      +
                      +
                             aItems.push(aVisuItem);
                           }
                           else if (aRes[0].substr(0,3)=="BOX")
                      @@ -2008,8 +2148,26 @@
                         // XML-Request initialisieren
                         initXmlHttp();
                         
                      +  // Grab Keys
                      +  var ua = navigator.userAgent;
                      +  if(ua.indexOf("MSIE") >=0)
                      +  {
                      +    document.getElementsByTagName("body")[0].onkeydown=baseKeyDown;
                      +  }
                      +  else
                      +  {
                      +    if (window.addEventListener)
                      +    {
                      +      window.addEventListener("keydown", baseKeyDown ,false);
                      +    }
                      +    else if (document.attachEvent)
                      +    {
                      +      document.attachEvent("onkeydown",baseKeyDown);
                      +    }
                      +  }
                         // HTML-Framework
                         base = document.getElementById("xbase");
                      +  base.onmousemove = baseMouseMove;
                         mark = document.getElementById("xmark");
                         reconnect = document.getElementById("xreconnect");  
                         reconnect.onclick = clickReconnect;
                      Nils

                      aktuelle Bausteine:
                      BusAufsicht - ServiceCheck - Pushover - HS-Insight

                      Kommentar


                        #71
                        Ich hab mal den Logikbaustein ChrToASCII von Dacom in
                        ASCIIToChr geändert und als 12231_ASCIItoChr.hsl erstellt.

                        Vielleicht kann mal einer von den Logik Profi's drüberschauen.

                        Code:
                        ###   ASCIIToChr   ###
                        #5000|"Text"|Remanent(1/0)|Anz.Eingänge|.n.|Anzahl Ausgänge|.n.|.n.
                        #5001|Anzahl Eingänge|Ausgänge|Offset|Speicher|Berechnung bei Start
                        #5002|Index Eingang|Default Wert|0=numerisch 1=alphanummerisch
                        #5003|Speicher|Initwert|Remanent
                        #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch
                        #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang
                        5000|"Wandler\ASCIIToChr"|1|1|"E1 ASCII"|1|"A1 Chr"
                        5001|1|1|0|0|0      
                        5002|1|0|0     # Eingang  1, ASCII-Code 
                        5004|1|""|0|1|1      # Ausgang 1,  Chr
                         
                        #######################  Definition der Funktion   ############################# 
                        5012|1|"EC[1]"|"chr(EN[1])"|""|1|0|0|0

                        UPDATE:
                        XXKEY;
                        läuft jetzt eigentlich ganz OK hab mir auf der Visu nur mal einen Buchstaben angeschaut. Die Geschwindigkeit ist lahm aber mindest genauso schnell wie die Bildschirmtastatur. Bis jetzt fehlt noch eine Sperre fürs zu schnelle tippen damit die Visu nicht abschmiert

                        Code:
                        --- ajax-orig.js Wed Jun 11 11:59:34 2008
                        +++ ajax.js Tue Apr 21 14:29:15 2009
                        @@ -39,6 +39,12 @@
                         hs_connected = 0;
                         isBusy=0;
                         xmlhttp = null;
                        +XXLINKURL = "";
                        +XXINACTIVDELAY = 0;
                        +XXINACTIVOBJ = null;
                        +XXINACTIVTIMER = null;
                        +XXKEYOBJ = null;
                        +XXKEYSHIFT = false;
                         
                         // Markierung
                         markImg = null
                        @@ -1065,6 +1071,64 @@
                         
                         mouseClickItem = null;
                         
                        +function baseMouseMove(_event)
                        +{
                        +  if(XXINACTIVOBJ != null) {
                        +    if(XXINACTIVTIMER != null) {
                        +      window.clearTimeout(XXINACTIVTIMER);
                        +    }
                        +    XXINACTIVTIMER = window.setTimeout("doCmd(XXINACTIVOBJ)", XXINACTIVDELAY);
                        +  }
                        +
                        +}
                        +function baseKeyDown(_event)
                        +{
                        +  if(window.event) {
                        +    keynum = window.event.keyCode;
                        +  } else {
                        +    keynum = _event.which;
                        +  }
                        +  if(keynum == 16) {
                        +    XXKEYSHIFT = true;
                        +  }
                        +  return false;
                        +
                        +}
                        +function baseKeyUp(_event)
                        +{
                        +  if(XXKEYOBJ != null) {
                        +    if(window.event) {
                        +      keynum = window.event.keyCode;
                        +    } else {
                        +      keynum = _event.which;
                        +    }
                        +    if(keynum == 16) {
                        +      XXKEYSHIFT = false;
                        +    }
                        +    if(keynum == 20) {
                        +      if(XXKEYSHIFT) {
                        +        XXKEYSHIFT = false;
                        +      } else {
                        +        XXKEYSHIFT = true;
                        +      }
                        +    }
                        +    if((keynum > 31) && (keynum < 127)) {
                        +      if((keynum >64) && (keynum <95) && (XXKEYSHIFT == false)) {
                        +          keynum = keynum + 32;
                        +      } else {
                        +        if((keynum < 65) && (XXKEYSHIFT == true)) {
                        +          keynum = keynum - 16;
                        +        }
                        +      }
                        +      var sUrl = "id=" + String(XXKEYOBJ.id) + "&val=" + String(keynum);
                        +      doSetzeWert(sUrl);
                        +    } 
                        +    
                        +    return false;
                        +  } 
                        +}
                        +
                        +
                         // Klick auf Hintergrund abfangen
                         function bgClick(_event)
                         {
                        @@ -1268,6 +1332,48 @@
                                   var item=aVisu[npos];
                                   item.txt=getXmlAttr(aRes[0],"txt");
                                   if (item.handle!=null) {
                        +              if(item.txt.indexOf("XXHTTP;") == 0) {
                        +                item.txt=item.txt.substr(7,item.txt.length);
                        +                XXHTTPURL = item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
                        +                // Wenn URL mit HSLIST: beginnt öffne Archiv
                        +                if(XXHTTPURL.indexOf("HSLIST:") == 0) {
                        +                  XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                        +                }
                        +                item.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\"onclick=\"XXHTTPWin=window.open('/opt/redirect.htm?" + XXHTTPURL + "','XXHTTP');\">" +item.txt.substr(0,item.txt.indexOf(";")) + "</div>";
                        +              } 
                        +              if(item.txt.indexOf("XXLINK;") == 0) {
                        +                item.txt=item.txt.substr(7,item.txt.length);
                        +                XXHTTPURL = item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
                        +                // Wenn URL mit HSLIST: beginnt öffne Archiv
                        +                if(XXHTTPURL.indexOf("HSLIST:") == 0) {
                        +                  XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                        +                }
                        +                item.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXLINKURL='/opt/redirect.htm?" +XXHTTPURL + "';\">" +item.txt.substr(0,item.txt.indexOf(";")) + "</div>";
                        +              }
                        +              if(item.txt.indexOf("XXIFRAME;") == 0) {
                        +                item.txt=item.txt.substr(9,item.txt.length);
                        +                XXIFRAMEURL=item.txt.substr(item.txt.indexOf(";")+1,item.txt.length);
                        +                if(XXIFRAMEURL == "") {
                        +                  item.txt="<iframe src=\"" + XXLINKURL + "\" width=" + item.w + " height=" + item.h + " >";
                        +                } else {
                        +                  item.txt="<iframe src=\"/opt/redirect.htm?" + XXIFRAMEURL + "\" width=" + item.w + " height=" + item.h + " >";
                        +                }
                        +              }
                        +              if(item.txt.indexOf("XXTRIGGER;") == 0) {
                        +                delay = parseInt(item.txt.substr(10,item.txt.length)) * 1000;
                        +                item.txt="";
                        +                if(delay > 0) {
                        +                  window.setTimeout("doCmd(item)", delay);
                        +                } else {
                        +                  doCmd(item);
                        +                }
                        +              }      
                        +            
                        +              if(item.txt.indexOf("XXIMG;") == 0) {
                        +                item.txt="<img src=\"" + item.txt.substr(6,item.txt.length) + "\" alt=\"IMAGE\" width=" + item.w + " height=" + item.h + " >";
                        +              }  
                        +
                        +
                                     item.handle.innerHTML=item.txt;
                                   }
                                 }
                        @@ -1834,6 +1940,69 @@
                               aVisuItem.txt=getXmlAttr(aRes[0],"txt");
                               aVisuItem.hasCmd=getXmlAttr(aRes[0],"hcmd");
                               aVisuItem.click=getXmlAttr(aRes[0],"click")*1;
                        +      if(aVisuItem.txt.indexOf("XXHTTP;") == 0) 
                        +      {
                        +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
                        +        XXHTTPURL = aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
                        +        // Wenn URL mit HSLIST: beginnt öffne Archiv
                        +        if(XXHTTPURL.indexOf("HSLIST:") == 0)
                        +        {
                        +          XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                        +        }
                        +        aVisuItem.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXHTTPWin=window.open('/opt/redirect.htm?" + XXHTTPURL + "','XXHTTP');\">" +aVisuItem.txt.substr(0,aVisuItem.txt.indexOf(";")) + "</div>";
                        +      }
                        +      if(aVisuItem.txt.indexOf("XXLINK;") == 0) 
                        +      {
                        +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
                        +        XXHTTPURL = aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
                        +        // Wenn URL mit HSLIST: beginnt öffne Archiv
                        +        if(XXHTTPURL.indexOf("HSLIST:") == 0)
                        +        {
                        +          XXHTTPURL = "/hslist?lst=" + XXHTTPURL.substr(7,XXHTTPURL.length) + "&user=" + loginData.user + "&pw=" + loginData.pw;
                        +        }
                        +        aVisuItem.txt="<div style=\"width: 100%;height: 100%;cursor: hand;\" onclick=\"XXLINKURL='/opt/redirect.htm?" +XXHTTPURL + "';\">" +aVisuItem.txt.substr(0,aVisuItem.txt.indexOf(";")) + "</div>";
                        +      }
                        +      if((aVisuItem.txt.indexOf("XXKEY;") == 0) && (aVisuItem.typ == 9)){
                        +          XXKEYOBJ = aVisuItem;
                        +      }
                        +      if(aVisuItem.txt.indexOf("XXIMG;") == 0) {
                        +        aVisuItem.txt="<img src=\"" + aVisuItem.txt.substr(6,aVisuItem.txt.length) + "\" alt=\"IMAGE\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
                        +      }  
                        +      if(aVisuItem.txt.indexOf("XXHTML;") == 0) {
                        +        aVisuItem.txt=aVisuItem.txt.substr(7,aVisuItem.txt.length);
                        +        aVisuItem.txt=aVisuItem.txt.replace(/\[/g, "<");
                        +        aVisuItem.txt=aVisuItem.txt.replace(/=\?/g, "=\"");
                        +        aVisuItem.txt=aVisuItem.txt.replace(/\? /g, "\" ");
                        +        aVisuItem.txt=aVisuItem.txt.replace(/\?\]/g, "\">");
                        +        aVisuItem.txt=aVisuItem.txt.replace(/\]/g, ">");
                        +      }  
                        +      if(aVisuItem.txt.indexOf("XXIFRAME;") == 0) {
                        +        aVisuItem.txt=aVisuItem.txt.substr(9,aVisuItem.txt.length);
                        +        XXIFRAMEURL=aVisuItem.txt.substr(aVisuItem.txt.indexOf(";")+1,aVisuItem.txt.length);
                        +        if(XXIFRAMEURL == "") {
                        +          aVisuItem.txt="<iframe src=\"" + XXLINKURL + "\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
                        +        } else {
                        +          aVisuItem.txt="<iframe src=\"/opt/redirect.htm?" + XXIFRAMEURL + "\" width=" + aVisuItem.w + " height=" + aVisuItem.h + " >";
                        +        }
                        +      }  
                        +      if(aVisuItem.txt.indexOf("XXTRIGGER;") == 0) {
                        +        delay = parseInt(aVisuItem.txt.substr(10,aVisuItem.txt.length)) * 1000;
                        +        aVisuItem.txt="";
                        +        if(delay > 0) {
                        +          window.setTimeout("doCmd(aVisuItem)", delay);
                        +        } else {
                        +          doCmd(aVisuItem);
                        +        }
                        +      }      
                        +      
                        +      if(aVisuItem.txt.indexOf("XXINACTIV;") == 0) {
                        +        XXINACTIVDELAY = parseInt(aVisuItem.txt.substr(10,aVisuItem.txt.length)) * 1000;
                        +        aVisuItem.txt="";
                        +        XXINACTIVOBJ = aVisuItem;
                        +        XXINACTIVTIMER = window.setTimeout("doCmd(XXINACTIVOBJ)", XXINACTIVDELAY);
                        +      }
                        +
                        +
                               aItems.push(aVisuItem);
                             }
                             else if (aRes[0].substr(0,3)=="BOX")
                        @@ -2008,8 +2182,29 @@
                           // XML-Request initialisieren
                           initXmlHttp();
                           
                        +  // Grab Keys
                        +  var ua = navigator.userAgent;
                        +  if(ua.indexOf("MSIE") >=0)
                        +  {
                        +    document.getElementsByTagName("body")[0].onkeyup=baseKeyUp;
                        +    document.getElementsByTagName("body")[0].onkeydown=baseKeyDown;
                        +  }
                        +  else
                        +  {
                        +    if (window.addEventListener)
                        +    {
                        +      window.addEventListener("keyup", baseKeyUp ,false);
                        +      window.addEventListener("keydown", baseKeyDown ,false);
                        +    }
                        +    else if (document.attachEvent)
                        +    {
                        +      document.attachEvent("onkeyup",baseKeyUp);
                        +      document.attachEvent("onkeydown",baseKeyDown);
                        +    }
                        +  }
                           // HTML-Framework
                           base = document.getElementById("xbase");
                        +  base.onmousemove = baseMouseMove;
                           mark = document.getElementById("xmark");
                           reconnect = document.getElementById("xreconnect");  
                           reconnect.onclick = clickReconnect;
                        Nils

                        aktuelle Bausteine:
                        BusAufsicht - ServiceCheck - Pushover - HS-Insight

                        Kommentar


                          #72
                          Zitat von makki Beitrag anzeigen
                          Stimmt, ~ ist zwar selten aber wohl erlaubt. ich hab mir jetzt mal die RFC3986 als morgenlektüre zurechtgelegt, brauchbare Ideen sind bei mir wohl für heute erschöpft
                          So ich hab dann auch mal bischen da drin gelesen
                          also "*" ist als reserviert gelistet kann ja auch keiner ne Datei mit dem Namen erstellen , löschen der Diesiegen geht zwar , aber nicht mit dem gewünschten Erfolg.

                          Also ich denke der * ist auch für die Linknamen nicht wirklich wichtig .
                          Nils

                          aktuelle Bausteine:
                          BusAufsicht - ServiceCheck - Pushover - HS-Insight

                          Kommentar


                            #73
                            Vielleicht gehts gleich los

                            Vielleicht gibts ja gleich schon Downloads

                            DACOM Database Computing GmbH - HomeAutomation - Bordcomputer fr Gebude
                            Nils

                            aktuelle Bausteine:
                            BusAufsicht - ServiceCheck - Pushover - HS-Insight

                            Kommentar


                              #74
                              Hallo Nils,

                              ich weiß ehrlicherweise nicht mehr so ganz, ob ich Angst wegen Deinen monentan (offensichtlich) hohen Adrenalinpegels und Tatendrangs haben muss oder die Begeisterung überwiegt .

                              Dein Entwicklerdrang ist echt phanomenal, aber ehlicherweise ist es im Moment IMHO auch ein wenig "chaotisch". Es lauft uns ja nichts weg, ware es nicht sinnvoller, wenn wir uns erst einmal (gemeinsam !) Gedanken machen würden, was wir überhaupt brauchen bzw. gerne hatten, wie wir das vielleicht strukturieren (also Namen der Tags, Trennzeichen, usw.), was welche Prioritat haben sollte (weils halt mehr brennt) und wer ggf. was macht.
                              Dann beim Programmieren vielleicht erst mal machen, eine Nacht reifen lassen, erneut drüberschauen, jemand anderen drüber schauen lassen und dann hier zur Diskussion stellen. Dann wird es automatisch ausgereifter und man muss nicht öffentlich nachbessern oder der Early-Bird gar wieder "patchen". Ich habe z.B. schon aufgegeben, Deine immer neuen Erweiterungen nachzuvollziehen.


                              Ich will Dich bestimmt nicht abwürgen, aber das Vorgehen wie oben beschrieben ware meiner Meinung nach sinnvoller, sonst bleibt es wieder nur ein "Spezi-Kram" und nur die Wenigsten werden folgen. Und eine Dokumentation (zumindest eine verfünftige Liste aller Befehle mit Optionen) sollte absolute Pflicht sein.

                              Nicht falsch verstehen oder argern, aber ich hoffe, so entwickelt Ihr sonst keine Software ...


                              Gruß
                              Hartmut

                              Kommentar


                                #75
                                Zitat von HartmutB Beitrag anzeigen
                                Es läuft uns ja nichts weg, wäre es nicht sinnvoller, wenn wir uns erst einmal (gemeinsam !) Gedanken machen würden, was wir überhaupt brauchen bzw. gerne hätten, wie wir das vielleicht strukturieren (also Namen der Tags, Trennzeichen, usw.), was welche Priorität haben sollte (weils halt mehr brennt) und wer ggf. was macht.
                                Ich weiß ja nicht wie das mit deiner Zeit ist aber ich hab da nur jetzt ein bisschen Luft.

                                Ich habe zu diesen Zweck "Gedanken machen" diesen Thread vor 4 Monaten eröffnet und es ist nicht viel gekommen, oder??

                                Auch zu Trennzeichen ist keine große Beteiligung zu spüren gewesen ausser von makki.

                                wer was mach ?? was fällt dir denn jetzt noch ein was dir fehlt??

                                Dann beim Programmieren vielleicht erst mal machen, eine Nacht reifen lassen, erneut drüberschauen, jemand anderen drüber schauen lassen und dann hier zur Diskussion stellen. Dann wird es automatisch ausgereifter und man muss nicht öffentlich nachbessern oder der Early-Bird gar wieder "patchen". Ich habe z.B. schon aufgegeben, Deine immer neuen Erweiterungen nachzuvollziehen.
                                Ich habe das, da ja keine Beteiligung kam, für mich gemacht und nur die anderen daran teilhaben lassen.



                                Ich will Dich bestimmt nicht abwürgen, aber das Vorgehen wie oben beschrieben wäre meiner Meinung nach sinnvoller, sonst bleibt es wieder nur ein "Spezi-Kram" und nur die Wenigsten werden folgen. Und eine Dokumentation (zumindest eine verfünftige Liste aller Befehle mit Optionen) sollte absolute Pflicht sein.
                                Ich sagte ja das "DAS" für mich gemacht habe. Wenn DU dazu Lust hast,
                                kannst Du ja ne Doku schreiben (ich habe übrigens bereits eine mit mini Doku hier aus dem Thread. Aber auch das nur zum Spass)

                                Nicht falsch verstehen oder ärgern, aber ich hoffe, so entwickelt Ihr sonst keine Software ...
                                Ich entwickel sonst keine Software, ausserdem ist das hier keine Software sondern allenfalls ein HACK. Software kann von Dacom kommen, die da Cash für kiregen. Ich hab nur die Sachen nachgerüstet die ICH und Andere brauchten. Nach dem Motto "..kannst du mal kurz..."

                                auch nicht falsch verstehen aber wenn erst solche Fragen kommen wenns eigentlich fertig ist, dann kann man es sich auch sparen
                                Nils

                                aktuelle Bausteine:
                                BusAufsicht - ServiceCheck - Pushover - HS-Insight

                                Kommentar

                                Lädt...
                                X