Widget:PlaceNamesCharts: Difference between revisions

From International Robin Hood Bibliography
mNo edit summary
mNo edit summary
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<noinclude><div class="no-img">This widget generates charts on landing pages. It takes no parameters.</div></noinclude><includeonly>
<noinclude><div class="no-img">This widget generates charts on landing pages. It takes no parameters.</div></noinclude><includeonly><script>
<script>
//Timeline widget
//Timeline widget
(function() {
(function() {
Line 7: Line 6:
window.IRHB.timeline = {};
window.IRHB.timeline = {};
var t = window.IRHB.timeline;
var t = window.IRHB.timeline;
window.IRHB.get = window.IRHB.get || function get (elem) {
if (typeof elem === "string") {
elem = document.getElementById(elem);
}
return elem;
};
var get = window.IRHB.get;


Line 34: Line 41:
}
}
var pText = "<div class='chrtHead'>Timeline</div>";
var pText = "<div class='chrtHead'>Timeline</div>";
var curCentury = 0, cText = "", cTotal;
for (var prop in pages) {
for (var prop in pages) {
if (pages.hasOwnProperty(prop)) {
if (pages.hasOwnProperty(prop)) {
var decStr = prop + "&ndash;" + String((parseInt(prop) + 9)).substring(2)  
var century = getCentury(prop);
+ ": " + pages[prop].length;
if (century !== curCentury) {
pText += "<div class='tLnDec' id='i" + prop + "'><div>" + decStr + "</div><ul>";
if (curCentury !== 0) {
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent.";
var cHead = "<div class='tLnCnt' id='c" + curCentury + "'><div>" + cntStr + " (" + cTotal + ")</div>";
pText += cHead + "<div>" + cText + "</div></div>";
}
cTotal = 0;
curCentury = century;
cText = "";
}
var nPages = pages[prop].length;
var nPages = pages[prop].length;
cTotal += nPages;
var decStr = prop + "&ndash;" + String((parseInt(prop) + 9)).substring(2) + " (" + nPages + ")";
cText += "<div class='tLnDec' id='i" + prop + "'><div>" + decStr + "</div><ul>";
for (var i = 0; i < nPages; i++) {
for (var i = 0; i < nPages; i++) {
pText += "<li class='tLnItem'><span>" + pages[prop][i].year + " &ndash; " + pages[prop][i].page + "</span><div></div></li>";
cText += "<li class='tLnItem'><span>" + pages[prop][i].year + " &ndash; " + pages[prop][i].page + "</span><div></div></li>";
}
}
pText += "</ul></div>"
cText += "</ul></div>"
}
}
}
}
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent.";
var cHead = "<div class='tLnCnt' id='c" + curCentury + "'><div>" + cntStr + " (" + cTotal + ")</div>";
pText += cHead + "<div>" + cText + "</div></div>";
elem.innerHTML = pText;
elem.innerHTML = pText;
var centuries = get("tline").getElementsByClassName("tLnCnt");
var nCnts = centuries.length;
for (var i = 0; i < nCnts; i++) {
initDiv(centuries[i]);
}
var decades = get("tline").getElementsByClassName("tLnDec");
var decades = get("tline").getElementsByClassName("tLnDec");
var nDecs = decades.length;
var nDecs = decades.length;
Line 68: Line 97:
};
};
var getDecade = t.getDecade;
var getDecade = t.getDecade;
t.getCentury = function(decade) {
var century = parseInt(decade / 100) + 1;
return century;
};
var getCentury = t.getCentury;
Line 110: Line 146:
var t = window.IRHB.timeline;
var t = window.IRHB.timeline;
var get = window.IRHB.get;
var chartOptions =  {
var chartOptions =  {
Line 160: Line 197:
};
};


get = function (elem) {
if (typeof elem === "string") {
elem = document.getElementById(elem);
}
return elem;
};


function replaceAll (str, find, replacement) {
replaceAll = function (str, find, replacement) {
return str.replace(new RegExp(escapeRegEx(find), 'g'), replacement);
return str.replace(new RegExp(escapeRegEx(find), 'g'), replacement);
};
};
escapeRegEx = function (str) {
function escapeRegEx (str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
};
};
Line 348: Line 378:
card.innerHTML = "<img class='cardImg' id='" + imgId + "'></img>";
card.innerHTML = "<img class='cardImg' id='" + imgId + "'></img>";
var txt = "<div class='cardText'><table>";
var txt = "<div class='cardText'><table>";
txt += "<tr><td>Page</td><td><a href='https://www.irhb.org/wiki/index.php/" + page + "'>" + page + "</a></td></tr>";
var safePage = page.replace("'", "%27");
txt += "<tr><td>Page</td><td><a href='https://www.irhb.org/wiki/index.php/" + safePage + "'>" + page + "</a></td></tr>";
var lt = res.printouts.Geopoint[0] ? res.printouts.Geopoint[0].lat : "?";
var lt = res.printouts.Geopoint[0] ? res.printouts.Geopoint[0].lat : "?";
var ln = res.printouts.Geopoint[0] ? res.printouts.Geopoint[0].lon : "?";
var ln = res.printouts.Geopoint[0] ? res.printouts.Geopoint[0].lon : "?";
Line 423: Line 454:


})();
})();
</script>
</script></includeonly>
</includeonly>

Revision as of 10:40, 6 June 2019

This widget generates charts on landing pages. It takes no parameters.