• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

This might be a daft question, but...

Scheduled Pinned Locked Moved Development
27 Posts 6 Posters 16.6k Views 5 Watching
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.
  • M Offline
    Mitchfarino Module Developer
    last edited by Sep 8, 2016, 7:15 PM

    Sorry, again

    Which of these projects would be the correct one?!

    0_1473362107099_node.PNG

    A 1 Reply Last reply Sep 8, 2016, 9:13 PM Reply Quote 0
    • A Offline
      alexyak @Mitchfarino
      last edited by Sep 8, 2016, 9:13 PM

      @Mitchfarino Sorry, I’ve not tried this yet myself, but have you tried to use this option that you have selected: “From Existing Node.js code”?

      M 1 Reply Last reply Sep 8, 2016, 9:34 PM Reply Quote 0
      • M Offline
        Mitchfarino Module Developer @alexyak
        last edited by Sep 8, 2016, 9:34 PM

        @alexyak Sorted, I tried that and imported an existing module

        Now I just to figure out what I’m doing now! :)

        1 Reply Last reply Reply Quote 0
        • M Offline
          Mitchfarino Module Developer
          last edited by Mitchfarino Sep 8, 2016, 10:25 PM Sep 8, 2016, 10:24 PM

          OK, I’m up and running, but I’m not sure how to parse my JSON result in to html.

          I have this, but don’t know whether it’s correct

          I just want to see if I can list the names from the results of my GET request

          getDom: function () {
              var wrapper = document.createElement("div");
          
              $.getJSON(this.url,
                  function (data) {
                      var tr;
                      for (var i = 0; i < data.length; i++) {
                          tr = $('<tr/>');
                          tr.append("<td>" + data[i].name + "</td>");
          
                          $('table').append(tr);
                      }
                      wrapper.append("<td>" + data[i].name + "</td>");
                  });
              return wrapper;
          

          I’d like to note, this is all completely new to me, so I’m trying to learn as I go…

          S 1 Reply Last reply Sep 8, 2016, 10:37 PM Reply Quote 0
          • M Offline
            Mitchfarino Module Developer
            last edited by Sep 8, 2016, 10:34 PM

            @strawberry-3-141 I saw you were online, so I’m shamelessly tagging you in my post in the hopes of some guidance :-(

            1 Reply Last reply Reply Quote 0
            • S Offline
              strawberry 3.141 Project Sponsor Module Developer @Mitchfarino
              last edited by Sep 8, 2016, 10:37 PM

              @Mitchfarino

              getDom: function () {
                  var wrapper = document.createElement("div");
                  var table = document.createElement("table");
              
                  $.getJSON(this.url,
                      function (data) {
                          for (var i = 0; i < data.length; i++) {
                              var row = document.createElement("tr");
                              var name = document.createElement("td");
                              name.innerHTML = data[i].name;
                              row.appendChild(name);
                              table.appendChild(row);
                          }
                          wrapper.appendChild(table);
                          return wrapper;
                      });
              

              but I’m pretty sure that this will not work, because the return is in an asynchronous callback, i would do a different structure call your url in an interval somewhere else and save your data into an module variable and call the updateDom function after a result, then in getDom you iterate over the data.

              Please create a github issue if you need help, so I can keep track

              M 1 Reply Last reply Sep 8, 2016, 10:46 PM Reply Quote 0
              • M Offline
                Mitchfarino Module Developer @strawberry 3.141
                last edited by Sep 8, 2016, 10:46 PM

                @strawberry-3.141 Thanks very much, I’ll have a play with it over the weekend and hopefully I get can something working

                I’ve not done anything like this before really, so just jumping in and seeing what happens :-)

                S 1 Reply Last reply Sep 8, 2016, 10:49 PM Reply Quote 0
                • S Offline
                  strawberry 3.141 Project Sponsor Module Developer @Mitchfarino
                  last edited by Sep 8, 2016, 10:49 PM

                  @Mitchfarino

                  url: "", //Insert your url here
                  result: false,
                  
                  defaults: {
                      updateInterval: 30 * 60 * 1000 //Every 30 mins
                  },
                  
                  start: function(){
                      this.getData();
                      setInterval(()=>{
                          this.getData();
                      }, this.config.updateInterval);
                  },
                  
                  getDom: function() {
                      var wrapper = document.createElement("div");
                      if(this.result){
                          var table = document.createElement("table");
                          for (var i = 0; i < this.result.length; i++) {
                              var row = document.createElement("tr");
                              var name = document.createElement("td");
                              name.innerHTML = this.result[i].name;
                              row.appendChild(name);
                              table.appendChild(row);
                          }
                          wrapper.appendChild(table);
                      } else {
                          wrapper.innerHTML = "No data to show!";
                      }
                      return wrapper;
                  },
                  
                  getData: function(){
                      $.getJSON(this.url, (data) => {
                          this.result = data;
                          this.updateDom();
                      });
                  }
                  

                  Please create a github issue if you need help, so I can keep track

                  M 1 Reply Last reply Sep 8, 2016, 11:14 PM Reply Quote 1
                  • M Offline
                    Mitchfarino Module Developer @strawberry 3.141
                    last edited by Sep 8, 2016, 11:14 PM

                    @strawberry-3.141 Thanks for this, I’ll see if I can get it working

                    M 1 Reply Last reply Sep 11, 2016, 9:03 PM Reply Quote 0
                    • M Offline
                      Mitchfarino Module Developer @Mitchfarino
                      last edited by Sep 11, 2016, 9:03 PM

                      @strawberry-3-141 once I’ve got some code, how do I test it on my mirror?

                      Just copy the folder to the modules folder and add it to the config, or is there something else I need to do?

                      Thanks

                      P 1 Reply Last reply Sep 11, 2016, 9:17 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 2 / 3
                      2 / 3
                      • First post
                        18/27
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy