Advertisement
jarekmor

table_html

Mar 21st, 2023
1,040
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.69 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Plant Data Table</title>
  5.     <style>
  6.         table {
  7.             border-collapse: collapse;
  8.             width: 100%;
  9.             margin: auto;
  10.         }
  11.  
  12.         th, td {
  13.             padding: 8px;
  14.             text-align: left;
  15.             border-bottom: 1px solid #ddd;
  16.         }
  17.  
  18.         th {
  19.             background-color: #f2f2f2;
  20.         }
  21.  
  22.         .dot {
  23.             height: 10px;
  24.             width: 10px;
  25.             border-radius: 50%;
  26.             display: inline-block;
  27.             margin-right: 5px;
  28.         }
  29.  
  30.         .gray {
  31.             background-color: gray;
  32.         }
  33.  
  34.         .green {
  35.             background-color: green;
  36.         }
  37.  
  38.         .yellow {
  39.             background-color: yellow;
  40.         }
  41.  
  42.         .orange {
  43.             background-color: orange;
  44.         }
  45.  
  46.         .red {
  47.             background-color: red;
  48.         }
  49.     </style>
  50. </head>
  51. <body>
  52.     <table>
  53.         <thead>
  54.             <tr>
  55.                 <th>Plant Name</th>
  56.                 <th>Today</th>
  57.                 <th>Night</th>
  58.                 <th>Tomorrow</th>
  59.             </tr>
  60.         </thead>
  61.         <tbody id="plant-table-body">
  62.         </tbody>
  63.         <tfoot>
  64.             <tr>
  65.                 <td colspan="4" style="text-align: right;">Date: <span id="current-date"></span></td>
  66.             </tr>
  67.         </tfoot>
  68.     </table>
  69.  
  70.     <script>
  71.         Promise.all([
  72.             fetch('pylenie_today.json').then(response => response.json()),
  73.             fetch('pylenie_night.json').then(response => response.json()),
  74.             fetch('pylenie_tomorrow.json').then(response => response.json())
  75.         ]).then(([plantDataToday, plantDataNight, plantDataTomorrow]) => {
  76.             const plantTableBody = document.getElementById("plant-table-body");
  77.  
  78.             for (const plantName in plantDataToday) {
  79.                 const todayValue = plantDataToday[plantName];
  80.                 const nightValue = plantDataNight[plantName] || 0;
  81.                 const tomorrowValue = plantDataTomorrow[plantName] || 0;
  82.  
  83.                 const row = document.createElement("tr");
  84.                 const nameCell = document.createElement("td");
  85.                 const todayValueCell = document.createElement("td");
  86.                 const nightValueCell = document.createElement("td");
  87.                 const tomorrowValueCell = document.createElement("td");
  88.  
  89.                 nameCell.innerText = plantName;
  90.  
  91.                 // for (let i = 0; i < todayValue; i++) {
  92.                 //  todayValueCell.appendChild(getValueDot(todayValue));
  93.                 // }
  94.  
  95.                 if (todayValue === 0) {
  96.                     for (let i = 0; i < 4; i++) {
  97.                         todayValueCell.appendChild(getValueDot(0));
  98.                     }
  99.                 } else {
  100.                     for (let i = 0; i < todayValue; i++) {
  101.                         todayValueCell.appendChild(getValueDot(todayValue));
  102.                     }
  103.                 }
  104.  
  105.                 if (nightValue === 0) {
  106.                     for (let i = 0; i < 4; i++) {
  107.                         nightValueCell.appendChild(getValueDot(0));
  108.                     }
  109.                 } else {
  110.                     for (let i = 0; i < nightValue; i++) {
  111.                         nightValueCell.appendChild(getValueDot(nightValue));
  112.                     }
  113.                 }
  114.  
  115.                 if (tomorrowValue === 0) {
  116.                     for (let i = 0; i < 4; i++) {
  117.                         tomorrowValueCell.appendChild(getValueDot(0));
  118.                     }
  119.                 } else {
  120.                     for (let i = 0; i < tomorrowValue; i++) {
  121.                         tomorrowValueCell.appendChild(getValueDot(tomorrowValue));
  122.                     }
  123.                 }
  124.  
  125.                 row.appendChild(nameCell);
  126.                 row.appendChild(todayValueCell);
  127.                 row.appendChild(nightValueCell);
  128.                 row.appendChild(tomorrowValueCell);
  129.                plantTableBody.appendChild(row);
  130.                 }
  131.  
  132.                 const currentDate = new Date();
  133.                 const currentDateElement = document.getElementById("current-date");
  134.                 currentDateElement.innerText = currentDate.toLocaleDateString();
  135.     })
  136.     .catch(error => console.error(error));
  137.  
  138.     function getValueDot(value) {
  139.         const dot = document.createElement("div");
  140.         dot.classList.add("dot");
  141.  
  142.         switch (value) {
  143.             case 0:
  144.                 dot.classList.add("gray");
  145.                 break;
  146.             case 1:
  147.                 dot.classList.add("green");
  148.                 break;
  149.             case 2:
  150.                 dot.classList.add("yellow");
  151.                 break;
  152.             case 3:
  153.                 dot.classList.add("orange");
  154.                 break;
  155.             case 4:
  156.                 dot.classList.add("red");
  157.                 break;
  158.             default:
  159.                 break;
  160.         }
  161.  
  162.         return dot;
  163.     }
  164. </script>
  165. </body>
  166. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement