User:Jon Harald Søby/bøyningsklasse.js
Jump to navigation
Jump to search
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)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// Based on [[User:Nikki/LexemeP31Menu.js]]
(function ($, mw) {
"use strict";
var addstatements = {
"P31": {
"Q1084": {
"Q604984": "entallsord",
"Q138246": "flertallsord",
"Q66364639": "ubøyelig",
},
"Q24905": {
"Q70235": "uregelrett verb",
},
},
"P5911": {
"Q1084": {
"Q97097665": "m1",
"Q97097666": "m2",
"Q97097667": "m3",
"Q97097668": "f1",
"Q97097669": "f2",
"Q97097670": "f3",
"Q97097671": "n1",
"Q97097672": "n2",
"Q97097673": "n3",
},
"Q24905": {
"Q97097688": "v1",
"Q97097689": "v2",
"Q97097690": "v3",
"Q97097691": "v4",
},
"Q34698": {
"Q97097692": "a1",
"Q97097693": "a2",
"Q97097694": "a3",
"Q97097695": "a4",
"Q97097697": "a5",
}
}
};
function add_p31(p31, eid) {
var mw_api = new mw.Api();
mw_api.postWithEditToken({
action: "wbcreateclaim",
entity: eid,
property: "P31",
snaktype: "value",
value: JSON.stringify({ "entity-type": "item", "id": p31 })
}).done(function (data) {
location.reload();
}).fail(function (err) {
alert("Failed: " + err);
});
}
function add_p5911(p5911, eid, label) {
var mw_api = new mw.Api();
mw_api.postWithEditToken({
action: "wbcreateclaim",
entity: eid,
property: "P5911",
snaktype: "value",
value: JSON.stringify({ "entity-type": "item", "id": p5911 })
}).done(function (data) {
$( ".bklasse-" + label ).replaceWith( $( "<b />" ).text( label ).css( "margin-right", "1em" ) );
}).fail(function (err) {
alert("Failed: " + err);
});
}
function add_menu_item(p31, label, eid) {
$(mw.util.addPortletLink("p-lex-p31", "#", label, "ca-p31-" + p31)).click(function (ev) {
ev.preventDefault();
add_p31(p31, eid);
});
}
function add_inflection_class(p5911, label, eid) {
$( "<a />" ).css( "margin-right", "1em" ).text( label ).addClass( "bklasse-" + label ).appendTo( "#bklasser" ).click( function(ev) {
ev.preventDefault();
add_p5911(p5911, eid, label);
});
}
mw.hook("wikibase.entityPage.entityView.rendered").add(function () {
mw.hook("wikibase.entityPage.entityLoaded").add(function(e){
if (!e.language)
return; // only supported on lexemes
if (addstatements["P31"].hasOwnProperty(e.lexicalCategory)) {
var list_p31 = addstatements["P31"][e.lexicalCategory];
$("#right-navigation").prepend("\
<nav id=\"p-lex-p31\" class=\"mw-portlet vector-menu-dropdown\">\
<h3>P31</h3>\
<div class=\"vector-menu-content\">\
<ul></ul>\
</div>\
</nav>\
");
for (var qid of Object.keys(list_p31)) {
add_menu_item(qid, list_p31[qid], e.id);
}
}
if (addstatements["P5911"].hasOwnProperty(e.lexicalCategory)) {
var list_p5911 = addstatements["P5911"][e.lexicalCategory];
$( ".language-lexical-category-widget_lexical-category").append( $( "<span />" ).css({"margin-left": "1em", "padding-left": "1em", "border-left": "2px solid #c8ccd1"}).attr("id", "bklasser") );
for (var qid2 of Object.keys(list_p5911)) {
add_inflection_class(qid2, list_p5911[qid2], e.id);
}
}
});
});
})(jQuery, mediaWiki);