MediaWiki:KETForm.js

Not: Yayımladıktan sonra değişiklikleri görmek için tarayıcınızın önbelleğini temizlemeniz gerekebilir.

  • Firefox / Safari: Shift tuşuna basılıyken Yeniden Yükle'ye tıklayın ya da Ctrl-F5 ya da Ctrl-R tıklayın (Mac için ⌘-R).
  • Google Chrome: Ctrl-Shift-R'ye basın. (Mac için ⌘-Shift-R)
  • Internet Explorer / Edge: Ctrl basılıyken Yenile'ye tıklayın ya da Ctrl-F5 yapın.
  • Opera: Ctrl-F5 tıklayın.
/* <nowiki> */
$.when(), $.ready, mw.loader.using(['mediawiki.api', 'mediawiki.widgets', 'mediawiki.util', 'oojs-ui-core', 'oojs-ui-windows']).then(function() {
	var reasonInput, titleInput, reasonPreview;
	var api = new mw.Api();
	var requestsPageTitle = 'Vikikaynak:Kullanıcı engelleme talepleri';

	function UserBlockRequestDialog(config) {
		UserBlockRequestDialog.super.call(this, config);
	}
	OO.inheritClass(UserBlockRequestDialog, OO.ui.ProcessDialog);
	UserBlockRequestDialog.static.name = 'UserBlockRequestDialog';
	UserBlockRequestDialog.static.title = 'Kullanıcı Engelleme Talebi';
	UserBlockRequestDialog.static.actions = [{
		action: 'save',
		label: 'Talep Oluştur',
		flags: ['primary', 'progressive']
	}, {
		label: 'İptal',
		flags: 'safe'
	}];
	UserBlockRequestDialog.prototype.initialize = function() {
		UserBlockRequestDialog.super.prototype.initialize.apply(this, arguments);
		var headerTitle = new OO.ui.MessageWidget({
			type: 'notice',
			inline: true,
			label: new OO.ui.HtmlSnippet('<small>Burada talepte bulunmadan önce kullanıcının Vikikaynak kuralları ve <a href="https://tr.wikisource.org/wiki/Vikikaynak:Engelleme_politikas%C4%B1">engelleme politikası</a> hakkında bilgilendirilmesi gerekmektedir.</small>')
		});
		titleInput = new OO.ui.TextInputWidget({
			'showMissing': false,
			'required': true,
		});
		reasonInput = new OO.ui.MultilineTextInputWidget({
			'placeholder': 'Bu kullanıcının neden engellenmesi gerekiyor?',
			'required': 'true'
		});
		reasonPreview = new OO.ui.LabelWidget();
		var fieldset = new OO.ui.FieldsetLayout();
		fieldset.addItems([new OO.ui.FieldLayout(titleInput, {
			'label': 'Kullanıcı Adı:',
			align: 'top'
		}), new OO.ui.FieldLayout(reasonInput, {
			'label': 'Gerekçe:',
			align: 'top'
		}), ]);
		this.content = new OO.ui.PanelLayout({
			padded: true,
			expanded: false
		});
		this.content.$element.append(headerTitle.$element, '<br><hr><br>', fieldset.$element);
		this.$body.append(this.content.$element);
	};
	UserBlockRequestDialog.prototype.getActionProcess = function(action) {
		var dialog = this;
		if(action) {
			return new OO.ui.Process(function() {
				api.edit(requestsPageTitle, function() {
					return {
						appendtext: '\n\n' + makeRequestText(),
						summary: '[[Kullanıcı:' + titleInput.getValue() + '|' + titleInput.getValue() + ']] için engel talebi eklendi'
					};
				}).then(function() {
					window.location.href = mw.util.getUrl(requestsPageTitle);
				});
				dialog.close({
					action: action
				});
			});
		}
		return UserBlockRequestDialog.super.prototype.getActionProcess.call(this, action);
	};
	var windowManager = new OO.ui.WindowManager();
	$(document.body).append(windowManager.$element);
	var dialog = new UserBlockRequestDialog();
	windowManager.addWindows([dialog]);
	windowManager.openWindow(dialog);

	function makeRequestText() {
		var reason = reasonInput.getValue();
		return '{{kopyala:Vikikaynak:Kullanıcı engelleme talepleri/Önyükleme-şablon |1= ' + titleInput.getValue() + ' |2= ' + reason + '}}';
	}
});
/* </nowiki> */