مدیاویکی:Gadget-twinkleimage.js: تفاوت میان نسخهها
پرش به ناوبری
پرش به جستجو
جز (۱ نسخه واردشده) |
بدون خلاصۀ ویرایش |
||
خط ۲۷: | خط ۲۷: | ||
Window.setTitle( "پرونده برای حذف سریع تاریخدار" ); | Window.setTitle( "پرونده برای حذف سریع تاریخدار" ); | ||
Window.setScriptName( "توینکل" ); | Window.setScriptName( "توینکل" ); | ||
Window.addFooterLink( "سیاست حذف سریع", " | Window.addFooterLink( "سیاست حذف سریع", "اپ:محس" ); | ||
Window.addFooterLink( "راهنمای توینکل", " | Window.addFooterLink( "راهنمای توینکل", "ip:TW/DOC#image" ); | ||
var form = new Morebits.quickForm( Twinkle.image.callback.evaluate ); | var form = new Morebits.quickForm( Twinkle.image.callback.evaluate ); | ||
خط ۷۲: | خط ۷۲: | ||
label: 'استفادهٔ منصفانه یتیم (محس پ۵)', | label: 'استفادهٔ منصفانه یتیم (محس پ۵)', | ||
value: 'استفاده منصفانه یتیم', | value: 'استفاده منصفانه یتیم', | ||
tooltip: 'تصویر یا رسانه برای استفاده در | tooltip: 'تصویر یا رسانه برای استفاده در ایرانپدیا بدون مجوز است و فقط تحت استفادهٔ منصفانه طبق ایرانپدیا:محتوای غیر آزاد مجاز است، ولی در هیچ نوشتاری استفاده نشدهاست' | ||
}, | }, | ||
{ | { | ||
label: 'دارای حقتکثیر و یتیم (محس پ۶)', | label: 'دارای حقتکثیر و یتیم (محس پ۶)', | ||
value: 'بدون استفاده منطقی منصفانه', | value: 'بدون استفاده منطقی منصفانه', | ||
tooltip: 'تصویر یا رسانه ادعا میشود تحت سیاست استفادهٔ منصفانه | tooltip: 'تصویر یا رسانه ادعا میشود تحت سیاست استفادهٔ منصفانه ایرانپدیا مورد استفاده قرار گیرد ولی هیچ توضیحی دربارهٔ اینکه چرا تحت آن سیاست مجاز است داده نشدهاست' | ||
}, | }, | ||
{ | { | ||
خط ۸۷: | خط ۸۷: | ||
label: 'استفادهٔ منصفانهای که امکان جایگزین آزاد وجود دارد (محس پ۷)', | label: 'استفادهٔ منصفانهای که امکان جایگزین آزاد وجود دارد (محس پ۷)', | ||
value: 'استفاده منصفانه قابل جایگزین', | value: 'استفاده منصفانه قابل جایگزین', | ||
tooltip: 'تصویر یا رسانه ممکن است نخستین معیار محتوای غیر آزاد | tooltip: 'تصویر یا رسانه ممکن است نخستین معیار محتوای غیر آزاد ایرانپدیا ([[اپ:غیر آزاد#۱]]) را نداشته باشد؛ آن معیار شرح میدهد برای موضوعی ممکن است یک تصویر آزاد به طور منطقی یافت یا ایجاد شود که به اندازهٔ کافی همان اطلاعات را ارائه میکند' | ||
}, | }, | ||
{ | { | ||
خط ۲۴۵: | خط ۲۴۵: | ||
// Tagging image | // Tagging image | ||
var | var iranpedia_page = new Morebits.wiki.page( mw.config.get('wgPageName'), 'در حال برچسب حذف زدن به پرونده' ); | ||
iranpedia_page.setCallbackParameters( params ); | |||
iranpedia_page.load( Twinkle.image.callbacks.taggingImage ); | |||
// Notifying uploader | // Notifying uploader | ||
if( notify ) { | if( notify ) { | ||
iranpedia_page.lookupCreator(Twinkle.image.callbacks.userNotification); | |||
} else { | } else { | ||
// add to CSD log if desired | // add to CSD log if desired | ||
خط ۲۹۷: | خط ۲۹۷: | ||
pageobj.setPageText(tag + text); | pageobj.setPageText(tag + text); | ||
pageobj.setEditSummary("این پرونده بر پایهٔ [[ | pageobj.setEditSummary("این پرونده بر پایهٔ [[اپ:محس#" + params.normalized + "|محس " + params.normalized + "]] (" + params.type + ") نامزد حذف سریع است." + Twinkle.getPref('summaryAd')); | ||
switch (Twinkle.getPref('deliWatchPage')) { | switch (Twinkle.getPref('deliWatchPage')) { | ||
case 'yes': | case 'yes': |
نسخهٔ ۲ دسامبر ۲۰۱۷، ساعت ۱۴:۳۳
//<nowiki>
(function($){
/*
****************************************
*** twinkleimage.js: Image CSD module
****************************************
* Mode of invocation: Tab ("DI")
* Active on: File pages with a corresponding file which is local (not on Commons)
* Config directives in: TwinkleConfig
*/
Twinkle.image = function twinkleimage() {
if (mw.config.get('wgNamespaceNumber') === 6 &&
!document.getElementById("mw-sharedupload") &&
document.getElementById("mw-imagepage-section-filehistory")) {
Twinkle.addPortletLink(Twinkle.image.callback, "DI", "tw-di", "نامزدکردن پرونده برای حذف سریع به تأخیرافتاده");
}
};
Twinkle.image.callback = function twinkleimageCallback() {
var Window = new Morebits.simpleWindow( 600, 330 );
Window.setTitle( "پرونده برای حذف سریع تاریخدار" );
Window.setScriptName( "توینکل" );
Window.addFooterLink( "سیاست حذف سریع", "اپ:محس" );
Window.addFooterLink( "راهنمای توینکل", "ip:TW/DOC#image" );
var form = new Morebits.quickForm( Twinkle.image.callback.evaluate );
form.append( {
type: 'checkbox',
list: [
{
label: 'آگاهسازی بارگذارنده',
value: 'notify',
name: 'notify',
tooltip: "این گزینه را علامت نزنید اگر میخواهید چند پرونده را از همان کاربر نامزد کنید، و نمیخواهید صفحهٔ بحثشان را با اطلاعیههای زیاد پر کنید.",
checked: Twinkle.getPref('notifyUserOnDeli')
}
]
}
);
var field = form.append( {
type: 'field',
label: 'نوع عملی که میخواهید انجام دهید'
} );
field.append( {
type: 'radio',
name: 'type',
event: Twinkle.image.callback.choice,
list: [
{
label: 'بدون منبع (محس پ۴)',
value: 'بدون منبع',
checked: true,
tooltip: 'رسانه هیچگونه اطلاعاتی دربارهٔ منبع ندارد.'
},
{
label: 'بدون اجازهنامه (محس پ۴)',
value: 'بدون پروانه',
tooltip: 'رسانه اطلاعی دربارهٔ اجازهنامه استفادهاش ندارد'
},
{
label: 'بدون منبع و اجازهنامه (محس پ۴)',
value: 'بدون منبع و بدون پروانه',
tooltip: 'تصویر یا رسانه نه اطلاعات در منبع دارد و نه وضعیت حق تکثیرش'
},
{
label: 'استفادهٔ منصفانه یتیم (محس پ۵)',
value: 'استفاده منصفانه یتیم',
tooltip: 'تصویر یا رسانه برای استفاده در ایرانپدیا بدون مجوز است و فقط تحت استفادهٔ منصفانه طبق ایرانپدیا:محتوای غیر آزاد مجاز است، ولی در هیچ نوشتاری استفاده نشدهاست'
},
{
label: 'دارای حقتکثیر و یتیم (محس پ۶)',
value: 'بدون استفاده منطقی منصفانه',
tooltip: 'تصویر یا رسانه ادعا میشود تحت سیاست استفادهٔ منصفانه ایرانپدیا مورد استفاده قرار گیرد ولی هیچ توضیحی دربارهٔ اینکه چرا تحت آن سیاست مجاز است داده نشدهاست'
},
{
label: 'محل اختلاف در نحوهٔ استفادهٔ منصفانه (محس پ۷)',
value: 'استفاده منطقی منصفانه مورد اختلاف',
tooltip: 'تصویر یا رسانه یک استفادهٔ منطقی منصفانه دارد که مورد اختلاف است'
},
{
label: 'استفادهٔ منصفانهای که امکان جایگزین آزاد وجود دارد (محس پ۷)',
value: 'استفاده منصفانه قابل جایگزین',
tooltip: 'تصویر یا رسانه ممکن است نخستین معیار محتوای غیر آزاد ایرانپدیا ([[اپ:غیر آزاد#۱]]) را نداشته باشد؛ آن معیار شرح میدهد برای موضوعی ممکن است یک تصویر آزاد به طور منطقی یافت یا ایجاد شود که به اندازهٔ کافی همان اطلاعات را ارائه میکند'
},
{
label: 'شواهدی دال بر وجود مجوز نیست (محس پ۱۱)',
value: 'بدون اجازهنامه',
tooltip: 'تصویر یا رسانه مدرکی برای تأیید اینکه نویسنده با پروانهٔ پرونده موافقت کردهاست ندارد'
}
]
} );
form.append( {
type: 'div',
label: 'محل کار',
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 'بدون منبع و بدون پروانه':
case 'بدون منبع':
work_area.append( {
type: 'checkbox',
name: 'non_free',
list: [
{
label: 'غیرآزاد',
tooltip: 'تصویر تحت ادعای استفادهٔ منصفانه مجاز است'
}
]
} );
break;
case 'بدون اجازهنامه':
work_area.append( {
type: 'input',
name: 'source',
label: 'منبع: '
} );
break;
case 'استفاده منطقی منصفانه مورد اختلاف':
work_area.append( {
type: 'textarea',
name: 'reason',
label: 'اهمیت: '
} );
break;
case 'استفاده منصفانه یتیم':
work_area.append( {
type: 'input',
name: 'replacement',
label: 'جایگزین: '
} );
break;
case 'استفاده منصفانه قابل جایگزین':
work_area.append( {
type: 'checkbox',
name: 'old_image',
list: [
{
label: 'تصویر قدیمی',
tooltip: 'تصویر پیش از ۱۳ ژوئیه ۲۰۰۶ بارگذاری شدهاست'
}
]
} );
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, old_image;
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 ) {
replacement = event.target.replacement.value;
}
if( event.target.old_image ) {
old_image = event.target.old_image.checked;
}
var csdcrit;
switch( type ) {
case 'بدون منبع و بدون پروانه':
case 'بدون منبع':
case 'بدون پروانه':
csdcrit = "پ۴";
break;
case 'استفاده منصفانه یتیم':
csdcrit = "پ۵";
break;
case 'بدون استفاده منطقی منصفانه':
csdcrit = "پ۶";
break;
case 'استفاده منطقی منصفانه مورد اختلاف':
case 'استفاده منصفانه قابل جایگزین':
csdcrit = "پ۷";
break;
case 'بدون اجازهنامه':
csdcrit = "پ۱۱";
break;
default:
throw new Error( "Twinkle.image.callback.evaluate: unknown criterion" );
}
var lognomination = Twinkle.getPref('logSpeedyNominations') && Twinkle.getPref('noLogOnSpeedyNomination').indexOf(csdcrit.toLowerCase()) === -1;
var params = {
'type': type,
'normalized': csdcrit,
'non_free': non_free,
'source': source,
'reason': reason,
'replacement': replacement,
'old_image': old_image,
'lognomination': lognomination
};
Morebits.simpleWindow.setButtonsEnabled( false );
Morebits.status.init( event.target );
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.notice = "برچسبزدن کامل شد";
// Tagging image
var iranpedia_page = new Morebits.wiki.page( mw.config.get('wgPageName'), 'در حال برچسب حذف زدن به پرونده' );
iranpedia_page.setCallbackParameters( params );
iranpedia_page.load( Twinkle.image.callbacks.taggingImage );
// Notifying uploader
if( notify ) {
iranpedia_page.lookupCreator(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:حپ-" + type + "-notice|1=" + mw.config.get('wgTitle') + "}} ~~~~" ) );
Morebits.status.info( 'Notification', [ 'دادههای روبرو/مشابه باید در بارگذارندهٔ اصلی ارسال شود:', document.createElement( 'br' ), noteData ] );
}
};
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 = "{{" + (params.type == 'بدون منبع'? "جا:":"") + "حپ-" + params.type + "|date={{subst:#time:j F Y}}";
switch( params.type ) {
case 'بدون منبع و بدون پروانه':
case 'بدون منبع':
tag += params.non_free ? "|non-free=yes" : "";
break;
case 'بدون اجازهنامه':
tag += params.source ? "|منبع=" + params.source : "";
break;
case 'استفاده منطقی منصفانه مورد اختلاف':
tag += params.reason ? "|اهمیت=" + params.reason : "";
break;
case 'استفاده منصفانه یتیم':
tag += params.replacement ? "|جایگزین=" + params.replacement : "";
break;
case 'استفاده منصفانه قابل جایگزین':
tag += params.old_image ? "|نگاره قدیمی=yes" : "";
break;
default:
break; // doesn't matter
}
tag += "}}\n";
pageobj.setPageText(tag + text);
pageobj.setEditSummary("این پرونده بر پایهٔ [[اپ:محس#" + params.normalized + "|محس " + params.normalized + "]] (" + params.type + ") نامزد حذف سریع است." + Twinkle.getPref('summaryAd'));
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 + ") این صفحه را ایجاد کردید؛ در حال لغوکردن اطلاعرسانی به کاربر");
} else {
var usertalkpage = new Morebits.wiki.page('بحث کاربر:' + initialContrib, "آگاهیدادن به نخستین مشارکتکننده (" + initialContrib + ")");
var notifytext = "\n{{subst:حپ-" + params.type + "-notice|1=" + mw.config.get('wgTitle');
if (params.type === 'بدون اجازهنامه') {
notifytext += params.source ? "|منبع=" + params.source : "";
}
notifytext += "}} ~~~~";
usertalkpage.setAppendText(notifytext);
usertalkpage.setEditSummary("اطلاعرسانی: برچسبزدن برای حذف [[" + Morebits.pageNameNorm + "]]." + Twinkle.getPref('summaryAd'));
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>