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=' | 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 + "–" + String((parseInt(prop) + 9)).substring(2) + " (" + nPages + ")"; | var decStr = prop + "–" + String((parseInt(prop) + 9)).substring(2) + " (" + nPages + ")"; | ||
cText += "<div class=' | 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; | ||
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) { | ||
p = p.substring(0, fPos); | |||
} else { | |||
p = "Unlocalized"; | |||
} | |||
cText += "<li class='tlnItem'><span id='" + p + "_" + y + "'>" + y + " – " + p + "</span><div></div></li>"; | |||
} | } | ||
cText += "</ul></div>" | |||
} | } | ||
} | } | ||
var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent."; | var cntStr = curCentury + (curCentury !== "21" ? "th" : "st") + " Cent."; | ||
var cHead = "<div class=' | 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(" | 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: | ||
var decades = get("tline").getElementsByClassName("tlnDec"); | |||
var decades = get("tline").getElementsByClassName(" | |||
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(" | 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": "' | "fontFamily": "'OpenSansCondensed-Light', Helvetica, Arial, sans-serif", | ||
"fontColor": '# | "fontColor": '#800000', | ||
"fontStyle": "bold", | "fontStyle": "bold", | ||
"padding": 20 | "padding": 20 | ||
Line 285: | Line 277: | ||
} | } | ||
if (lbl === "Status") { | if (lbl === "Status") { | ||
cColrs[1] = "# | 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 = " | var qry = "/w/api.php?action=ask&query=[[Locality::" + | ||
item + "]][[ | item + "]][[DateString::" + yr + | ||
"]]|? | "]]|?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 | var DateString = res.printouts.DateString[0]; | ||
var dec = t.getDecade( | var dec = t.getDecade(DateString); | ||
var loc = page.substring(0, page.indexOf(" festivals")); | var loc = page.substring(0, page.indexOf(" festivals")); | ||
var itemName = | 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 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>< | txt += "<tr><th>Link</th><td><a href='/w/index.php/" + safePage + "'>" + page + "</a></td></tr>"; | ||
var lt = res.printouts. | var lt = res.printouts.Latitude[0] ? res.printouts.Latitude[0] : "?"; | ||
var ln = res.printouts. | var ln = res.printouts.Longitude[0] ? res.printouts.Longitude[0] : "?"; | ||
txt += "<tr>< | txt += "<tr><th>Locality</th><td>" + res.printouts.Locality[0] + "</td></tr>"; | ||
txt += "<tr>< | txt += "<tr><th>Lat.</th><td>" + lt + "</td></tr>"; | ||
txt += "<tr>< | txt += "<tr><th>Lon.</th><td>" + ln + "</td></tr>"; | ||
txt += "<tr>< | txt += "<tr><th>Adm. div.</th><td>" + res.printouts.AdministrativeDivision[0] + "</td></tr>"; | ||
var riding = res.printouts. | var riding = res.printouts.Riding[0]; | ||
if (typeof riding !== "undefined") { | if (typeof riding !== "undefined") { | ||
txt += "<tr>< | txt += "<tr><th>Riding</th><td>" + riding + "</td></tr>"; | ||
} else { | } else { | ||
var glondon = res.printouts. | var glondon = res.printouts.GreaterLondon[0]; | ||
if (typeof glondon !== "undefined") { | if (typeof glondon !== "undefined") { | ||
txt += "<tr>< | txt += "<tr><th>Greater London</th><td>Yes</td></tr>"; | ||
} | } | ||
} | } | ||
var vic = res.printouts. | var vic = res.printouts.Vicinity[0]; | ||
vic = vic.replace("''", "<i>").replace("''", "</i>"); | vic = vic.replace("''", "<i>").replace("''", "</i>"); | ||
txt += "<tr>< | txt += "<tr><th>Vicinity</th><td>" + vic + "</td></tr>"; | ||
txt += "<tr>< | txt += "<tr><th>Date</th><td>" + DateString + "</td></tr>"; | ||
var century = res.printouts. | var century = res.printouts.CenturyOrdinal[0]; | ||
if (century) { | if (century) { | ||
txt += "<tr>< | txt += "<tr><th>Century</th><td>" + century + "</td></tr>"; | ||
} | } | ||
txt += "<tr>< | txt += "<tr><th>Events</th><td>" + res.printouts.Events[0] + "</td></tr>"; | ||
card.innerHTML += txt; | card.innerHTML += txt; | ||
var imgName = res.printouts. | 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 = " | 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 = " | 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.