MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord
    MagicMirror² v2.20.0 is available! For more information about this release, check out this topic.

    MMM-Remote-Control # More files *.html (pages)

    Development
    2
    6
    493
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Ciastuus last edited by

      Hi,

      I have a small problem because I can’t load more links in the form * .html to the MMM-Remote-Control module. When I try to do my own thing, only the same page loads, and by going manually to others, the same page still loads, and the name in the address bar changes.

      alt text

      This is what it looks like when trying to load the narzedzia.html page.
      (narzedzia - tools)
      It actually loads the lustro.html page
      (lustro - mirror)

      I did this:

          getDom: function() {
              var wrapper = document.createElement("div");
              if (this.addresses.length === 0) {
                  this.addresses = ["ip-of-your-mirror"];
              }
              wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/index.html";
              wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/lustro.html";
              wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/narzedzia.html";
              wrapper.className = "normal xsmall";
              return wrapper;
          },
      
                  this.expressApp.get("/index.html", function(req, res) {
                      if (self.template === "") {
                          res.send(503);
                      } else {
                          res.contentType("text/html");
                          var transformedData = self.fillTemplates(self.template);
                          res.send(transformedData);
                      }
                  });
       
                  this.expressApp.get("/lustro.html", function(req, res) {
                      if (self.template === "") {
                          res.send(503);
                      } else {
                          res.contentType("text/html");
                          var transformedData = self.fillTemplates(self.template);
                          res.send(transformedData);
                      }
                  });
       
                  this.expressApp.get("/narzedzia.html", function(req, res) {
                      if (self.template === "") {
                          res.send(503);
                      } else {
                          res.contentType("text/html");
                          var transformedData = self.fillTemplates(self.template);
                          res.send(transformedData);
                      }
                  });
      
                  fs.readFile(path.resolve(__dirname + "/index.html"), function(err, data) {
                      self.template = data.toString();
                  });
       
                  fs.readFile(path.resolve(__dirname + "/lustro.html"), function(err, data) {
                      self.template = data.toString();
                  });
       
                  fs.readFile(path.resolve(__dirname + "/narzedzia.html"), function(err, data) {
                      self.template = data.toString();
                  });
      

      Unfortunately, I would like it to work properly as I would like. If someone can solve my problem, I can send something to paypal $$$.

      Thank you in advance for explaining how to do it correctly.

      S 1 Reply Last reply Reply Quote 0
      • S
        sdetweil @Ciastuus last edited by sdetweil

        @Ciastuus said in MMM-Remote-Control # More files *.html (pages):

            wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/index.html";
            wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/lustro.html";
            wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/narzedzia.html";
        

        1st… the html is not processed until you return the whole html block to mm…

        return wrapper;

        second, you set innerHtml

            wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/index.html";
        

        then overwrote it

            wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/lustro.html";
        

        then overwrote it.

            wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/narzedzia.html";
        

        and then returned the html content

                return wrapper;
        

        only the last

            wrapper.innerHTML =
        

        should work

        Sam

        Create a working config
        How to add modules

        C 1 Reply Last reply Reply Quote 1
        • C
          Ciastuus @sdetweil last edited by

          @sdetweil

          So … After each wrapper.innerHTML I have to add

          return wrapper;
          

          e.g:

          wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/index.html";
          return wrapper;
          wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/lustro.html";
          return wrapper;
          wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/narzedzia.html";
          

          Is that way?

          wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/index.html";
          wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/lustro.html";
          wrapper.innerHTML = "http://" + this.addresses[0] + ":8080/narzedzia.html";
          return wrapper;
          
          S 1 Reply Last reply Reply Quote 0
          • S
            sdetweil @Ciastuus last edited by

            @Ciastuus

            no… you can only have ONE innerHtml per return…

            last one u did wins…

            if u need more info in the html, you will need to add multiple elements with the additional html…

            if u did this manually, created a page to display ALL the html, what would it look like?
            what you do in MagicMirror is exactly the same

            Sam

            Create a working config
            How to add modules

            C 1 Reply Last reply Reply Quote 1
            • C
              Ciastuus @sdetweil last edited by

              @sdetweil

              Can you explain it to me with any example? I don’t understand JavaScript very well … Maybe you can give discord on priv?

              S 1 Reply Last reply Reply Quote 0
              • S
                sdetweil @Ciastuus last edited by sdetweil

                @Ciastuus many html elements (p, div, span, … ) have an innerHtml attribute that will wrap text or raw html.

                a web page is made up of hundreds of html elements…

                the MagicMirror model is a single web page… and each module contributes a little bit of that content.

                the getDom() routine is MagicMirrors request to the module to supply the html for ITS content. (paragraph, table, … whatever)…

                BUT, until the getDom() routine returns, the stuff built is just in the modules memory space.

                the content provided to MagicMirror is then inserted into the dom in the appropriate location based on the ‘position’ you provided in config.js.

                the content can be built lots of different ways…

                hard coded html text (just like a html file)
                some hard coded and some built by building the little dom tree for the modules content
                or all apis…

                none of this is MagicMirror specific, as it uses the documented Document Object Model (dom) apis defined my the w3c standards.

                your module’s content starts with a

                 < div>
                     innerHtml is here
                 < /div>
                

                and then u set its div.innerHtml, or call div.appendChild(anotherElement)

                Sam

                Create a working config
                How to add modules

                1 Reply Last reply Reply Quote 1
                • 1 / 1
                • First post
                  Last post
                Enjoying MagicMirror? Please consider a donation!
                MagicMirror created by Michael Teeuw.
                Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                This forum is using NodeBB as its core | Contributors
                Contact | Privacy Policy