MediaWiki:Gadget-cs.js: Difference between revisions

From Tardis Wiki, the free Doctor Who reference
No edit summary
No edit summary
Line 1: Line 1:
mw.hook( 'wikipage.content' ).add( function ( $content ) {
mw.hook('wikipage.content').add(function(){
$('.cs-l').each(function(){ /* 'this' means the element */
$('.cse').each(function(i, obj) {
/* adapted from https://www.mediawiki.org/wiki/API%3aParsing_wikitext#MediaWiki_JS under MIT license */
    $(obj).attr("aria-hidden","true");
var currentEl = this;
    var citeID = $(obj).attr('id');
    var params = {
    var citeIDNum = citeID.slice(23); //get number at end of ID
action: 'parse',
    var toggle = $(".mw-customtoggle-cs" + citeIDNum);
text: '{{#invoke:cite source|generateCollapsibleTextFromJSON|' + $(currentEl).children(".cs-d")[0].innerHTML + ' }}',
    console.log(toggle);
format: 'json'
    $(toggle).attr("aria-controls",citeID);
};
$(toggle).attr("title","Show " + $(toggle).attr("title").slice(7));
var api = new mw.Api();
$(toggle).attr("aria-label",$(toggle).attr("title"));
api.get(params).done(function(data) {
response = $(data.parse.text['*']);
citationText = $(response).children()[0].innerHTML;
currentEl.innerHTML = citationText;
});
});
});
} );
});
$(".cse").on("afterExpand.mw-collapsible", function() {
$(this).attr("aria-hidden","false");
var citeIDNum = $(this).attr('id').slice(23); //get number at end of ID
var toggle = $(".mw-customtoggle-cs" + citeIDNum);
$(toggle).attr("aria-expanded","true");
$(toggle).attr("title","Hide " + $(toggle).attr("title").slice(5));
$(toggle).attr("aria-label",$(toggle).attr("title"));
var csLoader = $(this).children(".csl")[0];
    var params = {
action: 'parse',
text: '{{#invoke:cite source|generateCollapsibleTextFromJSON|' + $(csLoader).children(".csd")[0].innerHTML + ' }}',
format: 'json'
};
var api = new mw.Api();
api.get(params).done(function(data) {
var response = $(data.parse.text['*']);
var citationText = $(response).children("p")[0].innerHTML;
csLoader.innerHTML = citationText;
csLoader.removeClass("csl");
});
});
$(".cse").on("afterCollapse.mw-collapsible", function() {
$(this).attr("aria-hidden","true");
var citeIDNum = $(this).attr('id').slice(23); //get number at end of ID
var toggle = $(".mw-customtoggle-cs" + citeIDNum);
$(toggle).attr("aria-expanded","false");
$(toggle).attr("title","Show " + $(toggle).attr("title").slice(5));
$(toggle).attr("aria-label",$(toggle).attr("title"));
});

Revision as of 19:49, 9 April 2024

mw.hook('wikipage.content').add(function(){
	$('.cse').each(function(i, obj) {
	    $(obj).attr("aria-hidden","true");
	    var citeID = $(obj).attr('id');
	    var citeIDNum = citeID.slice(23); //get number at end of ID
	    var toggle = $(".mw-customtoggle-cs" + citeIDNum);
	    console.log(toggle);
	    $(toggle).attr("aria-controls",citeID);
		$(toggle).attr("title","Show " + $(toggle).attr("title").slice(7));
		$(toggle).attr("aria-label",$(toggle).attr("title"));
	});
}); 
$(".cse").on("afterExpand.mw-collapsible", function() {
	$(this).attr("aria-hidden","false");
	var citeIDNum = $(this).attr('id').slice(23); //get number at end of ID
	var toggle = $(".mw-customtoggle-cs" + citeIDNum);
	$(toggle).attr("aria-expanded","true");
	$(toggle).attr("title","Hide " + $(toggle).attr("title").slice(5));
	$(toggle).attr("aria-label",$(toggle).attr("title"));
	var csLoader = $(this).children(".csl")[0];
    var params = {
		action: 'parse',
		text: '{{#invoke:cite source|generateCollapsibleTextFromJSON|' + $(csLoader).children(".csd")[0].innerHTML + ' }}',
		format: 'json'
	};
	var api = new mw.Api();
	api.get(params).done(function(data) {
		var response = $(data.parse.text['*']);
		var citationText = $(response).children("p")[0].innerHTML;
		csLoader.innerHTML = citationText;
		csLoader.removeClass("csl");
	});
});
$(".cse").on("afterCollapse.mw-collapsible", function() {
	$(this).attr("aria-hidden","true");
	var citeIDNum = $(this).attr('id').slice(23); //get number at end of ID
	var toggle = $(".mw-customtoggle-cs" + citeIDNum);
	$(toggle).attr("aria-expanded","false");
	$(toggle).attr("title","Show " + $(toggle).attr("title").slice(5));
	$(toggle).attr("aria-label",$(toggle).attr("title"));
});