میڈیاویکی:Gadget-twinkleimage-2020.js
یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔
- فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
- گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
- انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
- اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں
اس اسکرپٹ کی دستاویزی تفصیلات میڈیاویکی:Gadget-twinkleimage-2020 پر درج کی جا سکتی ہیں۔ |
// <nowiki>
(function($) {
/*
****************************************
*** twinkleimage.js: Image CSD module
****************************************
* Mode of invocation: Tab ("DI")
* Active on: Local nonredirect file pages (not on Commons)
*/
Twinkle.image = function twinkleimage() {
if (mw.config.get('wgNamespaceNumber') === 6 && mw.config.get('wgArticleId') && !document.getElementById('mw-sharedupload') && !Morebits.wiki.isPageRedirect()) {
Twinkle.addPortletLink(Twinkle.image.callback, 'تصاویر', 'tw-di', 'نامزد کردن تصاویر برای حذف سریع با تأخیر'); // localized
}
};
Twinkle.image.callback = function twinkleimageCallback() {
var Window = new Morebits.simpleWindow(600, 330);
Window.setTitle('نامزد کردن برای حذف سریع با تأخیر'); // localized
Window.setScriptName('پلک'); // localized
Window.addFooterLink('سیاست حذف سریع', 'وپ:محس#پروندهها'); // localized
Window.addFooterLink('راهنمای توینکل', 'en:WP:TW/DOC#image'); // localized
var form = new Morebits.quickForm(Twinkle.image.callback.evaluate);
form.append({
type: 'checkbox',
list: [
{
label: 'آگاهسازی بارگذار اصلی',
value: 'notify',
name: 'notify',
tooltip: "اگر میخواهید چندین تصویری که یک کاربر بارگذاری کرده را نامزد کنید، این گزینه را غیرفعال کنید تا صفحهٔ بحثشان بر اثر تعدد پیامها شلوغ نشود.", // localized
checked: Twinkle.getPref('notifyUserOnDeli')
}
]
}
);
var field = form.append({
type: 'field',
label: 'نوع کنش مورد نیاز' // localized
});
field.append({
type: 'radio',
name: 'type',
event: Twinkle.image.callback.choice,
list: [
{
label: 'بدون منبع (محس پ۴)', // localized
value: 'no source',
checked: true,
tooltip: 'تصویر یا پروندهٔ بدون منبع' // localized
},
{
label: 'بدون مجوز (محس پ۴)', // localized
value: 'no license',
tooltip: 'تصویر یا پرونده فاقد اطلاعات در مورد وضعیت حق تکثیر' // localized
},
{
label: 'بدون منبع و بدون مجوز (محس پ۴)', // localized
value: 'no source no license',
tooltip: 'تصویر یا پروندهای که نه اطلاعاتی راجع به منبع دارد و نه راجع به وضعیت حق تکثیر' // localized
},
{
label: 'استفادهٔ منصفانهٔ یتیم (محس پ۵)', // localized
value: 'orphaned fair use',
tooltip: 'تصویر یا پروندهای که برای استفادهٔ منصفانه در ویکیپدیا بارگذاری شدهاست اما در هیچ مقالهای استفاده نمیشود' // localized
},
{
label: 'فاقد توضیح در مورد استفادهٔ منصفانه (محس پ۶)', // localized
value: 'no fair use rationale',
tooltip: 'تصویر یا پرونده برای استفادهٔ منصفانه در ویکیپدیا بارگذاری شدهاست اما توضیحی داده نشده که چرا شرایط استفادهٔ منصفانه را داراست' // localized
},
{
label: 'ادعای نادرست در مورد استفادهٔ منصفانه (محس پ۷)', // localized
value: 'disputed fair use rationale',
tooltip: 'تصویر یا پروندهای که استدلال ارائه شده برای استفادهٔ منصفانه از آن به چالش کشیده شدهاست' // localized
},
{
label: 'استفادهٔ منصفانه قابل جایگزینی (محس پ۷)', // localized
value: 'replaceable fair use',
tooltip: 'تصویر یا پروندهای که شرط اول استفادهٔ منصفانه برایش صادق نیست، یعنی موضوعی را نمایش میدهد که برایش پروندهٔ آزاد قابل تهیه است' // localized
},
{
label: 'بدون مدرک در مورد مجوز (محس پ۱۱)', // localized
value: 'no permission',
tooltip: 'تصویر یا پروندهای که مستندات کافی برای آنکه نشان دهد خالق اثر اجازهٔ استفاده از آن را دادهاست، موجود نیست' // localized
}
]
});
form.append({
type: 'div',
label: 'Work area',
name: 'work_area'
});
form.append({ type: 'submit' });
var result = form.render();
Window.setContent(result);
Window.display();
// We must init the parameters
var evt = document.createEvent('Event');
evt.initEvent('change', true, true);
result.type[0].dispatchEvent(evt);
};
Twinkle.image.callback.choice = function twinkleimageCallbackChoose(event) {
var value = event.target.values;
var root = event.target.form;
var work_area = new Morebits.quickForm.element({
type: 'div',
name: 'work_area'
});
switch (value) {
case 'no source no license':
case 'no source':
work_area.append({
type: 'checkbox',
name: 'non_free',
list: [
{
label: 'غیر آزاد', // localized
tooltip: 'پرونده با ادعای استفادهٔ منصفانه بارگذاری شدهاست' // localized
}
]
});
/* falls through */
case 'no license':
work_area.append({
type: 'checkbox',
name: 'derivative',
list: [
{
label: 'تصویر اشتقاقی که منبع اثر اصلی برای ذکر نشدهاست', // localized
tooltip: 'پرونده از اشتقاق یک یا چند اثر دیگر حاصل شدهاست و منبع آن آثار مشخص نشدهاست' // localized
}
]
});
break;
case 'no permission':
work_area.append({
type: 'input',
name: 'source',
label: 'منبع: ' // localized
});
break;
case 'disputed fair use rationale':
work_area.append({
type: 'textarea',
name: 'reason',
label: 'اشکال: ' // localized
});
break;
case 'orphaned fair use':
work_area.append({
type: 'input',
name: 'replacement',
label: 'جایگزین: ', // localized
tooltip: 'Optional file that replaces this one. The "File:" prefix is optional.'
});
break;
case 'replaceable fair use':
work_area.append({
type: 'textarea',
name: 'reason',
label: 'دلیل: ' // localized
});
break;
default:
break;
}
root.replaceChild(work_area.render(), $(root).find('div[name="work_area"]')[0]);
};
Twinkle.image.callback.evaluate = function twinkleimageCallbackEvaluate(event) {
var type, non_free, source, reason, replacement, derivative;
var notify = event.target.notify.checked;
var types = event.target.type;
for (var i = 0; i < types.length; ++i) {
if (types[i].checked) {
type = types[i].values;
break;
}
}
if (event.target.non_free) {
non_free = event.target.non_free.checked;
}
if (event.target.source) {
source = event.target.source.value;
}
if (event.target.reason) {
reason = event.target.reason.value;
}
if (event.target.replacement && event.target.replacement.value.trim()) {
replacement = event.target.replacement.value;
replacement = /^\s*(Image|File):/i.test(replacement) ? replacement : 'File:' + replacement;
}
if (event.target.derivative) {
derivative = event.target.derivative.checked;
}
var csdcrit;
switch (type) {
case 'no source no license':
case 'no source':
case 'no license':
csdcrit = 'پ۴'; // localized
break;
case 'orphaned fair use':
csdcrit = 'پ۵'; // localized
break;
case 'no fair use rationale':
csdcrit = 'پ۶'; // localized
break;
case 'disputed fair use rationale':
case 'replaceable fair use':
csdcrit = 'پ۷'; // localized
break;
case 'no permission':
csdcrit = 'پ۱۱'; // localized
break;
default:
throw new Error('Twinkle.image.callback.evaluate: unknown criterion');
}
var lognomination = Twinkle.getPref('logSpeedyNominations') && Twinkle.getPref('noLogOnSpeedyNomination').indexOf(csdcrit.toLowerCase()) === -1;
var templatename = derivative ? 'dw ' + type : type;
var params = {
'type': type,
'templatename': templatename,
'normalized': csdcrit,
'non_free': non_free,
'source': source,
'reason': reason,
'replacement': replacement,
'lognomination': lognomination
};
Morebits.simpleWindow.setButtonsEnabled(false);
Morebits.status.init(event.target);
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.notice = 'برچسب زدن کامل شد'; // localized
// Tagging image
var wikipedia_page = new Morebits.wiki.page(mw.config.get('wgPageName'), 'افزودن برچسب حذف به پرونده'); // localized
wikipedia_page.setCallbackParameters(params);
wikipedia_page.load(Twinkle.image.callbacks.taggingImage);
// Notifying uploader
if (notify) {
wikipedia_page.lookupCreation(Twinkle.image.callbacks.userNotification);
} else {
// add to CSD log if desired
if (lognomination) {
params.fromDI = true;
Twinkle.speedy.callbacks.user.addToLog(params, null);
}
// No auto-notification, display what was going to be added.
var noteData = document.createElement('pre');
noteData.appendChild(document.createTextNode('{{subst:di-' + templatename + '-notice|1=' + mw.config.get('wgTitle') + '}} ~~~~'));
Morebits.status.info('آگاهسازی', [ 'این اطلاعات یا مشابه آن باید به بارگذار اصلی پرونده فرستاده شود:', document.createElement('br'), noteData ]); // localized
}
};
Twinkle.image.callbacks = {
taggingImage: function(pageobj) {
var text = pageobj.getPageText();
var params = pageobj.getCallbackParameters();
// remove "move to Commons" tag - deletion-tagged files cannot be moved to Commons
text = text.replace(/\{\{(mtc|(copy |move )?to ?commons|move to wikimedia commons|copy to wikimedia commons)[^}]*\}\}/gi, '');
var tag = '{{di-' + params.templatename + '|date={{subst:#time:j F Y||en}}';
switch (params.type) {
case 'no source no license':
case 'no source':
tag += params.non_free ? '|non-free=yes' : '';
break;
case 'no permission':
tag += params.source ? '|source=' + params.source : '';
break;
case 'disputed fair use rationale':
tag += params.reason ? '|concern=' + params.reason : '';
break;
case 'orphaned fair use':
tag += params.replacement ? '|replacement=' + params.replacement : '';
break;
case 'replaceable fair use':
tag += params.reason ? '|1=' + params.reason : '';
break;
default:
break; // doesn't matter
}
tag += '|help=off}}\n';
/* additions for urwiki */
var type_summary = {
'no source': 'بدون منبع',
'no license': 'بدون مجوز',
'no source no license': 'بدون منبع و بدون مجوز',
'orphaned fair use': 'استفادهٔ منصفانهٔ یتیم',
'no fair use rationale': 'فاقد توضیح در مورد استفادهٔ منصفانه',
'disputed fair use rationale': 'ادعای نادرست در مورد استفادهٔ منصفانه',
'replaceable fair use': 'استفادهٔ منصفانهٔ قابل جایگزینی',
'no permission': 'بدون مدرک برای مجوز'
}
/* end additions for urwiki */
pageobj.setPageText(tag + text);
pageobj.setEditSummary('این پرونده طبق [[وپ:محس#' + params.normalized + '|محس ' + params.normalized + ']] نامزد حذف شدهاست (' + type_summary[params.type] + ').' + Twinkle.getPref('summaryAd')); // localized
switch (Twinkle.getPref('deliWatchPage')) {
case 'yes':
pageobj.setWatchlist(true);
break;
case 'no':
pageobj.setWatchlistFromPreferences(false);
break;
default:
pageobj.setWatchlistFromPreferences(true);
break;
}
pageobj.setCreateOption('nocreate');
pageobj.save();
},
userNotification: function(pageobj) {
var params = pageobj.getCallbackParameters();
var initialContrib = pageobj.getCreator();
// disallow warning yourself
if (initialContrib === mw.config.get('wgUserName')) {
pageobj.getStatusElement().warn('این پرونده را شما (' + initialContrib + ') ایجاد کردهاید؛ از آگاهسازی صرف نظر شد'); // localized
} else {
var usertalkpage = new Morebits.wiki.page('بحث کاربر:' + initialContrib, 'آگاهسازی بارگذار اصلی (' + initialContrib + ')'); // localized
var notifytext = '\n{{subst:di-' + params.templatename + '-notice|1=' + mw.config.get('wgTitle');
if (params.type === 'no permission') {
notifytext += params.source ? '|source=' + params.source : '';
}
notifytext += '}} ~~~~';
usertalkpage.setAppendText(notifytext);
usertalkpage.setEditSummary('آگاهسازی: برچسب زدن برای حذف [[:' + Morebits.pageNameNorm + ']].' + Twinkle.getPref('summaryAd')); // localized
usertalkpage.setCreateOption('recreate');
switch (Twinkle.getPref('deliWatchUser')) {
case 'yes':
usertalkpage.setWatchlist(true);
break;
case 'no':
usertalkpage.setWatchlistFromPreferences(false);
break;
default:
usertalkpage.setWatchlistFromPreferences(true);
break;
}
usertalkpage.setFollowRedirect(true);
usertalkpage.append();
}
// add this nomination to the user's userspace log, if the user has enabled it
if (params.lognomination) {
params.fromDI = true;
Twinkle.speedy.callbacks.user.addToLog(params, initialContrib);
}
}
};
})(jQuery);
// </nowiki>