MediaWiki:Cycle11.js

// DOM objects let st = document.querySelector("#sharetable tbody");

// This block gets the total amount of shares for each rule let totals = []; // Loop over the number of columns in the first row (should never be greater // than number of rows in table) for (let i = 1; i < st.children[0].children.length; i++) { let total = 0; for (let row of st.children) { // Skip over anything that doesn't look like a number (i.e. headings) if (!isNaN(row.children[i].innerText)) { total += parseInt(row.children[i].innerText); } }  totals.push(total); }

// Construct a new row to contain totals for each rule. let newRow = document.createElement("tr"); let totalLabel = document.createElement("th"); totalLabel.innerText = "Total"; newRow.appendChild(totalLabel); for (let total of totals) { let newEle = document.createElement("th"); newEle.innerText = total; newEle.style = "text-align: left;"; newRow.appendChild(newEle); } // Append this row to the share table. st.appendChild(newRow);