User:Karima Rafes/LinkUniversity.js

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
$(function() {
	
	var patternWikiversity = /wikiversity/;
	var str = window.location.href;
	var matchesWikiversity = patternWikiversity.exec(str);
	
	var idWikidata = null;
	var wgWikibaseItemId = mw.config.get("wgWikibaseItemId");
	var wgContentLanguage = mw.config.get("wgContentLanguage");
	if (!wgWikibaseItemId) {
		console.log("no wikidata");
		return;
	}else if ( matchesWikiversity !== null) {
		//do nothing
		return;
	}

	var endpoint = "https://query.wikidata.org/sparql";
	var query = "PREFIX wikibase: <http://wikiba.se/ontology#> \
PREFIX wd: <http://www.wikidata.org/entity/> \
PREFIX schema: <http://schema.org/> \
select  ?linkWikiversity \
where { \
?linkWikiversity a schema:Article ; \
	schema:about wd:"+wgWikibaseItemId+" ; \
	schema:inLanguage \""+wgContentLanguage+"\" ; \
	schema:isPartOf ?wikiversity . \
?wikiversity wikibase:wikiGroup \"wikiversity\" . \
      } \
      limit 1";
		
    $.ajax({
                url: endpoint,
                dataType: 'json', 
                data: { 
                    queryLn: 'SPARQL',
                    query: query , 
                    limit: 'none',
                    infer: 'true',
                    Accept: 'application/sparql-results+json'
                },
                success: displayWikiversityLink, 
                error: displayError
        });
	
    function displayError(xhr, textStatus, errorThrown) {
        console.log(textStatus);
        console.log(errorThrown);
    }
  
    function displayWikiversityLink(data) {
    	 if(data.results.bindings.length === 0){
    		//do nothing
    	}else{
	        $.each(data.results.bindings, function(index, bs) {
		        $("#firstHeading").prepend(
				"<a href=\""+ bs["linkWikiversity"].value +"\" target=\"_blank\" style=\"text-decoration: none;color: inherit;\">"+
				"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/HSWVersity.svg/45px-HSWVersity.svg.png\" />"+
				"</a>"
				);
	        });
    	}
  	}
});