مدیاویکی:Gadget-close.js
از پژوهشکده امر به معروف
نسخهٔ تاریخ ۱۱ اسفند ۱۳۹۴، ساعت ۱۳:۰۹ توسط Admin (نظرات | مشارکتها) (صفحهای تازه حاوی «←by Arash.pt & Ebraminio & Yamaha5 & Huji: ←global $, mw, prompt, confirm: /*jslint regexp: true, vars: true, indent: 2, white: true*...» ایجاد کرد)
نکته: پس از ذخیرهکردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: حافظهٔ نهانی مرورگر را از طریق منوی Tools → Preferences پاک کنید
/* by Arash.pt & Ebraminio & Yamaha5 & Huji */
/*global $, mw, prompt, confirm*/
/*jslint regexp: true, vars: true, indent: 2, white: true*/
$(function () {
'use strict';
function answered(page, sectionId, type, action) {
new mw.Api().get({
format: 'json',
action: 'query',
titles: page,
rvsection: sectionId,
prop: 'revisions',
rvprop: 'content'
}).then(function (data) {
var editsummary = ' (به کمک [[مدیاویکی:Gadget-close.js|ابزار جمعبندی]])';
var str = data.query.pages[Object.keys(data.query.pages)[0]].revisions[0]['*'];
var title = (str.match(/^(=+)[^=]*?(\1)$/m) || [''])[0];
var title_text = title.replace(/\=/g, '');
var the_reason = prompt("توضیح برای " + action + ":");
if (mw.config.get('wgPageName').search('نظرخواهی') > 0){
var starting='#';
}else{
var starting='*';
}
if (the_reason.length <= 1) { the_reason = ""; }
if (type === 'request') {
var requestStatus = confirm('آیا درخواست انجام شدهاست؟ یا ناموفق بود؟');
var the_reason2 = "";
if (!requestStatus) {
the_reason2 = "|ناموفق=بله";
}
if(the_reason != "") {
the_reason = the_reason + ' – ~~' + '~~'
str = str.replace(title, title + "\n{{بسته" + the_reason2 + "}}\n'''" + the_reason + "'''\n");
}else{
str = str.replace(title, title + "\n{{بسته" + the_reason2 + "}}");
}
str = str + "\n{{پایان بسته}}";
editsummary = 'جمعبندی شد' + editsummary;
} else if (type === 'talk') {
the_reason = "|" + the_reason;
str = str.replace(title, title + "\n{{بحث بسته" + the_reason + "}}");
str = str + "\n{{پایان بسته}}";
editsummary = 'جمعبندی شد' + editsummary;
} else if (type === 'done') {
if (mw.config.get('wgPageName')=='ویکیپدیا:درخواست_انتقال'||mw.config.get('wgPageName')=='ویکیپدیا:درخواست_ادغام_تاریخچه'){
str=str.replace('{{وضعیت|}}','{{وضعیت|شد}}')
}
str = str + "\n:{{شد}} " + the_reason + ' – ~~' + '~~';
editsummary = 'انجام شد' + editsummary;
} else if (type === 'notdone') {
if (mw.config.get('wgPageName')=='ویکیپدیا:درخواست_انتقال'||mw.config.get('wgPageName')=='ویکیپدیا:درخواست_ادغام_تاریخچه'){
str=str.replace('{{وضعیت|}}','{{وضعیت|نشد}}')
}
str = str + "\n:{{نشد}} " + the_reason + ' – ~~' + '~~';
editsummary = 'نشد!' + editsummary;
} else if (type === 'support') {
str = str + "\n"+starting+" {{موافق}} " + the_reason + ' – ~~' + '~~';
editsummary = 'موافقم' + editsummary;
} else if (type === 'oppose') {
str = str + "\n"+starting+" {{مخالف}} " + the_reason + ' – ~~' + '~~';
editsummary = 'مخالفم' + editsummary;
}
editsummary = '/*' + title_text + '*/' + editsummary;
return new mw.Api().post({
format: 'json',
action: 'edit',
title: page,
section: sectionId,
summary: editsummary,
text: str,
token: mw.user.tokens.get('editToken')
});
}).then(function () {
mw.notify('انجام شد');
location.reload(true);
}, function (error) {
mw.notify('به دلیلی موفقیتآمیز نبود: ' + error);
location.reload(true);
});
}
function addLink(section, type, html, color, title) {
$('<a>', {
href: '#',
title: title,
style: 'float: left; color: ' + color,
html: html
}).click(function (e) {
e.preventDefault();
var query = new mw.Uri($(section).next().find('a[href*="&action=edit"]')[0].href).query;
answered(query.title, +query.section.replace('T-', ''), type, title);
}).insertBefore(section);
}
if (mw.config.get('wgNamespaceNumber') === 3 && mw.config.get('wgPageName').search(mw.config.get('wgUserName')) > 0) {
$('.mw-headline').each(function () {
addLink(this, 'talk', '❐', '#090', 'جمعبندی بحث');
addLink(this, 'done', '✓', '#003A5C', '✓ شد');
addLink(this, 'notdone', '✗', '#DF0101', '✗ نشد');
});
} else if (mw.config.get('wgNamespaceNumber') === 4) {
if ($([
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%B1%D9%87%D9%86%D9%85%D9%88%D8%AF%D9%87%D8%A7%DB%8C_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:رهنمودهای ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%B3%DB%8C%D8%A7%D8%B3%D8%AA%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:سیاستهای ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:راهنمای ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%B4%DB%8C%D9%88%D9%87%E2%80%8C%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:شیوهنامههای ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7%DB%8C_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:ابزارهای ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%AE%D9%88%D8%AF%D8%A2%D9%85%D9%88%D8%B2_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:خودآموز ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D8%A7%D9%86%D8%B4%D8%A7%D9%87%D8%A7%DB%8C_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]', //رده:انشاهای ویکیپدیا
'#catlinks a[href="/wiki/%D8%B1%D8%AF%D9%87:%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA_%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7"]' //رده:مدیریت ویکیپدیا
].join(', ')).length === 0) {
$('.mw-headline').each(function () {
if (mw.config.get('wgUserGroups').indexOf('sysop') > -1) {
addLink(this, 'request', '❐', '#090', 'جمعبندی بحث');
addLink(this, 'done', '✓', '#003A5C', '✓ شد');
addLink(this, 'notdone', '✗', '#DF0101', '✗ نشد');
}
addLink(this, 'support', '☺', '#090', 'موافقم');
addLink(this, 'oppose', '☹', '#DF0101', 'مخالفم');
});
}
} else if (mw.config.get('wgNamespaceNumber') % 2 !== 0) { // برای صفحات بحث
$('.mw-headline').each(function () {
addLink(this, 'done', '✓', '#003A5C', '✓ شد');
addLink(this, 'notdone', '✗', '#DF0101', '✗ نشد');
});
}
});






