Widget:FestivalsCharts: Difference between revisions

From International Robin Hood Bibliography
mNo edit summary
mNo edit summary
Line 1: Line 1:
<noinclude><div class="no-img">This widget generates the charts on landing pages in the Festivals section of IRHB. It takes no parameters.</div></noinclude><includeonly>
<noinclude><div class="no-img">This widget generates the charts on landing pages in the Festivals section of IRHB. It takes no parameters.</div></noinclude><includeonly>
<script>
<script>
//Timeline widget
//Timeline widget
//Timeline widget
(function() {
(function() {
Line 52: Line 53:
if (curCentury !== 0) {
if (curCentury !== 0) {
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent.";
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent.";
var cHead = "<div class='tLnCnt' id='c" + curCentury + "'><div>" + cntStr + " (" + cTotal + ")</div>";
var cHead = "<div class='tlnCnt' id='c" + curCentury + "'><div>" + cntStr + " (" + cTotal + ")</div>";
pText += cHead + "<div>" + cText + "</div></div>";
pText += cHead + "<div>" + cText + "</div></div>";
}
}
Line 62: Line 63:
cTotal += nPages;
cTotal += nPages;
var decStr = prop + "&ndash;" + String((parseInt(prop) + 9)).substring(2) + " (" + nPages + ")";
var decStr = prop + "&ndash;" + String((parseInt(prop) + 9)).substring(2) + " (" + nPages + ")";
cText += "<div class='tLnDec' id='i" + prop + "'><div>" + decStr + "</div><ul>";
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++) {
var y = pages[prop][i].year;
var y = pages[prop][i].year;
Line 68: Line 69:
var fPos = p.indexOf(" festivals");
var fPos = p.indexOf(" festivals");
p = p.substring(0, fPos);
p = p.substring(0, fPos);
cText += "<li class='tLnItem'><span id='" + p + "_" + y + "'>" + y + " &ndash; " + p + "</span><div></div></li>";
cText += "<li class='tlnItem'><span id='" + p + "_" + y + "'>" + y + " &ndash; " + p + "</span><div></div></li>";
}
}
cText += "</ul></div>"
cText += "</ul></div>"
Line 74: Line 75:
}
}
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent.";
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent.";
var cHead = "<div class='tLnCnt' id='c" + curCentury + "'><div>" + cntStr + " (" + cTotal + ")</div>";
var cHead = "<div class='tlnCnt' id='c" + curCentury + "'><div>" + cntStr + " (" + cTotal + ")</div>";
pText += cHead + "<div>" + cText + "</div></div>";
pText += cHead + "<div>" + cText + "</div></div>";
elem.innerHTML = pText;
elem.innerHTML = pText;
var centuries = get("tline").getElementsByClassName("tLnCnt");
var centuries = get("tline").getElementsByClassName("tlnCnt");
var nCnts = centuries.length;
var nCnts = centuries.length;
for (var i = 0; i < nCnts; i++) {
for (var i = 0; i < nCnts; i++) {
Line 86: Line 87:
var decades = get("tline").getElementsByClassName("tLnDec");
var decades = get("tline").getElementsByClassName("tlnDec");
var nDecs = decades.length;
var nDecs = decades.length;
for (var i = 0; i < nDecs; i++) {
for (var i = 0; i < nDecs; i++) {
initDiv(decades[i]);
initDiv(decades[i]);
}
}
var items = get("tline").getElementsByClassName("tLnItem");
var items = get("tline").getElementsByClassName("tlnItem");
var nItems = items.length;
var nItems = items.length;
for (var i = 0; i < nItems; i++) {
for (var i = 0; i < nItems; i++) {
Line 193: Line 194:
"display": true,
"display": true,
"fontSize": 28,
"fontSize": 28,
"fontFamily": "'Open Sans Condensed', Helvetica, Arial, sans-serif",
"fontFamily": "'OpenSansCondensed-Light', Helvetica, Arial, sans-serif",
"fontColor": '#964d4d',
"fontColor": '#800000',
"fontStyle": "bold",
"fontStyle": "bold",
"padding": 20
"padding": 20
Line 272: Line 273:
}
}
if (lbl === "Status") {
if (lbl === "Status") {
cColrs[1] = "#82a89e";
cColrs[1] = "#800000";
}
}
var chrt = new Chart( get(cvsId), {
var chrt = new Chart( get(cvsId), {
Line 345: Line 346:
}
}
item = encodeURIComponent(item);
item = encodeURIComponent(item);
var qry = "https://www.irhb.org/wiki/api.php?action=ask&query=[[flLocality::" +  
var qry = "/wiki/api.php?action=ask&query=[[flLocality::" +  
item + "]][[flDate::" + yr +  
item + "]][[flDate::" + yr +  
"]]|?flDate|?flCenturyOrdinal|?flLocality|?flLat|?flLon|?flCountry|?flAdmDiv|?flVicinity|?flRiding|?flGlondon|?flEvents|?flImage&format=json";
"]]|?flDate|?flCenturyOrdinal|?flLocality|?flLat|?flLon|?flCountry|?flAdmDiv|?flVicinity|?flRiding|?flGlondon|?flEvents|?flImage&format=json";
Line 377: Line 378:
var card = lstItems[i].firstChild.nextSibling;
var card = lstItems[i].firstChild.nextSibling;
var imgId = "img" + dec + "_" + i;
var imgId = "img" + dec + "_" + i;
card.innerHTML = "<img class='cardImg' id='" + imgId + "'></img>";
card.innerHTML = "";
var txt = "<div class='cardText'><table>";
var txt = "<div class='cardText'><table class='itemCard'>";
txt += "<tr><td colspan='2'><img class='cardImg' id='" + imgId + "'></img></td></tr>";
var safePage = page.replace("'", "%27");
var safePage = page.replace("'", "%27");
safePage = replaceAll(safePage, " ", "_");
safePage = replaceAll(safePage, " ", "_");
txt += "<tr><td>Page</td><td><a href='https://www.irhb.org/wiki/index.php/" + safePage + "'>" + page + "</a></td></tr>";
txt += "<tr><th>Link</th><td><a href='/wiki/index.php/" + safePage + "'>" + page + "</a></td></tr>";
var lt = res.printouts.FlLat[0] ? res.printouts.FlLat[0] : "?";
var lt = res.printouts.FlLat[0] ? res.printouts.FlLat[0] : "?";
var ln = res.printouts.FlLon[0] ? res.printouts.FlLon[0] : "?";
var ln = res.printouts.FlLon[0] ? res.printouts.FlLon[0] : "?";
txt += "<tr><td>Locality</td><td>" + res.printouts.FlLocality[0] + "</td></tr>";
txt += "<tr><th>Locality</th><td>" + res.printouts.FlLocality[0] + "</td></tr>";
txt += "<tr><td>Lat.</td><td>" + lt + "</td></tr>";
txt += "<tr><th>Lat.</th><td>" + lt + "</td></tr>";
txt += "<tr><td>Lon.</td><td>" + ln + "</td></tr>";
txt += "<tr><th>Lon.</th><td>" + ln + "</td></tr>";
txt += "<tr><td>Adm. div.</td><td>" + res.printouts.FlAdmDiv[0] + "</td></tr>";
txt += "<tr><th>Adm. div.</th><td>" + res.printouts.FlAdmDiv[0] + "</td></tr>";
var riding = res.printouts.FlRiding[0];
var riding = res.printouts.FlRiding[0];
if (typeof riding !== "undefined") {
if (typeof riding !== "undefined") {
txt += "<tr><td>Riding</td><td>" + riding + "</td></tr>";
txt += "<tr><th>Riding</th><td>" + riding + "</td></tr>";
} else {
} else {
var glondon = res.printouts.FlGlondon[0];
var glondon = res.printouts.FlGlondon[0];
if (typeof glondon !== "undefined") {
if (typeof glondon !== "undefined") {
txt += "<tr><td>Greater London</td><td>Yes</td></tr>";
txt += "<tr><th>Greater London</th><td>Yes</td></tr>";
}
}
}
}
var vic = res.printouts.FlVicinity[0];
var vic = res.printouts.FlVicinity[0];
vic = vic.replace("''", "<i>").replace("''", "</i>");
vic = vic.replace("''", "<i>").replace("''", "</i>");
txt += "<tr><td>Vicinity</td><td>" + vic + "</td></tr>";
txt += "<tr><th>Vicinity</th><td>" + vic + "</td></tr>";
txt += "<tr><td>Date</td><td>" + flDate + "</td></tr>";
txt += "<tr><th>Date</th><td>" + flDate + "</td></tr>";
var century = res.printouts.FlCenturyOrdinal[0];
var century = res.printouts.FlCenturyOrdinal[0];
if (century) {
if (century) {
txt += "<tr><td>Century</td><td>" + century + "</td></tr>";
txt += "<tr><th>Century</th><td>" + century + "</td></tr>";
}
}
txt += "<tr><td>Events</td><td>" + res.printouts.FlEvents[0] + "</td></tr>";
txt += "<tr><th>Events</th><td>" + res.printouts.FlEvents[0] + "</td></tr>";
card.innerHTML += txt;
card.innerHTML += txt;
var imgName = res.printouts.FlImage[0];
var imgName = res.printouts.FlImage[0];
Line 415: Line 417:
card.style.display = "block";
card.style.display = "block";
};
};
tempImg.src = "https://www.irhb.org/wiki/thumb.php?f=" + encodeURIComponent(imgName) + "&w=195";
tempImg.src = "/wiki/thumb.php?f=" + encodeURIComponent(imgName) + "&w=195";
img.style.display = "block";
img.style.display = "block";
} else {
} else {
Line 448: Line 450:
     var script = document.createElement('script');
     var script = document.createElement('script');
     script.type = 'text/javascript';
     script.type = 'text/javascript';
     script.src = "https://www.irhb.org/wiki/js/Chart.js";
     script.src = "/wiki/js/Chart.js";
     script.onreadystatechange = prepareCharts;
     script.onreadystatechange = prepareCharts;
     script.onload = prepareCharts;
     script.onload = prepareCharts;

Revision as of 00:36, 26 April 2020

This widget generates the charts on landing pages in the Festivals section of IRHB. It takes no parameters.