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

از ایران پدیا
پرش به ناوبری پرش به جستجو

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

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
/* 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(){
		OO.ui.prompt('دلیل حذف: ').then(function (result) {
			if (result !== null)
				image_nominate(result);
		});
	}
	
	$(mw.util.addPortletLink(
		'p-cactions',
		'#',
		'درخواست حذف پرونده‌ها',
		'img_nomination_btn',
		'نامزد کردن پرونده برای حذف'
	)).click(function(e) {
		e.preventDefault();
		image_nominate_box();
	});

	mw.loader.load('oojs-ui');
});