User:Edgars2007/set-label.js

From Wikidata
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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
var WDid = mw.config.get('wgTitle');
var label;

var api = new mw.Api({
	ajax: {
		headers: { 'Api-User-Agent': 'd:User:Edgars2007/set-label.js' },
	},
});

function changeLabel(label) {
	var jsondata = {
		labels: {
			lv: { language: 'lv', value: label },
		},
	};

	return api
		.postWithEditToken({
			action: 'wbeditentity',
			id: WDid,
			data: JSON.stringify(jsondata),
			summary: 'set [lv] label: ' + label + ', using [[User:Edgars2007/set-label.js|script]]',
		})
		.then(function () {
			location.reload();
		})
		.catch(function (error) {
			console.log(error);
		});
}

function setLabel() {
	api.get({
		action: 'wbgetentities',
		ids: WDid,
		props: 'labels',
	}).done(function (data) {
		var isjson = data.entities[WDid].labels.length;
		if (!isjson) {
			label = data.entities[WDid].labels['lv'].value;

			newlabel = label[0].toLowerCase() + label.substring(1);

			console.log('old label: ' + label);
			console.log('new label: ' + newlabel);

			changeLabel(newlabel);
		}
	});
}

$(function ($) {
	if (mw.config.get('wgNamespaceNumber') === 0) {
		$(mw.util.addPortletLink('p-cactions', '#', 'set-lv-label', null, 'Rīks ieraksta nosaukuma maiņai')).on('click', setLabel);
	}
});