MediaWiki:Cycle11.js

From Infinite Nomic Wiki
Revision as of 18:21, 10 January 2022 by miraheze>CodeTriangle (Protected "MediaWiki:Cycle11.js": don't want any trolls ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Delete=Allow only administrators] (indefinite)))

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// 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);