تفاوت میان نسخه‌های «مدیاویکی:Tofawiki.js»

استفاده از TextInputWidget تا در ظاهر موبایل هم بهتر دیده شود
(فعال‌سازی در ظاهر موبایل)
(استفاده از TextInputWidget تا در ظاهر موبایل هم بهتر دیده شود)
windowManager.openWindow(dialog);
}
 
function showTranslationDialog() {
mw.loader.load(baseFaWikiUrl + '/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-persiantools.js&action=raw&ctype=text/javascript');
mw.loader.load(baseFaWikiUrl + '/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-persianwikitools.js&action=raw&ctype=text/javascript');
mw.loader.load(baseFaWikiUrl + '/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-dictionary.js&action=raw&ctype=text/javascript');
 
var dialogContent = $('<div>', { dir: 'rtl' });
 
var transliterationButton = namespaceNumber !== 0 ? '' : $('<span>', {
class: 'tofawiki-transliteration-suggestion mw-ui-button mw-ui-progressive',
style: 'font-size: 70%; min-height: initial',
text: 'پیشنهاد',
title: 'دریافت عنوان پیشنهادی از طریق نویسه‌گردانی رباتیک'
}).click(function () {
var button = $(this).prop('disabled', 'disabled').text('لطفاً منتظر بمانید…');
$.get('https://rezabot.toolforge.org/TileTransliteration.php', {
page: mw.config.get('wgTitle')
}).then(function (response) {
button.replaceWith($('<div>', {
class: 'tofawiki-transliteration-success',
style: 'font-size: 90%; color: #d33',
text: 'نویسه‌گردانی عنوان با موفقیت وارد شد. احتمال خطا وجود دارد، لطفاً به دقت بازبینی کنید!'
}));
$('.tofawiki-name', dialogContent).val(response.result);
}, function () {
button.remove();
mw.notify('درخواست نویسه‌گردانی موفق نبود');
});
});
 
var inputWidget = new OO.ui.TextInputWidget({ placeholder: 'عنوان' });
// TextInputWidget own event handling didn't look apealing
$('input', inputWidget.$element).on('input', validityCheck)
.css({ display: 'inline', width: '50%' }).prop('dir', 'rtl')
.addClass('tofawiki-name');
$(inputWidget.$element).css({ display: 'inline', 'margin-right': 0 });
 
dialogContent.append([
$('<div>', {
style: 'font-size: 90%; float: left'
}).append(
$('<a>', {
class: 'tofawiki-consolelink',
html: 'ابزار ایجاد انبوه',
tabindex: '-1',
title: 'ابزار ایجاد انبوه',
target: '_blank',
href: baseFaWikiUrl + mw.util.getUrl('ویژه:صفحهٔ_خالی/tofawiki-conosle') + '?withJS=MediaWiki:TofawikiConsole.js'
}).hide()
),
$('<br>').css('clear', 'both'),
$('<div>').append([
$('<a>', {
text: 'راهنما',
tabindex: '-1',
title: 'راهنمای کار با ابزار',
target: '_blank',
style: 'float: left; font-size: smaller;',
href: baseFaWikiUrl + mw.util.getUrl('راهنما:ابزار/به_ویکی‌فا')
}),
$('<select>', {
class: 'tofawiki-select',
style: 'font-family: inherit'
}).append(
$.map(requestingPages, function (item, description) {
var disabled =
namespaceNumber === 14 && item !== CATEGORIES_BOT ||
namespaceNumber === 0 && item === CATEGORIES_BOT ||
namespaceNumber === 4 && item !== WIKIPEDIA_TRANSLATOR ||
namespaceNumber === 0 && item === WIKIPEDIA_TRANSLATOR ||
namespaceNumber === 6 && item !== FAIRUSE_IMAGES ||
namespaceNumber === 0 && item === FAIRUSE_IMAGES ||
[10, 102, 828].indexOf(namespaceNumber) !== -1 && item !== TEMPLATE_BOOK_TRANSLATOR ||
namespaceNumber === 0 && item === TEMPLATE_BOOK_TRANSLATOR;
return $('<option>', { value: item, text: description, disabled: disabled });
})
)
]),
$('<div>').css('margin-top', '0.4em').append([
inputWidget.$element,
' ',
$('<img>', {
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png',
style: 'vertical-align: middle',
click: function () {
$('.tofawiki-name', dialogContent).val(persianWikiTools.superToolMove(
$('.tofawiki-name', dialogContent).val()
));
}
}),
' ',
transliterationButton
]),
$('<div>', {
class: 'tofawiki-status',
html: '<br><br>'
})
]);
 
$('.tofawiki-select', dialogContent).val(suggestRequestPlace());
var suggestedTitle = [10, 828, 6].indexOf(namespaceNumber) !== -1 ? mw.config.get('wgTitle') : '';
$('.tofawiki-name', dialogContent).val(addNamespace(suggestedTitle));
if (suggestedTitle !== '') validityCheck();
var passedHtml = '<span style="color: #00af89; font-size: 140%">✓</span>';
var failedHtml = '<span style="color: #d33; font-size: 140%">✗</span>';
function validityCheck() {
$('.tofawiki-transliteration-success', dialogContent).hide();
var origValue = $('.tofawiki-name', dialogContent).val(), page = origValue;
if (page === '') { $('.tofawiki-status', dialogContent).html(''); return; }
page = addNamespace(page);
pageExists(page).then(function (exists) {
if ($('.tofawiki-name', dialogContent).val() !== origValue) { // that request is no longer relevant
return;
}
if (!exists) {
$('.tofawiki-status', dialogContent).empty().append(passedHtml + ' صفحه‌ای با نام «' + page + '» ' +
'در ویکی‌پدیای فارسی موجود نیست پس روند ایجاد را ادامه می‌دهیم!');
} else {
$('.tofawiki-status', dialogContent).empty().append(failedHtml, ' عنوان «', $('<a>', {
target: '_blank',
href: baseFaWikiUrl + mw.util.getUrl(page),
text: page
}), '» در ویکی‌پدیای فارسی وجود دارد. مطمئن شوید که صفحهٔ تکراری نیست!');
if ($('.tofawiki-select', dialogContent).val() === DISAMBIGUATION_BOT) {
$('.tofawiki-status', dialogContent).append('<br><br>', $('<a>', {
text: 'برای افزودن (ابهام‌زدایی) به‌عنوان کلیک کنید',
href: '#'
}).click(function (e) {
e.preventDefault();
$('.tofawiki-name', dialogContent).val($('.tofawiki-name', dialogContent).val() + ' (ابهام‌زدایی)');
validityCheck();
}));
}
}
});
}
 
var actions = [{
action: 'tofawiki',
label: namespaceNumber === 6 ? 'بارگذاری' : 'ایجاد به کمک ابزار توفاویکی',
onClose: function () {
var faName = $('.tofawiki-name', dialogContent).val().replace(/ي/g, 'ی').replace(/ك/g, 'ک');
var requestingPage = $('.tofawiki-select', dialogContent).val();
if (!faName || !requestingPage) {
$('.tofawiki-status', dialogContent).text('ابتدا نامی وارد کنید!');
return;
}
if (requestingPage === FAIRUSE_IMAGES) {
window.open(new mw.Uri(baseFaWikiUrl + '/w/index.php').extend({
title: 'ویژه:بارگذاری_پرونده',
wpDestFile: faName,
enName: mw.config.get('wgRelevantPageName'),
withJS: 'MediaWiki:TofawikiUpload.js',
wpUploadDescription: '----'
}));
} else {
window.open(new mw.Uri(baseFaWikiUrl + '/w/index.php').extend({
title: addNamespace(faName),
enName: mw.config.get('wgRelevantPageName'),
enOldid: mw.config.get('wgRevisionId'),
redlink: 1,
action: 'edit',
withJS: 'MediaWiki:TofawikiHelper.js',
requestingPage: requestingPage,
editintro: 'الگو:به ویکی‌فا/ادیت‌نوتیس'
}));
}
}
}, {
label: 'بستن',
flags: 'safe'
}];
if (namespaceNumber === 0) {
// Prepent to actions list and enable CX for main namespace
actions.unshift({
action: 'cx',
label: 'ایجاد به کمک ترجمهٔ محتوا',
onClose: function () {
window.open(new mw.Uri(baseFaWikiUrl + '/w/index.php').extend({
title: 'Special:CX',
page: mw.config.get('wgPageName'),
from: 'en',
to: 'fa',
targettitle: $('.tofawiki-name', dialogContent).val().replace(/_/g, '+').replace(/ي/g, 'ی').replace(/ك/g, 'ک'),
withJS: 'MediaWiki:EnableCX.js'
}));
}
});
}
 
showDialog(dialogContent, actions);
 
isAllowedToUseTofawikiConsole().then(function (allowed) {
if (allowed) {
$('.tofawiki-consolelink', dialogContent).show();
}
});
}
 
$(function () {
if ($('.interlanguage-link.interwiki-fa').length !== 0) { return; }
if ($('#ca-view-foreign').length !== 0) { return; }
 
$('#ca-tofawiki, #page-actions-tofawiki').remove();
if ($('#mw-imagepage-nofile, #noarticletext').length !== 0) {
return;
return;
}
 
var link;
if (mw.config.get('wgMFMode')) {
);
}
 
$(link).click(function (e) {
e.preventDefault();
mw.loader.using(['oojs-ui']).then(showTranslationDialog);
 
mw.loader.load(baseFaWikiUrl + '/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-persiantools.js&action=raw&ctype=text/javascript');
mw.loader.load(baseFaWikiUrl + '/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-persianwikitools.js&action=raw&ctype=text/javascript');
mw.loader.load(baseFaWikiUrl + '/w/index.php?title=MediaWiki:Gadget-Extra-Editbuttons-dictionary.js&action=raw&ctype=text/javascript');
 
var dialogContent = $('<div>', { dir: 'rtl' });
 
var transliterationButton = namespaceNumber !== 0 ? '' : $('<span>', {
class: 'tofawiki-transliteration-suggestion mw-ui-button mw-ui-progressive',
style: 'font-size: 70%; min-height: initial',
text: 'پیشنهاد',
title: 'دریافت عنوان پیشنهادی از طریق نویسه‌گردانی رباتیک'
}).click(function () {
var button = $(this).prop('disabled', 'disabled').text('لطفاً منتظر بمانید…');
$.get('https://rezabot.toolforge.org/TileTransliteration.php', {
page: mw.config.get('wgTitle')
}).then(function (response) {
button.replaceWith($('<div>', {
class: 'tofawiki-transliteration-success',
style: 'font-size: 90%; color: #d33',
text: 'نویسه‌گردانی عنوان با موفقیت وارد شد. احتمال خطا وجود دارد، لطفاً به دقت بازبینی کنید!'
}));
$('.tofawiki-name', dialogContent).val(response.result);
}, function () {
button.remove();
mw.notify('درخواست نویسه‌گردانی موفق نبود');
});
});
 
dialogContent.append([
$('<div>', {
style: 'font-size: 90%; float: left'
}).append(
$('<a>', {
class: 'tofawiki-consolelink',
html: 'ابزار ایجاد انبوه',
tabindex: '-1',
title: 'ابزار ایجاد انبوه',
target: '_blank',
href: baseFaWikiUrl + mw.util.getUrl('ویژه:صفحهٔ_خالی/tofawiki-conosle') + '?withJS=MediaWiki:TofawikiConsole.js'
}).hide()
),
$('<br>').css('clear', 'both'),
$('<div>').append([
$('<a>', {
text: 'راهنما',
tabindex: '-1',
title: 'راهنمای کار با ابزار',
target: '_blank',
style: 'float: left; font-size: smaller;',
href: baseFaWikiUrl + mw.util.getUrl('راهنما:ابزار/به_ویکی‌فا')
}),
$('<select>', {
class: 'tofawiki-select',
style: 'font-family: inherit'
}).append(
$.map(requestingPages, function (item, description) {
var disabled =
namespaceNumber === 14 && item !== CATEGORIES_BOT ||
namespaceNumber === 0 && item === CATEGORIES_BOT ||
namespaceNumber === 4 && item !== WIKIPEDIA_TRANSLATOR ||
namespaceNumber === 0 && item === WIKIPEDIA_TRANSLATOR ||
namespaceNumber === 6 && item !== FAIRUSE_IMAGES ||
namespaceNumber === 0 && item === FAIRUSE_IMAGES ||
[10, 102, 828].indexOf(namespaceNumber) !== -1 && item !== TEMPLATE_BOOK_TRANSLATOR ||
namespaceNumber === 0 && item === TEMPLATE_BOOK_TRANSLATOR;
return $('<option>', { value: item, text: description, disabled: disabled });
})
)
]),
$('<div>').css('margin-top', '0.4em').append([
$('<input>', {
dir: 'rtl',
placeholder: 'عنوان',
class: 'tofawiki-name',
style: 'font-family: inherit; width: 50%;'
}).on('input', validityCheck), ' ', $('<img>', {
src: '//upload.wikimedia.org/wikipedia/fa/f/fc/Button_super_tool.png',
style: 'vertical-align: middle',
click: function () {
$('.tofawiki-name', dialogContent).val(persianWikiTools.superToolMove(
$('.tofawiki-name', dialogContent).val()
));
}
}),
' ',
transliterationButton
]),
$('<div>', {
class: 'tofawiki-status',
html: '<br><br>'
})
]);
 
$('.tofawiki-select', dialogContent).val(suggestRequestPlace());
var suggestedTitle = [10, 828, 6].indexOf(namespaceNumber) !== -1 ? mw.config.get('wgTitle') : '';
$('.tofawiki-name', dialogContent).val(addNamespace(suggestedTitle));
if (suggestedTitle !== '') validityCheck();
var passedHtml = '<span style="color: #00af89; font-size: 140%">✓</span>';
var failedHtml = '<span style="color: #d33; font-size: 140%">✗</span>';
function validityCheck() {
$('.tofawiki-transliteration-success', dialogContent).hide();
var origValue = $('.tofawiki-name', dialogContent).val(), page = origValue;
if (page === '') { $('.tofawiki-status', dialogContent).html(''); return; }
page = addNamespace(page);
pageExists(page).then(function (exists) {
if ($('.tofawiki-name', dialogContent).val() !== origValue) { // that request is no longer relevant
return;
}
if (!exists) {
$('.tofawiki-status', dialogContent).empty().append(passedHtml + ' صفحه‌ای با نام «' + page + '» ' +
'در ویکی‌پدیای فارسی موجود نیست پس روند ایجاد را ادامه می‌دهیم!');
} else {
$('.tofawiki-status', dialogContent).empty().append(failedHtml, ' عنوان «', $('<a>', {
target: '_blank',
href: baseFaWikiUrl + mw.util.getUrl(page),
text: page
}), '» در ویکی‌پدیای فارسی وجود دارد. مطمئن شوید که صفحهٔ تکراری نیست!');
if ($('.tofawiki-select', dialogContent).val() === DISAMBIGUATION_BOT) {
$('.tofawiki-status', dialogContent).append('<br><br>', $('<a>', {
text: 'برای افزودن (ابهام‌زدایی) به‌عنوان کلیک کنید',
href: '#'
}).click(function (e) {
e.preventDefault();
$('.tofawiki-name', dialogContent).val($('.tofawiki-name', dialogContent).val() + ' (ابهام‌زدایی)');
validityCheck();
}));
}
}
});
}
 
var actions = [{
action: 'tofawiki',
label: namespaceNumber === 6 ? 'بارگذاری' : 'ایجاد به کمک ابزار توفاویکی',
onClose: function () {
var faName = $('.tofawiki-name', dialogContent).val().replace(/ي/g, 'ی').replace(/ك/g, 'ک');
var requestingPage = $('.tofawiki-select', dialogContent).val();
if (!faName || !requestingPage) {
$('.tofawiki-status', dialogContent).text('ابتدا نامی وارد کنید!');
return;
}
if (requestingPage === FAIRUSE_IMAGES) {
window.open(new mw.Uri(baseFaWikiUrl + '/w/index.php').extend({
title: 'ویژه:بارگذاری_پرونده',
wpDestFile: faName,
enName: mw.config.get('wgRelevantPageName'),
withJS: 'MediaWiki:TofawikiUpload.js',
wpUploadDescription: '----'
}));
} else {
window.open(new mw.Uri(baseFaWikiUrl + '/w/index.php').extend({
title: addNamespace(faName),
enName: mw.config.get('wgRelevantPageName'),
enOldid: mw.config.get('wgRevisionId'),
redlink: 1,
action: 'edit',
withJS: 'MediaWiki:TofawikiHelper.js',
requestingPage: requestingPage,
editintro: 'الگو:به ویکی‌فا/ادیت‌نوتیس'
}));
}
}
}, {
label: 'بستن',
flags: 'safe'
}];
if (namespaceNumber === 0) {
// Prepent to actions list and enable CX for main namespace
actions.unshift({
action: 'cx',
label: 'ایجاد به کمک ترجمهٔ محتوا',
onClose: function () {
window.open(new mw.Uri(baseFaWikiUrl + '/w/index.php').extend({
title: 'Special:CX',
page: mw.config.get('wgPageName'),
from: 'en',
to: 'fa',
targettitle: $('.tofawiki-name', dialogContent).val().replace(/_/g, '+').replace(/ي/g, 'ی').replace(/ك/g, 'ک'),
withJS: 'MediaWiki:EnableCX.js'
}));
}
});
}
 
mw.loader.using(['oojs-ui']).then(function () {
showDialog(dialogContent, actions);
});
 
isAllowedToUseTofawikiConsole().then(function (allowed) {
if (allowed) {
$('.tofawiki-consolelink', dialogContent).show();
}
});
});
});