مدیاویکی:Gadget-Extra-Editbuttons.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
// <nowiki> // DON'T REMOVE THIS LINE EVER
/*jslint indent: 2, browser: true, white: true*/
/*global jQuery, mediaWiki, persianWikiTools, autoEd*/
/* above functions are coming from [[MediaWiki:Gadget-Extra-Editbuttons-autoed.js]] */
/**
* UI code for Persian tools
* Tests: [[مدیاویکی:Gadget-Extra-Editbuttons-tests.js]] [[وپ:تست]]
* See also:
* * [[مدیاویکی:Gadget-Extra-Editbuttons-persiantools.js]]
* * [[مدیاویکی:Gadget-Extra-Editbuttons-persianwikitools.js]]
* * [[مدیاویکی:Gadget-Extra-Editbuttons-dictionary.js]]
* * [[مدیاویکی:Gadget-Extra-Editbuttons-autoed.js]]
*/
window.extraeditbuttons = {
// ابزار در حالت نمایش
/**
* Fetch a page
*/
loadPage: function (title) {
return new mw.Api().get({
action: 'query',
prop: 'revisions',
titles: title,
rvprop: 'content',
format: 'json'
}).then(function (data) {
return $.map(data.query.pages, function (value) { return value; })[0].revisions[0]['*'];
});
},
/**
* Save a page
*/
savePage: function (title, text, summary) {
return new mw.Api().post({
action: 'edit',
title: title,
text: text,
summary: summary,
nocreate: '',
minor: '',
token: mw.user.tokens.get('csrfToken')
});
},
/**
* Load and save a page
*/
loadSavePage: function (editorDelegate, summary) {
return extraeditbuttons.loadPage(mw.config.get('wgPageName')).then(function (text) {
return extraeditbuttons.savePage(mw.config.get('wgPageName'), editorDelegate(text), summary);
});
},
/*if (mw.config.get('wgAction') === 'view' &&
mw.config.get('wgIsArticle') &&
!mw.config.get('wgIsMainPage')) {
$.when($.ready, mw.loader.using('jquery.ui')).then(function () {
$('#ca-abar-abzar').remove();
if ($('#mw-imagepage-nofile, #noarticletext').length !== 0 ||
mw.config.get('wgNamespaceNumber') === 6 ||
mw.config.get('wgNamespaceNumber') === 8) {
return;
}
$(mw.util.addPortletLink('p-views', '#', 'ابرابزار', 'ca-abar-abzar')).click(function (e) {
e.preventDefault();
$(
'<div><div>مطمئنید می\u200cخواهید ویرایشی خودکار جهت اصلاح متن این صفحه به کمک ابرابزار داشته باشید؟</h6><br><br>بعد از انجام ویرایش باید ویرایش انجامشده را از نظر درستی بررسی کنید <b>زیرا مسئولیت تغییرات ابرابزار با شماست!</b></div>'
).dialog({
modal: true,
title: 'ابرابزار',
resizable: false,
buttons: {
'بله': function () {
extraeditbuttons.loadSavePage(
persianWikiTools.superTool,
'/' + '* ویرایش به وسیلهٔ [[' + (mw.config.get('wgServerName') !== 'fa.wikipedia.org' ? ':w:fa:' : '') + 'وپ:ابرابزار|ابرابزار]] *' + '/'
).then(function (data) {
if (data.error) {
mw.notify('ویرایش موفقیت آمیز نبود: ' + data.error.info);
} else if (data.edit && data.edit.result === 'Success') {
if (data.edit.nochange !== undefined) {
mw.notify('تغییری در صفحه ایجاد نشد.');
} else {
mw.notify('ویرایش با موفقیت انجام پذیرفت');
// Loading diff page
window.location = new mw.Uri(mw.config.get('wgScript')).extend({
title: mw.config.get('wgPageName'),
diff: data.edit.newrevid
});
}
} else {
mw.notify('ویرایش در صفحه موفقیتآمیر نبود.');
}
}, function (error) {
mw.notify(error);
});
$(this).dialog("close");
},
'خیر': function () {
$(this).dialog("close");
}
},
close: function () {
$(this).remove();
}
});
});
});
}*/
// ابزار در حالت ویرایش
/**
* Adds edit summary
*/
addEditSummary: function (summaryText, replaceSummary) {
if (summaryText === '') {
return;
}
var summary = $('.editOptions #wpSummary'), summaryPrefix = '', pos;
if (summary.length === 0) {
return;
}
if (summary.val().indexOf('*/ ') > -1) {
pos = summary.val().indexOf('*/ ');
summaryPrefix = summary.val().substr(0, pos + 3);
}
if (replaceSummary) {
summary.val(summaryPrefix + summaryText);
} else {
if (summary.val() === summaryPrefix) {
summary.val(summary.val() + summaryText);
} else {
if (summary.val().indexOf(summaryText) === -1) { // do not repeat in edit summary
summary.val(summary.val() + '، ' + summaryText);
}
}
}
},
/**
* Makes a simple button from parameters
*/
buttonGenerator: function (callback, summaryText, replaceSummary, image, title, alt, idSuffix) {
function clickCallback(e) {
e.preventDefault();
callback();
addEditSummary(summaryText, replaceSummary);
}
var button = $('<span>', { id: 'persian-wiki-tools-' + idSuffix }).click(clickCallback).append(
$('<img>').attr({
src: image,
title: title,
alt: alt
}).on("error", function () {
button.replaceWith($('<button>', { text: alt }).click(clickCallback));
})
);
return button[0];
},
addButton: function (callback, summaryText, replaceSummary, image, title, alt, idSuffix) {
function clickCallback() {
callback();
extraeditbuttons.addEditSummary(summaryText, replaceSummary);
}
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'persiantools',
'group': 'main',
'tools': {
idSuffix: {
label: title, // or use labelMsg for a localized label, see above
type: 'button',
icon: image,
action: {
type: 'callback',
execute: clickCallback,
}
}
}
} );
},
/**
* Applies the string functions defined below to the
* selected text in the edit box. If no text is selected, applies
* the function to the whole contents of edit box.
*/
applyOnSelection: function (callback) {
var txtarea, range, startPos, endPos, selText;
if (document.getElementById('editform')) {
txtarea = document.getElementById('wpTextbox1');
} else if (document.getElementById('wpNewTitleMain')) {
txtarea = document.getElementById('wpNewTitleMain');
} else {
return;
}
if (document.selection && document.selection.createRange) { // IE/Opera
// get current selection
txtarea.focus();
range = document.selection.createRange();
selText = range.text;
if (selText) {
range.text = callback(selText);
range.select();
} else {
txtarea.value = callback(txtarea.value);
}
} else if (txtarea.selectionStart || txtarea.selectionStart === 0) { // Mozilla
// get current selection
txtarea.focus();
startPos = txtarea.selectionStart;
endPos = txtarea.selectionEnd;
selText = txtarea.value.substring(startPos, endPos);
// insert tags
if (selText) {
txtarea.value = txtarea.value.substring(0, startPos) + callback(selText) + txtarea.value.substring(endPos, txtarea.value.length);
txtarea.selectionStart = startPos + selText.length;
txtarea.selectionEnd = txtarea.selectionStart;
} else {
txtarea.value = callback(txtarea.value);
}
}
},
init: function() {
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'sections': {
'persiantools': {
'type': 'toolbar',
'label': 'ابزارها',
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'persiantools',
'groups': {
'main': {
'label': ''
}
}
} );
// Buttons that FIX wikitext
/* ی ک */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianTools.toStandardPersianCharacters); },
'اصلاح نویسه\u200cهای عربی',
false,
'//upload.wikimedia.org/wikipedia/commons/8/88/Button_YehKeh.png',
'اصلاح ی و ک',
'ی و ک',
'YehKeh'
);
/* فاصلهٔ مجازی */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiApplyZwnj); },
'اصلاح فاصلهٔ مجازی',
false,
'//upload.wikimedia.org/wikipedia/fa/d/d0/Button_ZWNJ.png',
'فاصلهٔ مجازی',
'فاصلهٔ مجازی',
'ZWNJ'
);
/* اصلاح نویسهها و حالتهای غیراستاندارد */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiApplyOrthography); },
'اصلاح نویسه',
false,
'//upload.wikimedia.org/wikipedia/fa/9/94/Button_non_standard.png',
'اصلاح نویسهها و حالتهای غیراستاندارد',
'اصلاح نویسهها و حالتهای غیراستاندارد',
'apply-orthography'
);
/* اصلاح ارقام */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiTextDigitsToPersian); },
'اصلاح ارقام',
false,
'//upload.wikimedia.org/wikipedia/fa/4/4a/Button_numbers.png',
'اصلاح ارقام',
'ارقام',
'numbers'
);
/* اصلاح ارقام مخصوص صفحه انتقال */
/*var move_tools1 = extraeditbuttons.buttonGenerator(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiConvertToPersianCharacters); },
'اصلاح ارقام',
false,
'//upload.wikimedia.org/wikipedia/fa/4/4a/Button_numbers.png',
'اصلاح ارقام',
'ارقام',
'numbers'
);*/
/* یونیکد نشانی وب */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiUrlMinifier); },
'اصلاح نشانی وب',
false,
'//upload.wikimedia.org/wikipedia/fa/b/ba/Button_decode_URI.png',
'یونی\u200cکدسازی نشانی\u200cها',
'یونی\u200cکدسازی',
'decode-URI'
);
/* اصلاح علامت @ */
extraeditbuttons.addButton(
function () {
extraeditbuttons.applyOnSelection(function (text) {
return text.replace(/(\S+?)@(\S+?)/g, '$1{{at}}$2');
});
},
'اصلاح @',
false,
'//upload.wikimedia.org/wikipedia/fa/7/7f/Button_at_sign.png',
'اصلاح علامت @',
'@',
'at-sign'
);
/* ابرابزار */
extraeditbuttons.addButton(
function () {
extraeditbuttons.applyOnSelection(persianWikiTools.superTool);
},
'ابرابزار',
false,
'//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png',
'ابرابزار',
'ابرابزار',
'super-tool'
);
/* ابزار املا */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiDictation); },
'اصلاح املا',
false,
'//upload.wikimedia.org/wikipedia/commons/a/a3/Button_Dictation-fa.png',
'املا',
'املا',
'dictation'
);
/* ابرابزار مخصوص صفحه انتقال */
var move_tools2 = extraeditbuttons.buttonGenerator(
function () {
extraeditbuttons.applyOnSelection(persianWikiTools.superToolMove);
},
'ابرابزار',
false,
'//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png',
'ابرابزار',
'ابرابزار',
'super-tool'
);
/* اصلاحات قراردادن نقطه */
extraeditbuttons.addButton(
function () { extraeditbuttons.applyOnSelection(persianWikiTools.wikiPunctuation); },
'اصلاح سجاوندی',
false,
'//upload.wikimedia.org/wikipedia/fa/e/ed/Button_punctuation.png',
'نقطه\u200cگذاری',
'نقطه\u200cگذاری',
'punctuation'
);
// Buttons that add tags
/* برچسب ویکی\u200cسازی */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{ویکی\u200cسازی}}\n' + $('#wpTextbox1').val());
},
'برچسب ویکی\u200cسازی',
false,
'//upload.wikimedia.org/wikipedia/fa/3/38/Button_wikify.png',
'برچسب ویکی\u200cسازی',
'ویکی\u200cسازی',
'wikify'
);*/
/* بدون منبع */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{بدون منبع}}\n' + $('#wpTextbox1').val());
},
'برچسب منبع',
false,
'//upload.wikimedia.org/wikipedia/fa/8/8a/Button_no_source_fa.png',
'برچسب بدون منبع',
'بدون منبع',
'no-source'
);*/
/* حذف سریع */
extraeditbuttons.addButton(
function () {
var temp = $('#wpTextbox1').val();
$('#wpTextbox1').val('');
mw.toolbar.insertTags('{{حذف سریع|', '}}\n' + temp, 'معیار');
},
'حذف سریع',
true,
'//upload.wikimedia.org/wikipedia/fa/c/c1/Button_delete_vote.png',
'برچسب حذف سریع',
'حذف سریع',
'delete-vote'
);
/* حذف زماندار */
/*extraeditbuttons.addButton(
function () {
var temp = $('#wpTextbox1').val();
$('#wpTextbox1').val('');
mw.toolbar.insertTags('{{جا:حذف زمان\u200cدار|', '}}\n' + temp, 'معیار');
},
'حذف زمان\u200cدار',
true,
'//upload.wikimedia.org/wikipedia/commons/3/3f/Button_attendre.png',
'برچسب حذف زمان\u200cدار',
'حذف زمان\u200cدار',
'attendre'
);*/
/* منبع تصویر نامعلوم */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{منبع تصویر نامعلوم}}\n' + $('#wpTextbox1').val());
},
'برچسب منبع',
false,
'//upload.wikimedia.org/wikipedia/fa/5/59/Button_image_source.png',
'برچسب منبع تصویر نامعلوم',
'منبع تصویر نامعلوم',
'image-source'
);*/
/* حق تکثیر تصویر نامعلوم */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{جا:حق تکثیر تصویر نامعلوم}}\n' + $('#wpTextbox1').val());
},
'برچسب حق تکثیر',
false,
'//upload.wikimedia.org/wikipedia/fa/7/7e/Button_image_copyright.png',
'برچسب حق تکثیر تصویر نامعلوم',
'حق تکثیر تصویر نامعلوم',
'image-copyright'
);*/
/* تمیزکاری */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{تمیزکاری}}\n' + $('#wpTextbox1').val());
},
'برچسب تمیزکاری',
false,
'//upload.wikimedia.org/wikipedia/commons/2/2e/Button_broom.png',
'برچسب تمیزکاری',
'تمیزکاری',
'broom'
);*/
/* اخطار نگاره */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('');
mw.toolbar.insertTags(
'{{جا:اخطار نگاره|',
'}}',
'نگاره'
);
},
'برچسب نگاره',
false,
'//upload.wikimedia.org/wikipedia/commons/e/ec/Button_aviso.png',
'اخطار نگاره',
'اخطار نگاره',
'aviso'
);*/
/* حق تکثیر مشکوک */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{حق تکثیر مشکوک}}\n' + $('#wpTextbox1').val());
},
'برچسب حق تکثیر',
false,
'//upload.wikimedia.org/wikipedia/fa/c/c7/Button_Sus.png',
'برچسب حق تکثیر مشکوک',
'حق تکثیر مشکوک',
'sus'
);*/
/* نقض حق تکثیر */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('');
mw.toolbar.insertTags(
'{{جا:نقض حق تکثیر|url=',
'}}',
'نشانی اینترنتی'
);
},
'برچسب حق تکثیر',
false,
'//upload.wikimedia.org/wikipedia/fa/6/6f/Button_CopyR.png',
'برچسب نقض حق تکثیر',
'نقض حق تکثیر',
'copyr'
);*/
/* لحن نامناسب */
/*extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('{{لحن نامناسب}}\n' + $('#wpTextbox1').val());
},
'برچسب لحن',
false,
'//upload.wikimedia.org/wikipedia/fa/f/fc/Button_Tone.png',
'برچسب لحن نامناسب',
'لحن',
'tone'
);*/
// Buttons that help with wiki writing
/* تغییر جهت */
extraeditbuttons.addButton(
function () {
$('#wpTextbox1, #wpNewTitleMain, .ace_editor').css({
'text-align': 'start',
'direction': $('#wpTextbox1, #wpNewTitleMain').css('direction') === 'rtl' ? 'ltr' : 'rtl'
});
},
'',
true,
'//upload.wikimedia.org/wikipedia/fa/d/d0/Button_toggle_dir.png',
'تغییر جهت جعبهٔ ویرایش',
'تغییرجهت',
'toggle-dir'
);
/* پیوند درونی */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags('[[', ']]', 'مقاله');
},
'',
true,
'//upload.wikimedia.org/wikipedia/fa/d/d0/Button_in_wikify.png',
'پیوند',
'پیوند',
'wikify'
);
/* متن خطخورده */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags('<s>', '</s>', 'متن خط خورده');
},
'',
true,
'//upload.wikimedia.org/wikipedia/commons/c/c9/Button_strike.png',
'متن خط\u200cخورده',
'متن خط\u200cخورده',
'strike'
);
/* توضیح */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags('<!--', '-->', 'توضیح');
},
'',
true,
'//upload.wikimedia.org/wikipedia/commons/3/34/Button_hide_comment.png',
'توضیح',
'توضیح',
'hide-comment'
);
/* ملزومات مقاله */
/*extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags('== جستارهای وابسته ==\n\n== منابع ==\n{{پانویس}}', '', '');
},
'',
true,
'//upload.wikimedia.org/wikipedia/commons/e/ef/Add_note.jpg',
'ملزومات مقاله',
'ملزومات مقاله',
'add-note'
);*/
/* خوشامدید */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags(
'{{جا:خوشامدید|~~~~}}',
'',
''
);
},
'خوشامدگویی',
true,
'//upload.wikimedia.org/wikipedia/commons/4/4a/Smilies_Alien_cool.png',
'خوشامدگویی',
'خوشامد',
'alien-cool'
);
/* چپچین */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags(
'{{چپ\u200cچین}}\n',
'\n{{پایان چپ\u200cچین}}',
'متن چپ\u200cچین\u200cشده'
);
},
'',
true,
'//upload.wikimedia.org/wikipedia/en/e/ea/Button_align_left.png',
'چپ\u200cچین\u200cکردن متن',
'چپ\u200cچین',
'align-left'
);
/* اندیس بالا */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags('<sup>', '</sup>', 'اندیس');
},
'',
true,
'//upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png',
'اندیس بالا',
'اندیس بالا',
'upper-letter'
);
/* اندیس پایین */
extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags('<sub>', '</sub>', 'اندیس');
},
'',
true,
'//upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png',
'اندیس پایین',
'اندیس پایین',
'lower-letter'
);
/* تغییرمسیر */
extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val('');
mw.toolbar.insertTags(
'#تغییرمسیر [[',
']]',
'پیوند'
);
},
'',
true,
'//upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png',
'تغییرمسیر',
'تغییرمسیر',
'redirect'
);
/* سال میلادی */
/*extraeditbuttons.addButton(
function () {
mw.toolbar.insertTags(
'[[',
' (میلادی)|]]',
'سال'
);
},
'',
true,
'//upload.wikimedia.org/wikipedia/fa/a/a7/Button_cal.png',
'سال میلادی',
'میلادی',
'cal'
);*/
/* مرتبسازی */
extraeditbuttons.addButton(
function () {
extraeditbuttons.applyOnSelection(persianTools.persianSortText);
},
'',
true,
'//upload.wikimedia.org/wikipedia/fa/3/33/Button_sort.png',
'مرتب\u200cسازی بر اساس الفبا',
'مرتب\u200cسازی',
'sort'
);
/* شد! */
extraeditbuttons.addButton(
function () {
$('#wpTextbox1').val($('#wpTextbox1').val() + '\n:{{شد}} ~~~~');
},
'شد',
true,
'//upload.wikimedia.org/wikipedia/commons/5/5b/Button_check.png',
'شد',
'شد',
'check'
);
var NewTitle = $('#wpNewTitleMain');
if (NewTitle){
var span = $("<span/>");
//span.append(move_tools1);
span.append(move_tools2);
span.insertBefore(NewTitle);
}
var tab_persiantools = $('.tab-persiantools a');
if(tab_persiantools[0])
{
tab_persiantools = $(tab_persiantools[0]);
if(!tab_persiantools.hasClass('current'))
{
$(tab_persiantools[0]).click();
}
}
},
};
$(function(){
mw.loader.using( [ 'ext.wikiEditor' ], function () {
$(document).ready( extraeditbuttons.init );
});
});
// </nowiki> // DON'T REMOVE THIS LINE EVER