MediaWiki:Gadget-Adiutor-TAG.js

Wikipedia, erkin enciklopediya

Dıqqat: Ózgerislerińiz kóriniwi ushın jańa sazlawlarıńızdı saqlaǵannan keyin brauzerdiń keshin tazalaw kerek:
Google Chrome: Ctrl+Shift+R, Mozilla Firefox: Ctrl+Shift+R, Intenet Explorer: Ctrl+F5, Safari: Cmd+Shift+R, Konqueror: F5, Opera: Tools → Preferences arqalı keshti tazalań.

/* 
 * Adiutor: A gadget to assist various user actions
 * Author: Vikipolimer
 * Licencing and attribution: [[Wikipedia:Adiutor#Licenziya]]
 * Module: Article Tag
 */
/* <nowiki> */
$.when(mw.loader.using(["mediawiki.user", "oojs-ui-core", "oojs-ui-windows", ]), $.ready).then(function() {
	var mwConfig = mw.config.get(["wgAction", "wgPageName", "wgTitle", "wgUserGroups", "wgUserName", "wgCanonicalNamespace", "wgNamespaceNumber", "wgRevisionId"]);
	var api = new mw.Api();
	var preparedTags;

	function PageTaggingDialog(config) {
		PageTaggingDialog.super.call(this, config);
	}
	OO.inheritClass(PageTaggingDialog, OO.ui.ProcessDialog);
	PageTaggingDialog.static.name = 'PageTaggingDialog';
	PageTaggingDialog.static.title = 'Adiutor — Úlgi qosıw';
	PageTaggingDialog.static.actions = [{
		action: 'save',
		label: 'Orınlaw',
		flags: ['primary', 'progressive']
	}, {
		label: 'Jabıw',
		flags: 'safe'
	}];
	PageTaggingDialog.prototype.initialize = function() {
		PageTaggingDialog.super.prototype.initialize.apply(this, arguments);
		const monthNames = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];
		const dateToday = new Date();
		const markDate = dateToday.getFullYear() + '-' + monthNames[dateToday.getMonth()];
		var headerTitle = new OO.ui.MessageWidget({
			type: 'notice',
			inline: true,
			label: new OO.ui.HtmlSnippet('<strong>Márhamat, tómendegi xabar úlgilerinen keminde birewin tańlań.</small>')
		});
		var Tags = new OO.ui.CheckboxMultiselectInputWidget({
			options: [{
				data: '{{wikify|sáne=' + markDate + '}}',
				label: 'Wikilestirilmegen',
			}, {
				data: '{{biytáreplik|sáne=' + markDate + '}}',
				label: 'Biytárep jazılmaǵan'
			}, {
				data: '{{dereksiz|sáne=' + markDate + '}}',
				label: 'Dereksiz'
			}, {
				data: '{{kategoriyasız|sáne=' + markDate + '}}',
				label: 'Kategoriyasız'
			}, {
				data: '{{ishki siltemesiz|sáne=' + markDate + '}}',
				label: 'Ishki siltemesiz'
			}, {
				data: '{{avtomat awdarma|sáne=' + markDate + '}}',
				label: 'Avtomat awdarma'
			}, {
				data: '{{qáteler|sáne=' + markDate + '}}',
				label: 'Imla qaǵıydalarına muwapıq jazılmaǵan'
			}],
			classes: ['adiutor-tag-list-container'],
		});
		Tags.$element.on('click', function() {
			if(Tags.getValue().length > 1) {
				saltTags = String(Tags.getValue());
				preparedTags = "{{multiple issues|" + "\n" + saltTags.split(",").join("\n") + "\n" + "}}" + "\n";
				console.log(preparedTags);
			} else {
				saltTags = String(Tags.getValue());
				preparedTags = saltTags.split(",").join("\n") + "\n";
				console.log(preparedTags);
			}
		});
		this.content = new OO.ui.PanelLayout({
			padded: true,
			expanded: false,
		});
		this.content.$element.append(headerTitle.$element, '<br><hr><br>', Tags.$element);
		this.$body.append(this.content.$element);
	};
	PageTaggingDialog.prototype.getActionProcess = function(action) {
		var dialog = this;
		if(action) {
			return new OO.ui.Process(function() {
				tagPage(preparedTags);
				dialog.close({
					action: action
				});
			});
		}
		return PageTaggingDialog.super.prototype.getActionProcess.call(this, action);
	};
	var windowManager = new OO.ui.WindowManager();
	$(document.body).append(windowManager.$element);
	var dialog = new PageTaggingDialog();
	windowManager.addWindows([dialog]);
	windowManager.openWindow(dialog);

	function tagPage(preparedTags) {
		api.postWithToken('csrf', {
			action: 'edit',
			title: mwConfig.wgPageName,
			prependtext: preparedTags.split(',').join('\n') + '\n',
			summary: 'Betke xabar úlgisi/úlgileri qosıldı',
			tags: 'Adiutor',
			format: 'json'
		}).done(function() {
			location.reload();
		});
	}
});
/* </nowiki> */