مدیاویکی:Gadget-FileDeletionNominator.js

از پژوهشکده امر به معروف
نسخهٔ تاریخ ‏۱۱ اسفند ۱۳۹۴، ساعت ۱۲:۳۴ توسط Admin (نظرات | مشارکت‌ها) (صفحه‌ای تازه حاوی «by Arash.pt: global $, mw: // <nowiki> $(function () { 'use strict'; if (mw.config.get('wgNamespaceNumber') !== 6) { return;...» ایجاد کرد)

(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به: ناوبری، جستجو

نکته: پس از ذخیره‌کردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: حافظهٔ نهانی مرورگر را از طریق منوی Tools → Preferences پاک کنید
/* by Arash.pt */
/*global $, mw*/
// <nowiki>
$(function () {
	'use strict';
	
	if (mw.config.get('wgNamespaceNumber') !== 6) {
		return;
	}
	
	function image_nominate(my_reason) {
		var img_user;
		var r_year = digit_fa(new Date().getFullYear());
		var r_month = digit_fa(new Date().getMonth() + 1);
		new mw.Api().get({
			format: 'json',
			action: 'query',
			titles: mw.config.get('wgPageName'),
			prop:'imageinfo'
		}).then(function (data) {
			img_user = data.query.pages[Object.keys(data.query.pages)[0]].imageinfo[0].user;
			// اضافه کردن به تصویر
			return new mw.Api().post({ // page
				format: 'json',
				action: 'edit',
				title: mw.config.get('wgPageName'),
				summary: 'درخواست حذف پرونده',
				prependtext: "{{ffd|log=" + r_year + "/" + r_month + "}}" + "\n",
				token: mw.user.tokens.get('editToken')
			});
		}).then(function () { 
			mw.notify('پیشنهاد حذف به پرونده اضافه شد');
			// اضافه کردن به نظرخواهی
			return new mw.Api().post({ // request
				format: 'json',
				action: 'edit',
				title: 'ویکی‌پدیا:درخواست حذف پرونده‌ها/' + digit_fa(r_year) + '/' + digit_fa(r_month) + '',
				summary: 'اضافه کردن درخواست حذف به وپ:دحپ',
				appendtext: "\n" + "{{subst:ffd2|" + mw.config.get('wgTitle') + "|Uploader=" + img_user + "|Reason= " + my_reason + " – ~~" + "~~}}",
				token: mw.user.tokens.get('editToken')
			});
		}).then(function () { 
			mw.notify('درخواست حذف پروند به وپ:دحپ اضافه شد');
			// اطلاع به نامزدکننده
			return new mw.Api().post({ // user
				format: 'json',
				action: 'edit',
				title: 'بحث کاربر:' + img_user,
				summary: 'اطلاع‌رسانی درخواست حذف پرونده به کاربر',
				appendtext: "\n" + "{{subst:fdw|" + mw.config.get('wgTitle') + "}}",
				token: mw.user.tokens.get('editToken')
			});
		}).then(function () {
			mw.notify('درخواست حذف پرونده به اطلاع کاربر رسید');
			setTimeout(function () { location.reload(true) }, 1500);
		}, function (error) {
			mw.notify('به دلیلی موفقیت‌آمیز نبود: ' + error);
			setTimeout(function () { location.reload(true) }, 1500);
		});
	}

	function digit_fa(number) {
		return number.toString().replace(/\d/g, function (x) {
			return String.fromCharCode(x.charCodeAt(0) + 1728);
		});
	}

	function image_nominate_box(){
		$($('<div>', {
			style: "position: relative;"
		}).append($('<div>', {
			style: "margin-top: 0.4em;"
		}).append('دلیل حذف: ', $('<input>', {
			id: "img_reason_input",
			style: "padding: 1px; vertical-align: baseline; font-family: inherit"
		})))).dialog({
			width: 500,
			title: 'درخواست حذف پرونده',
			modal: true,
			buttons: [{
				text: 'ثبت',
				class: 'ui-button-green',
				click: function () {
					image_nominate($('#img_reason_input').val());
				}
			}],
			close: function () {
				$(this).remove();
			}
		});
	}
	
	$(mw.util.addPortletLink(
		'p-cactions',
		'#',
		'درخواست حذف پرونده‌ها',
		'img_nomination_btn',
		'نامزد کردن پرونده برای حذف'
	)).click(function(e) {
		e.preventDefault();
		image_nominate_box();
	});

	mw.loader.load('jquery.ui.dialog');
});