Ankündigung

Einklappen
Keine Ankündigung bisher.

custom.js

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

  • [HS/FS] custom.js

    NilsS

    Hi Nils,

    möchte XXSLIDER überschreiben.

    Kopiere aus "xxapi2.js" gesamten Eintrag von

    xxAPI.functions.XXSLIDER2 = function ( oarg ) {
    ...
    }

    nach custom.js. ändere XXSLIDER auf XXSLIDER2.

    Ohne sonst etwas zu verändern, wollte ich nur testen ob ich den Slider mit "XXSLIDER2*" aufrufen kann.

    Aber schon da scheitere ich. Es passiert nichts.

    Tu jetzt schon längere Zeit mit diesem Problem herum. Finde aber nicht den Fehler.

    Kannst Du mir auf die Sprünge helfen ? Was mache ich falsch ?

    Hans
    Zuletzt geändert von TirochH; 27.03.2017, 11:49.
    Hans

  • #2
    Hans,

    Did you put XXSLIDER2 on the API-init page ?
    init page.png


    Like this

    The copy and paste and change XXSLIDER to XXSLIDER2 should work!
    sample.png

    disregard the two handels (xxslider2), using one it is the same

    Grusse,

    Gerwin
    Zuletzt geändert von TBBW; 18.03.2017, 22:36.

    Kommentar


    • #3
      Zitat von TBBW Beitrag anzeigen
      Hans,

      Did you put XXSLIDER2 on the API-init page ?
      ...
      Grusse,

      Gerwin
      Very interesting, your Input "XXSLIDER2*" in xxAPI-INIT. Thats new for me. My other XX... Extensions work without this entry.

      Is it only a text-field with "XXSLIDER2*" ?

      HANS
      Hans

      Kommentar


      • #4
        Yes,

        that is strange, has you have to define the scope of the procedure.

        grusse,

        gerwin
        Zuletzt geändert von TBBW; 19.03.2017, 23:23.

        Kommentar


        • #5
          Moin zusammen,

          das machst so nicht wirklich Sinn. Wichtig wäre die Information ob in Debuglevel 4 die Info kommt XXSLIDER no item info. Oder habt ihr vergessen diesen Teil bei der XXSLIDER2 zu übernehmen.

          Wir laden ja die Infos wie Max/Min Werte etc. aus den Eingaben der Werteingabe. Diese muss natürlich einmalig geladen werden. Das könnte erklären warum es funktioniert wenn es auf der INIT Seite eingetragen ist.

          Aber mit welcher hinterlegten Werteingabe ist es auf der INIT-Seite?
          Nils
          xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

          Kommentar


          • #6
            Zitat von NilsS Beitrag anzeigen
            Moin zusammen,

            das machst so nicht wirklich Sinn. Wichtig wäre die Information ob in Debuglevel 4 die Info kommt XXSLIDER no item info. Oder habt ihr vergessen diesen Teil bei der XXSLIDER2 zu übernehmen.

            Wir laden ja die Infos wie Max/Min Werte etc. aus den Eingaben der Werteingabe. Diese muss natürlich einmalig geladen werden. Das könnte erklären warum es funktioniert wenn es auf der INIT Seite eingetragen ist.

            Aber mit welcher hinterlegten Werteingabe ist es auf der INIT-Seite?
            HI Nils,

            hier ist der JS-Code (von Dir kopiert)

            Code:
            xxAPI.functions.XXSLIDER2 = function ( oarg ) {
                debug(2,"XXSLIDER2",oarg);
                if(oarg.item.action_id != 9) {
                    debug(1,"XXSLIDER2 needs Action 'Werteingabe'",oarg);
                    return;
                }
                oarg.item.text = "";
                // [xxx, yyy] -->args[1] = yyyxxx
                var _value = [Number(oarg.args[1])%1000, Math.round(Number(oarg.args[1])*0.001)] || [0, 100];
                if(oarg.item.xxapi.hasOwnProperty("slider2")) {
                    oarg.item.xxapi.slider2.val(_value);
                } else {
                    oarg.item.click = false;
                    oarg.item.customcss = {
                        "background-color"  : "transparent",
                        "pointer-events"    : "auto",
                        "overflow"          : "initial"
                    }
                }
                if($.isEmptyObject(oarg.item.info)) {
                    debug(4,"XXSLIDER2 no item info " + oarg.item.uid,oarg);
                    oarg.item.item_callback = function() {
                        oarg.iscallback = true;
                        xxAPI.functions.XXSLIDER2( oarg );
                    }
                    return;
                }
            
                if(!oarg.item.xxapi.hasOwnProperty("slider2")) {
                    var _orientation = oarg.item.width > oarg.item.height ? "horizontal" : "vertical";
                    var _range = Math.abs(oarg.item.info._min - oarg.item.info._max);
                    var _size = Math.max(oarg.item.width, oarg.item.height);
                    var _numsteps = _size / hs.options.sliderstep_px;
                    oarg.item.xxapi.slider_step = hs.functions.math_round(_range / _numsteps,oarg.item.info._prec) || 1;
                    debug(4,"XXSLIDER2: set step to " + oarg.item.xxapi.slider_step,oarg);
                    oarg.item.xxapi.slider2_options = {
                        "start"     : _value,
                        "class"     : "",
                        "connect"   : [false, true, false],
                        "extended"  : true,
                        "orientation"   : _orientation,
                        "direction"     : _orientation == "horizontal" ? "ltr" : "rtl",
                        "step"          : oarg.item.xxapi.slider_step || 1,
                        "range"         : {
                            "min"   : oarg.item.info._min || 0,
                            "max"   : Math.round(oarg.item.info._max*0.001) || 100 //max = yyyxxx
                        }
                    };
                    var _text2 = oarg.item.info._txt2 || "";
                    if(_text2.match(/^XXOPTIONS\*/)) {
                        oarg.item.xxapi.slider2_options = $.extend(oarg.item.xxapi.slider2_options, hs.functions.option_parser(_text2.substring(10),oarg.item.xxapi.slider2_options));
                    }
                    if(oarg.item.xxapi.slider2_options.temp) {
                        oarg.item.xxapi.temp = $.extend({
                            "low"   : 2,
                            "high"  : 28,
                        },oarg.item.xxapi.slider2_options.temp);
                        delete oarg.item.xxapi.slider2_options.temp;
                    }
                    oarg.item.xxapi.slider2 = $("<div />",{
                        "class" : oarg.item.xxapi.slider2_options.class + " " + (oarg.item.xxapi.slider2_options.extended ? "noUi-extended" : ""),
                        "css"   : {
                            "width"   : _orientation == "horizontal" ? "100%" : "",
                            "height"  : _orientation == "vertical" ? "100%" : ""
                        }
                    });
                    oarg.item.xxapi.slider2.noUiSlider(oarg.item.xxapi.slider2_options);
                    if(oarg.item.xxapi.slider2_options.disabled) {
                        oarg.item.xxapi.slider2.attr("disabled","disabled");
                    }
                    if(oarg.item.xxapi.slider2_options.hasOwnProperty("handle")) {
                        if(!oarg.item.xxapi.slider2_options.handle) {
                            oarg.item.xxapi.slider2.find(".noUi-handle").css("display","none");
                        } else {
                            oarg.item.xxapi.slider2.find(".noUi-handle").addClass(oarg.item.xxapi.slider2_options.handle);
                        }
                    }
                    oarg.item.xxapi.slider2.on("change",function() {
                        oarg.item.value = oarg.item.info._val = (oarg.item.xxapi.slider2.val()[0]+oarg.item.xxapi.slider2.val()[1]*1000);
                        hs.functions.do_valset( oarg );
                    });
                }
                if(oarg.iscallback) {
                    oarg.item.object.html(oarg.item.xxapi.slider2);
                } else {
                    oarg.item.html = oarg.item.xxapi.slider2;
                }
                if(oarg.item.xxapi.temp) {
                    oarg.item.color = hs.functions.temp2rgb(oarg.item.xxapi.temp.low ,oarg.item.xxapi.temp.high, _value);
                }
                if(oarg.item.object) {
                    oarg.item.object.find(".noUi-connect").css("background-color",oarg.item.color);
                    oarg.item.object.find(".noUi-background").css("background-color",oarg.item.bg_color);
                } else {
                    setTimeout(function() {
                        oarg.item.object.find(".noUi-connect").css("background-color",oarg.item.color);
                        oarg.item.object.find(".noUi-background").css("background-color",oarg.item.bg_color);
                    },0);
                }
            }
            Hans
            Hans

            Kommentar


            • #7
              Zitat von TirochH Beitrag anzeigen

              Hans
              Die Frage ist, warum wird die oarg.item.info nicht bei custom.js übernommen ?

              Ich mache alles so wie DU in xxapi2.js. Auch die Aufrufe vom Experten.

              Habe probeweise statt dem oberen adaptierten Code auch den identischen JS-Code kopiert und nur XXSLIDER in XXSLIDER2 (2x) umbenannt.

              Es kommt beim Original folgendes (richtig):

              fullsizeoutput_b8e.jpeg

              bei der custom.js Version:

              fullsizeoutput_b8f.jpeg


              Hans

              Hans

              Kommentar


              • #8
                kannst du mal im Browser F12 (Konsole) und dort
                > xxAPI.functions.XXSLIDER2
                eintippen und gucken was passiert
                Nils
                xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

                Kommentar


                • #9
                  undefined ??????

                  Hans
                  Hans

                  Kommentar


                  • #10
                    es sieht aus als würde deine custom.js also nicht aktuell geladen.

                    kannst du die Seite mal im Browser Inkognito-Fenster öffnen.

                    Nils
                    xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

                    Kommentar


                    • #11
                      Zitat von NilsS Beitrag anzeigen
                      es sieht aus als würde deine custom.js also nicht aktuell geladen.

                      kannst du die Seite mal im Browser Inkognito-Fenster öffnen.
                      jetzt kommt was

                      Code:
                      function ( oarg ) {
                          debug(2,"XXSLIDER2",oarg);
                          if(oarg.item.action_id != 9) {
                              debug(1,"XXSLIDER2 needs Action 'Werteingabe'",oarg);
                              return;
                          }
                          oarg.item.text = "";
                          /…
                      auch das PopUp aber ohne Slider

                      hans
                      Hans

                      Kommentar


                      • #12
                        Zitat von TirochH Beitrag anzeigen

                        jetzt kommt was

                        .....
                        hans
                        zusätzlich eine Bildschirm-Kopie

                        Hans

                        Bildschirmfoto 2017-03-20 um 12.15.08.png

                        Habe cache geleert.
                        Hans

                        Kommentar


                        • #13
                          was mir so direkt auffällt ist das oarg.item.info du hast max auf 1000100 gesetzt und rechnest da zwar beim slider max was um, aber nicht bei der _range für die Berechnung von _size.

                          rechne mal direkt var _max = oarg.item.info._max*0.001) und verwende _max innerhalb des if(!oarg.item.xxapi.hasOwnProperty("slider2")) {
                          Nils
                          xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

                          Kommentar


                          • #14
                            Hi Hans, Rename all the slider2 calls to slider !! Grusse,

                            Code:
                            oarg.item.xxapi.slider2_options = {
                                        "start"     : _value,
                                        "class"     : "",
                                        "connect"   : [false, true, false],
                                        "extended"  : true,
                                        "orientation"   : _orientation,
                                        "direction"     : _orientation == "horizontal" ? "ltr" : "rtl",
                                        "step"          : oarg.item.xxapi.slider_step || 1,
                                        "range"         : {
                                            "min"   : oarg.item.info._min || 0,
                                            "max"   : Math.round(oarg.item.info._max*0.001) || 100 //max = yyyxxx
                            slider is a local var no need to change it to slider2
                            Zuletzt geändert von TBBW; 20.03.2017, 12:58.

                            Kommentar


                            • #15
                              Zitat von NilsS Beitrag anzeigen
                              was mir so direkt auffällt ist das oarg.item.info du hast max auf 1000100 gesetzt und rechnest da zwar beim slider max was um, aber nicht bei der _range für die Berechnung von _size.

                              rechne mal direkt var _max = oarg.item.info._max*0.001) und verwende _max innerhalb des if(!oarg.item.xxapi.hasOwnProperty("slider2")) {
                              ja, das war es. Bin auch beim Debugger darauf gestoßen.

                              Danke
                              Hans

                              Kommentar

                              Lädt...
                              X