Widget:FestivalsCharts: Difference between revisions

From International Robin Hood Bibliography
mNo edit summary
m (Text replacement - "/wiki/" to "/w/")
 
(39 intermediate revisions by the same user not shown)
Line 52: Line 52:
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 62:
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++) {
cText += "<li class='tLnItem'><span>" + pages[prop][i].year + " &ndash; " + pages[prop][i].page + "</span><div></div></li>";
}
cText += "</ul></div>"
}
}
/*for (var prop in pages) {
if (pages.hasOwnProperty(prop)) {
var decStr = prop + "&ndash;" + String((parseInt(prop) + 9)).substring(2)
+ ": " + pages[prop].length;
pText += "<div class='tLnDec' id='i" + prop + "'><div>" + decStr + "</div><ul>";
var nPages = pages[prop].length;
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;
var p = pages[prop][i].page;
var p = pages[prop][i].page;
var fPos = p.indexOf(" festivals");
var fPos = p.indexOf(" festivals");
p = p.substring(0, fPos);
if (fPos !== -1) {
pText += "<li class='tLnItem'><span id='" + p + "_" + y + "'>" + y + " &ndash; " + p + "</span><div></div></li>";
p = p.substring(0, fPos);
} else {
p = "Unlocalized";
}
cText += "<li class='tlnItem'><span id='" + p + "_" + y + "'>" + y + " &ndash; " + p + "</span><div></div></li>";
}
}
pText += "</ul></div>"
cText += "</ul></div>"
}
}
}*/
}
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 98: Line 91:
elem.innerHTML = pText;
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 206: Line 198:
"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 285: Line 277:
}
}
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 358: Line 350:
}
}
item = encodeURIComponent(item);
item = encodeURIComponent(item);
var qry = "https://www.irhb.org/wiki/api.php?action=ask&query=[[flLocality::" +  
var qry = "/w/api.php?action=ask&query=[[Locality::" +  
item + "]][[flDate::" + yr +  
item + "]][[DateString::" + yr +  
"]]|?flDate|?flCenturyOrdinal|?flLocality|?flLat|?flLon|?flCountry|?flAdmDiv|?flVicinity|?flRiding|?flGlondon|?flEvents|?flImage&format=json";
"]]|?DateString|?Parent|?CenturyOrdinal|?Locality|?Latitude|?Longitude|?Country|?AdministrativeDivision|?Vicinity|?Riding|?GreaterLondon|?Events|?Image&format=json";
query(qry, "POST", makeItemCard);
query(qry, "POST", makeItemCard);
} else {
} else {
Line 378: Line 369:
res = res[Object.keys(res)[0]];
res = res[Object.keys(res)[0]];
var page = res.fulltext.substring(0, res.fulltext.indexOf("#"));
var page = res.fulltext.substring(0, res.fulltext.indexOf("#"));
var flDate = res.printouts.FlDate[0];
var DateString = res.printouts.DateString[0];
var dec = t.getDecade(flDate);
var dec = t.getDecade(DateString);
var loc = page.substring(0, page.indexOf(" festivals"));
var loc = page.substring(0, page.indexOf(" festivals"));
var itemName = flDate + " – " + loc;
var itemName = DateString + " – " + loc;
var decadeDiv = get("i" + dec);
var decadeDiv = get("i" + dec);
var lst = decadeDiv.firstChild.nextSibling;
var lst = decadeDiv.firstChild.nextSibling;
Line 390: Line 381:
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='/w/index.php/" + safePage + "'>" + page + "</a></td></tr>";
var lt = res.printouts.FlLat[0] ? res.printouts.FlLat[0] : "?";
var lt = res.printouts.Latitude[0] ? res.printouts.Latitude[0] : "?";
var ln = res.printouts.FlLon[0] ? res.printouts.FlLon[0] : "?";
var ln = res.printouts.Longitude[0] ? res.printouts.Longitude[0] : "?";
txt += "<tr><td>Locality</td><td>" + res.printouts.FlLocality[0] + "</td></tr>";
txt += "<tr><th>Locality</th><td>" + res.printouts.Locality[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.AdministrativeDivision[0] + "</td></tr>";
var riding = res.printouts.FlRiding[0];
var riding = res.printouts.Riding[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.GreaterLondon[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.Vicinity[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>" + DateString + "</td></tr>";
var century = res.printouts.FlCenturyOrdinal[0];
var century = res.printouts.CenturyOrdinal[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.Events[0] + "</td></tr>";
card.innerHTML += txt;
card.innerHTML += txt;
var imgName = res.printouts.FlImage[0];
var imgName = res.printouts.Image[0];
var img = get(imgId);
var img = get(imgId);
if (typeof imgName != "undefined" && imgName != "") {
if (typeof imgName != "undefined" && imgName != "") {
Line 428: Line 420:
card.style.display = "block";
card.style.display = "block";
};
};
tempImg.src = "https://www.irhb.org/wiki/thumb.php?f=" + encodeURIComponent(imgName) + "&w=195";
tempImg.src = "/w/thumb.php?f=" + encodeURIComponent(imgName) + "&w=195";
img.style.display = "block";
img.style.display = "block";
} else {
} else {
Line 461: Line 453:
     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 = "/w/js/Chart.js";
     script.onreadystatechange = prepareCharts;
     script.onreadystatechange = prepareCharts;
     script.onload = prepareCharts;
     script.onload = prepareCharts;

Latest revision as of 03:57, 6 June 2022

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