MediaWiki:BingoSheet.js: Difference between revisions
Jump to navigation
Jump to search
(Created page with "mw.hook('wikipage.content').add(function () { if (mw.config.get('wgPageName') !== "Bingo_Sheet") return; var container = document.getElementById("bingoContainer"); if (!container) return; container.innerHTML = ""; // clear container var table = document.createElement("table"); table.style.border = "2px solid #596e96"; table.style.borderCollapse = "collapse"; table.style.borderRadius = "8px"; table.style.width = "100%"; table.sty...") |
No edit summary |
||
| Line 1: | Line 1: | ||
mw.hook('wikipage.content').add(function () { | mw.hook('wikipage.content').add(function () { | ||
if (mw.config.get('wgPageName') !== " | if (mw.config.get('wgPageName') !== "User:Hefner/Sandbox12") return; | ||
var container = document.getElementById("bingoContainer"); | var container = document.getElementById("bingoContainer"); | ||
Revision as of 02:02, 7 March 2026
mw.hook('wikipage.content').add(function () {
if (mw.config.get('wgPageName') !== "User:Hefner/Sandbox12") return;
var container = document.getElementById("bingoContainer");
if (!container) return;
container.innerHTML = ""; // clear container
var table = document.createElement("table");
table.style.border = "2px solid #596e96";
table.style.borderCollapse = "collapse";
table.style.borderRadius = "8px";
table.style.width = "100%";
table.style.maxWidth = "500px";
var rows = 5, cols = 5;
for (var r = 0; r < rows; r++) {
var row = table.insertRow();
row.style.background = r % 2 === 0 ? "#313e59" : "#222e45";
for (var c = 0; c < cols; c++) {
var cell = row.insertCell();
cell.style.padding = "10px";
cell.style.border = "1px solid #444";
cell.style.textAlign = "center";
cell.style.color = "#fff";
var id = `cell_${r}_${c}`;
var checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.id = id;
// Restore state from localStorage
if (localStorage.getItem(id) === "true") checkbox.checked = true;
// Save state on change
checkbox.addEventListener("change", function () {
localStorage.setItem(this.id, this.checked);
});
cell.appendChild(checkbox);
cell.appendChild(document.createElement("br"));
cell.appendChild(document.createTextNode(` Item ${r*cols+c+1}`));
}
}
container.appendChild(table);
// Optional: progress display
var progressDiv = document.createElement("div");
progressDiv.style.marginTop = "10px";
progressDiv.style.color = "#fff";
container.appendChild(progressDiv);
function updateProgress() {
var checked = 0;
for (var r = 0; r < rows; r++) {
for (var c = 0; c < cols; c++) {
var cb = document.getElementById(`cell_${r}_${c}`);
if (cb.checked) checked++;
}
}
progressDiv.textContent = `Completed ${checked} of ${rows*cols} items`;
}
// Listen for changes to update progress
for (var r = 0; r < rows; r++) {
for (var c = 0; c < cols; c++) {
var cb = document.getElementById(`cell_${r}_${c}`);
cb.addEventListener("change", updateProgress);
}
}
updateProgress(); // initial update
});