• 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.

MMM-MealViewer

Scheduled Pinned Locked Moved Development
48 Posts 6 Posters 24.7k Views 6 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.
  • C Offline
    cowboysdude Module Developer
    last edited by Feb 17, 2019, 3:19 AM

    0_1550373561202_ce2edd1dff108fb3e574a62c4ab35f39.jpg

    1 Reply Last reply Reply Quote 0
    • K Offline
      kazanjig
      last edited by Feb 17, 2019, 4:19 PM

      .@cowboysdude was exceptionally helpful last night.
      thumbs up

      1 Reply Last reply Reply Quote 1
      • S Offline
        sdetweil
        last edited by Feb 17, 2019, 4:32 PM

        Behave boys! Lol

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        C 1 Reply Last reply Feb 17, 2019, 4:45 PM Reply Quote 1
        • C Offline
          cowboysdude Module Developer @sdetweil
          last edited by Feb 17, 2019, 4:45 PM

          @sdetweil said in MMM-MealViewer:

          Behave boys! Lol

          @sdetweil said in MMM-MealViewer:

          Behave boys! Lol

          We try VERY hard LOL

          1 Reply Last reply Reply Quote 0
          • K Offline
            kazanjig
            last edited by kazanjig Feb 17, 2019, 7:02 PM Feb 17, 2019, 5:59 PM

            But now I seem to have gotten myself into a pickle. I tried expanding the functionality to add a date range and multiple schools and, of course, I broke it. It’s doing the same thing as before where the ‘cafeteriaLineList’ property is stripped out of the helper results…

            EDIT:
            LOL, it’s the weekend and I had it pulling just for today, Sunday. Of course there’s no data. Dumb da dumb dumb…

            1 Reply Last reply Reply Quote 0
            • C Offline
              cowboysdude Module Developer
              last edited by Feb 17, 2019, 6:01 PM

              @kazanjig said in MMM-MealViewer:

              cafeteriaLineList

              Probably not stripped out just buried like many of the other things were LOL If you don’t get it we can look at it later if you want.

              S K 2 Replies Last reply Feb 17, 2019, 6:16 PM Reply Quote 0
              • S Offline
                sdetweil @cowboysdude
                last edited by Feb 17, 2019, 6:16 PM

                @cowboysdude you did convert the XML to json, right?

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                C 1 Reply Last reply Feb 17, 2019, 6:24 PM Reply Quote 0
                • C Offline
                  cowboysdude Module Developer @sdetweil
                  last edited by Feb 17, 2019, 6:24 PM

                  @sdetweil Yes I did … it’s all coming back as json but it has a TON of data…

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    kazanjig @cowboysdude
                    last edited by kazanjig Feb 17, 2019, 8:06 PM Feb 17, 2019, 7:24 PM

                    MAJOR EDIT, MAJOR DUMMIE: helps if you append the rows to the table… Success! Now for some CSS.

                    @cowboysdude I edited my earlier post… minor detail about it being the weekend and not being able to pull lunch data for a day with no school. Now just having getting the data to show up in the table…

                    It will display the “loading” message, but then it’s blank when this.loaded = true. I outputted the innerHTML values to console and they’re all there. Not sure why they won’t show up in the DOM.

                      getDom: function() {
                        // Set up the local wrapper
                        var wrapper = null;
                    
                        // If we have some data to display then build the results table
                        if (this.loaded) {
                          wrapper = document.createElement("table");
                    
                          // Iterate through the schools
                          for (var i = 0; i < this.results.length; i++) {
                    
                            // Set up header row with the school name
                            schoolRow = document.createElement("tr");
                    
                            schoolName = document.createElement("td");
                            schoolName.innerHTML = this.results[i].physicalLocation.name;
                    
                            schoolRow.appendChild(schoolName);
                    
                            // Iterate through the cafeteria lines for the school
                            for (var j = 0; j < this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data.length; j++) {
                    
                              // Set up header row with the cafeteria line name
                              cafeteriaLineRow = document.createElement("tr");
                    
                              cafeteriaLineName = document.createElement("td");
                              cafeteriaLineName.innerHTML = this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].name;
                    
                              cafeteriaLineRow.appendChild(cafeteriaLineName);
                    
                              // Iterate through the menu items for the cafeteria line
                              for (var k = 0; k < this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data.length; k++) {
                    
                                foodItemRow = document.createElement("tr");
                    
                                foodItemType = document.createElement("td");
                                foodItemType.innerHTML = this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data[k].item_Type;
                    
                                foodItemName = document.createElement("td");
                                foodItemName.innerHTML = this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data[k].item_Name;
                    
                                foodItemRow.appendChild(foodItemType);
                                foodItemRow.appendChild(foodItemName);
                              }
                            }
                          }
                        }
                    
                        else {
                          // Otherwise lets just use a simple div
                          wrapper = document.createElement('div');
                          wrapper.innerHTML = 'Loading menu data...';
                        }
                    
                        return wrapper;
                      },
                    
                    1 Reply Last reply Reply Quote 0
                    • K Offline
                      kazanjig
                      last edited by Feb 17, 2019, 9:10 PM

                      So I now get the following table:

                      Elementary Lunch
                      Entree “Bold” Cheese Pizza
                      Entree “Bold” Pepperoni Pizza
                      Vegetable Parmesan Butternut Gratin
                      Vegetable Seasoned Green Beans
                      Elementary Alternative
                      Entree Chef Salad
                      Entree Bologna & Cheese Sandwich

                      The foodItemType in the first column and the foodItemName in the second column are siblings in the data array.

                      I’d like turn the first occurrence of foodItemType into a category so the table looks like this (ignore the spacing hyphens):

                      Elementary Lunch
                      Entree “Bold” Cheese Pizza
                      --------------“Bold” Pepperoni Pizza
                      Vegetable Parmesan Butternut Gratin
                      -------------------Seasoned Green Beans
                      Elementary Alternative
                      Entree Chef Salad
                      -------------Bologna & Cheese Sandwich

                      Here’s the current loop that creates the table. Any help would be appreciated.

                              // Iterate through the cafeteria lines for the school
                              for (var j = 0; j < this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data.length; j++) {
                      
                                if (this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].name !== 'Elmwood Vegetarian Hot Entree') {
                      
                                  // Set up header row with the cafeteria line name
                                  cafeteriaLineRow = document.createElement("tr");
                      
                                  cafeteriaLineName = document.createElement("td");
                                  cafeteriaLineName.innerHTML = this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].name.replace("Elmwood Elementary", "Elementary Lunch").replace("Elmwood Alternative", "Elementary Alternative");
                                  cafeteriaLineRow.appendChild(cafeteriaLineName);
                                  wrapper.appendChild(cafeteriaLineRow);
                      
                                  // Iterate through the menu items for the cafeteria line
                                  for (var k = 0; k < this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data.length; k++) {
                      
                                    if (this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data[k].item_Name !== 'Choice Of:') {
                      
                                      foodItemTypeRow = documen t.createElement("tr");
                      
                                      foodItemType = document.createElement("td");
                                      foodItemType.innerHTML = this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data[k].item_Type;
                      
                                      foodItemName = document.createElement("td");
                                      foodItemName.innerHTML = this.results[i].menuSchedules[0].menuBlocks[0].cafeteriaLineList.data[j].foodItemList.data[k].item_Name;
                      
                                      foodItemTypeRow.appendChild(foodItemType);
                                      wrapper.appendChild(foodItemTypeRow);
                                      foodItemTypeRow.appendChild(foodItemName);
                                      wrapper.appendChild(foodItemTypeRow);
                                    }
                                  }
                                }
                              }
                      
                      G 1 Reply Last reply Aug 25, 2019, 5:46 PM Reply Quote 1
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 1 / 5
                      1 / 5
                      • First post
                        10/48
                        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