( function ( mw, $ ) {
var i18nData = {
'en': {
'PropertyTool-box-title': 'Array Properties',
'PropertyTool-box-warning': 'This tool only set request for bot and after request review it will be done!',
'PropertyTool-box-lang': 'Language: ',
'PropertyTool-box-source': 'Source: Input Category or Template that you want to select items by.',
'PropertyTool-box-category': 'Category of wiki pages (items): ',
'PropertyTool-box-template': 'Template which wiki pages (items) use: ',
'PropertyTool-box-pn': 'Property which should be copied: ',
'PropertyTool-box-item': 'The item which the property Should be Linked to: ',
'PropertyTool-box-ignoreprefix': 'Ignore prefix word: ',
'PropertyTool-box-ignore': 'Ignore article(s): ',
'PropertyTool-box-create': 'Create: ',
'PropertyTool-box-recursion': 'Recursion: ',
'PropertyTool-success': 'Request is Reported successfully!',
'PropertyTool-Error': 'Unknown Error!',
'PropertyTool-warning-sitebox': 'You should Input prefix of a Wikipedia language site!',
'PropertyTool-warning-sourcebox': 'You should Input Category or Template that you want to refer!',
'PropertyTool-warning-pnbox': 'You should Input correct Property Link!',
'PropertyTool-warning-itembox': 'You should Input correct Item Link!',
'PropertyTool-send': 'Send request',
'PropertyTool-reset': 'Reset'
},
'ar': {
'PropertyTool-box-title': 'نسخ الخاصیات',
'PropertyTool-box-warning': 'هذه الأداة لإرسال الطلب فقط. ستقوم البوتات بتنفيذ الطلب بعد تأييد الإداريون !',
'PropertyTool-box-lang': 'اللغة: ',
'PropertyTool-box-source': 'المصدر : إدخل القالب أو التصنيف الذي تريد تحديد الصفحاب حسبه.',
'PropertyTool-box-category': 'التصنيف الذي يحتوي على الصفحات: ',
'PropertyTool-box-template': 'القالب الذي يحتوي على الصفحات: ',
'PropertyTool-box-pn': 'الخاصية التي يجب نسخها: ',
'PropertyTool-box-item': 'الصفة التي ينبغي ربط الخاصية إليها: ',
'PropertyTool-box-ignoreprefix': 'إستثناء بداية الكلمة: ',
'PropertyTool-box-ignore': 'الإستثناءات: ',
'PropertyTool-box-create': 'إنشاء: ',
'PropertyTool-box-recursion': 'عدد الصفحات: ',
'PropertyTool-success': 'تم ارسال الطلب بنجاح!',
'PropertyTool-Error': 'خطأ غير معروف!',
'PropertyTool-warning-sitebox': 'يجب عليك إدخال الرمز الخاص بلغتك (ar للعربية)',
'PropertyTool-warning-sourcebox': 'يجب عليك إدخال التصنيف أو القالب الذي تريد أن تشير اليه!',
'PropertyTool-warning-pnbox': 'يجب عليك إدخال رابط الصحيح للخاصية!',
'PropertyTool-warning-itembox': 'يجب عليك إدخال رابط الصحيح للصفة!',
'PropertyTool-send': 'ارسال الطلب',
'PropertyTool-reset': 'تفريغ الإستمارة'
},
'es': {
'PropertyTool-box-title': 'Organizar las propiedades',
'PropertyTool-box-warning': 'Esta herramienta unicamente realiza la solicitud al bot. ¡No ocurrirá nada hasta que se revise la solicitud!',
'PropertyTool-box-lang': 'Idioma: ',
'PropertyTool-box-source': 'Fuente: Introduce la categoría o la plantilla desde la que quieres seleccionar los elementos',
'PropertyTool-box-category': 'Categoría de las páginas wiki (elementos): ',
'PropertyTool-box-template': 'Plantilla que utilizan las páginas wiki (elementos): ',
'PropertyTool-box-pn': 'Propiedad a copiar: ',
'PropertyTool-box-item': 'El elemento al que debería enlazar la propiedad: ',
'PropertyTool-box-ignoreprefix': 'Ignorar el prefijo: ',
'PropertyTool-box-ignore': 'Ignorar el(los) artículo(s): ',
'PropertyTool-box-create': 'Crear: ',
'PropertyTool-box-recursion': 'Recursividad: ',
'PropertyTool-success': '¡La solicitud se envió correctamente!',
'PropertyTool-Error': '¡Error desconocido!',
'PropertyTool-warning-sitebox': '¡Es necesario introducir el prefijo del idioma de una Wikipedia!',
'PropertyTool-warning-sourcebox': '¡Es necesario la categoría o la plantilla sobre la que realizar la solicitud!',
'PropertyTool-warning-pnbox': '¡Es necesario introducir un propiedad de elemento correcto!',
'PropertyTool-warning-itembox': '¡Es necesario introducir un enlace de elemento correcto!',
'PropertyTool-send': 'Enviar la solicitud',
'PropertyTool-reset': 'Restablecer'
},
'fa': {
'PropertyTool-box-title': 'تکثیر خصوصیات',
'PropertyTool-box-warning': 'این ابزار فقط برای درخواست است. پس از بررسی درخواست توسط مدیران، ربات آن را اجرا خواهد کرد!',
'PropertyTool-box-lang': 'زبان: ',
'PropertyTool-box-source': 'منبع:به عنوان منبع رده یا الگوی مورد نظرتان را وارد کنید.',
'PropertyTool-box-category': 'ردهای که صفحات ویکی (آیتمها) در آن هستند: ',
'PropertyTool-box-template': 'الگویی که صفحات ویکی (آیتمها) از آن استفاده میکنند: ',
'PropertyTool-box-pn': 'خصوصیتی که باید تکثیر شود: ',
'PropertyTool-box-item': 'آیتمی که خصوصیت باید به آن پیوند دهد: ',
'PropertyTool-box-ignoreprefix': 'استثنای ابتدای عبارت: ',
'PropertyTool-box-ignore': 'استثناها: ',
'PropertyTool-box-create': 'ایجاد: ',
'PropertyTool-box-recursion': 'تعداد زیر رده: ',
'PropertyTool-success': 'درخواست با موفقیت انجام شد!',
'PropertyTool-Error': 'خطای نامعلوم!',
'PropertyTool-warning-sitebox': 'باید کد ویکیپدیای مورد نظرتان را وارد کنید',
'PropertyTool-warning-sourcebox': 'باید رده یا الگوی مورد نظرتان را وارد کنید!',
'PropertyTool-warning-pnbox': 'باید پیوند درست به خصوصیت مورد نظرتان را وارد کنید!',
'PropertyTool-warning-itembox': 'باید پیوند درست به آیتم خصوصیت مورد نظرتان را وارد کنید!',
'PropertyTool-send': 'درخواست تکثیر',
'PropertyTool-reset': 'خالی کردن فرم'
},
'gl': {
'PropertyTool-box-title': 'Organizar as propiedades',
'PropertyTool-box-warning': 'Esta ferramenta unicamente realiza a solicitude ao bot. Non acontecerá nada ata que se revise a solicitude!',
'PropertyTool-box-lang': 'Lingua: ',
'PropertyTool-box-source': 'Fonte: Introduza a categoría ou o modelo desde o que quere seleccionar os elementos.',
'PropertyTool-box-category': 'Categoría das páxinas wiki (elementos): ',
'PropertyTool-box-template': 'Modelo que utilizan as páxinas wiki (elementos): ',
'PropertyTool-box-pn': 'Propiedade a copiar: ',
'PropertyTool-box-item': 'O elemento ao que debería ligar a propiedade: ',
'PropertyTool-box-ignoreprefix': 'Ignorar o prefixo: ',
'PropertyTool-box-ignore': 'Ignorar o(s) artigo(s): ',
'PropertyTool-box-create': 'Crear: ',
'PropertyTool-box-recursion': 'Recursividade: ',
'PropertyTool-success': 'A solicitude enviouse correctamente!',
'PropertyTool-Error': 'Erro descoñecido!',
'PropertyTool-warning-sitebox': 'Cómpre introducir o prefixo de lingua dunha Wikipedia!',
'PropertyTool-warning-sourcebox': 'Cómpre introducir a categoría ou o modelo sobre o que realizar a solicitude!',
'PropertyTool-warning-pnbox': 'Cómpre introducir unha ligazón de propiedade correcta!',
'PropertyTool-warning-itembox': 'Cómpre introducir unha ligazón de elemento correcta!',
'PropertyTool-send': 'Enviar a solicitude',
'PropertyTool-reset': 'Restablecer'
},
'id': {
'PropertyTool-box-title': 'Ragam Properti',
'PropertyTool-box-warning': 'Alat ini hanya melakukan permintaan pada bot dan setelah ditinjau, permintaan akan dilaksanakan!',
'PropertyTool-box-lang': 'Bahasa: ',
'PropertyTool-box-source': 'Sumber: Masukkan Kategori atau Templat yang berkaitan dengan item.',
'PropertyTool-box-category': 'Kategori pada halaman wiki (item): ',
'PropertyTool-box-template': 'Templat yang digunakan (items): ',
'PropertyTool-box-pn': 'Properti yang harus dicopy: ',
'PropertyTool-box-item': 'Item yang harus terkait pada properti: ',
'PropertyTool-box-ignoreprefix': 'Abaikan awalan: ',
'PropertyTool-box-ignore': 'Abaikan artikel: ',
'PropertyTool-box-create': 'Buat: ',
'PropertyTool-box-recursion': 'Rekursi: ',
'PropertyTool-success': 'Permintaan berhasil!',
'PropertyTool-Error': 'Error!',
'PropertyTool-warning-sitebox': 'Anda harus masukkan kode bahasa untuk wiki yang dimaksud!',
'PropertyTool-warning-sourcebox': 'Anda harus masukkan kategori atau templat yang ingin dirujuk!',
'PropertyTool-warning-pnbox': 'Anda harus masukkan Properti yang benar!',
'PropertyTool-warning-itembox': 'Anda harus masukkan Item yang benar!',
'PropertyTool-send': 'Kirim permintaan',
'PropertyTool-reset': 'Reset'
},
'min': {
'PropertyTool-box-title': 'Ragam Properti',
'PropertyTool-box-warning': 'Alaik ko hanyo malakuan pamintaan pado bot dan satalah ditinjau, pamintaan dilaksanakan!',
'PropertyTool-box-lang': 'Bahaso: ',
'PropertyTool-box-source': 'Sumber: Masuakan Kategori atau Templat nan takaik jo item.',
'PropertyTool-box-category': 'Kategori pado laman wiki (item): ',
'PropertyTool-box-template': 'Templat nan digunoan (items): ',
'PropertyTool-box-pn': 'Properti nan ka dicopy: ',
'PropertyTool-box-item': 'Item nan ka takaik jo properti: ',
'PropertyTool-box-ignoreprefix': 'Abaikan awalan: ',
'PropertyTool-box-ignore': 'Abaikan artikel: ',
'PropertyTool-box-create': 'Buek: ',
'PropertyTool-box-recursion': 'Rekursi: ',
'PropertyTool-success': 'Pamintaan sukses!',
'PropertyTool-Error': 'Error!',
'PropertyTool-warning-sitebox': 'Sanak musti masuakan kode bahaso untuak wiki nan dimakasuik!',
'PropertyTool-warning-sourcebox': 'Sanak musti masuakan kategori atau templat nan nio dirujuak!',
'PropertyTool-warning-pnbox': 'Sanak musti masuakan Properti nan batua!',
'PropertyTool-warning-itembox': 'Sanak musti masuakan Item nan batua!',
'PropertyTool-send': 'Kirim pamintaan',
'PropertyTool-reset': 'Reset'
},
'mk': {
'PropertyTool-box-title': 'Организирање на својства',
'PropertyTool-box-warning': 'Алаткава поднесува барање до бот, и истото се извршува по негово разгледување!',
'PropertyTool-box-lang': 'Јазик: ',
'PropertyTool-box-source': 'Извор: Внесете категорија или шаблон според кој(а) сакате да изберете предмети.',
'PropertyTool-box-category': 'Категорија на викистраниците (предметите): ',
'PropertyTool-box-template': 'Шаблон што го користат викистраниците (предметите): ',
'PropertyTool-box-pn': 'Својство што треба да се копира: ',
'PropertyTool-box-item': 'Со кој предмет да се врзе својството: ',
'PropertyTool-box-ignoreprefix': 'Занемари го префиксот: ',
'PropertyTool-box-ignore': 'Занемари статии: ',
'PropertyTool-box-create': 'Создај: ',
'PropertyTool-box-recursion': 'Јавувања: ',
'PropertyTool-success': 'Барањето е успешно поднесено!',
'PropertyTool-Error': 'Непозната грешка!',
'PropertyTool-warning-sitebox': 'Треба да внесете префикс на вики!',
'PropertyTool-warning-sourcebox': 'Треба да внесете категорија или шаблон што сакате да ја/го повикате!',
'PropertyTool-warning-pnbox': 'Внесете исправна врска за својството!',
'PropertyTool-warning-itembox': 'Внесете исправна врска за предметот!',
'PropertyTool-send': 'Поднеси',
'PropertyTool-reset': 'Одново'
},
};
var lang, parts = mw.user.options.get( 'language' ).split("-");
/*
if ( parts[1]=='hans' || parts[1]=='cn' || parts[1]=='sg' || parts[1]=='my' ) {
lang = 'zh-hans';
} else if ( parts[1]=='hant' || parts[1]=='hk' || parts[1]=='tw' || parts[1]=='mo' ) {
lang = 'zh-hant';
} else */
if ( i18nData[parts[0]] ) {
lang = parts[0];
} else {
lang = 'en';
}
/**
* Return the localized version of a message
*/
function i18n( key ) {
if ( i18nData[ lang ][ key ] ) {
return i18nData[ lang ][ key ];
} else {
return i18nData[ 'en' ][ key ];
}
}
/**
* Create the dialog and add a link in toolBox
*/
function init() {
mw.loader.using( ['jquery.ui.dialog'], function () {
var formFind = '<div id="PropertyTool" title="' + i18n( 'PropertyTool-box-title' ) + '"><form>';
formFind += '<p>' + i18n( 'PropertyTool-box-warning' ) + '</p>';
formFind += '<p>' + i18n( 'PropertyTool-box-lang' ) + ' <input type="text" id="langbox" size="9" value="' + lang + '"/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-source' ) + '</p>';
formFind += '<p>' + i18n( 'PropertyTool-box-category' ) + ' <input type="text" id="catbox" size="20" value="Category:" /></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-template' ) + ' <input type="text" id="tempbox" size="20" value="Template:"/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-pn' ) + ' <input type="text" id="pnbox" size="5" value="P"/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-item' ) + ' <input type="text" id="itembox" size="8" value="Q"/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-ignoreprefix' ) + ' <input type="text" id="prefixbox" size="9" value=""/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-ignore' ) + ' <input type="text" id="ignobox1" size="9" value=""/>,<input type="text" id="ignobox2" size="9" value=""/>,<input type="text" id="ignobox3" size="9" value=""/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-create' ) + ' <input type="text" id="createbox" size="4" value=""/></p>';
formFind += '<p>' + i18n( 'PropertyTool-box-recursion' ) + ' <input type="text" id="recurbox" size="3" value=""/></p>';
formFind += '</form></div>';
var messageFind = $( formFind ).appendTo( '#content' );
messageFind.dialog( {
autoOpen: false,
modal: true,
width: 600,
buttons: [ {
id: 'PropertyTool-button-import',
text: i18n( 'PropertyTool-send' ),
click: function () {
work();
}
}/*,
{
id: 'PropertyTool-button-reset',
text: i18n( 'PropertyTool-reset' ),
click: function () {
document.getElementById("pnbox").value='P';
document.getElementById("itembox").value='Q';
document.getElementById("prefixbox").value=lang;
document.getElementById("ignobox1").value='';
document.getElementById("ignobox2").value='';
document.getElementById("ignobox3").value='';
document.getElementById("createbox").value='';
document.getElementById("recurbox").value='';
}*/ ]
} );
var PorpertyToolLink = mw.util.addPortletLink( 'p-tb', '#', i18n( 'PropertyTool-box-title' ), 't-PropertyTool', i18n( 'PropertyTool-box-title' ) );
$( PorpertyToolLink ).click( show );
} );
}
/**
* Show the dialog
*/
function show() {
$( 'div#PropertyTool' ).dialog( 'open' );
}
function work() {
var sourcebox, langbox=document.getElementById("langbox").value;
var catbox = document.getElementById("catbox").value;
var tempbox = document.getElementById("tempbox").value;
if ( catbox != "Category:" && catbox ) {
sourcebox = catbox;
sourcebox = sourcebox.replace(/Category\:/g, '');
sourcebox = sourcebox.replace(/category\:/g, '');
sourcebox = 'Category:' + sourcebox;
}
if ( tempbox != 'Template:' && tempbox ) {
sourcebox = tempbox;
sourcebox = sourcebox.replace(/Template\:/g, '');
sourcebox = sourcebox.replace(/template\:/g, '');
sourcebox = 'Template:' + sourcebox;
}
var pnbox = document.getElementById("pnbox").value;
var itembox = document.getElementById("itembox").value;
var RequsterUser = mw.config.get('wgUserName');
var prefixbox = document.getElementById("prefixbox").value;
var ignobox1 = document.getElementById("ignobox1").value;
if ( document.getElementById("ignobox2").value ) { ignobox1 += ',' + document.getElementById("ignobox2").value; }
if ( document.getElementById("ignobox3").value ) { ignobox1 += ',' + document.getElementById("ignobox3").value; }
var createbox = document.getElementById("createbox").value;
var recurbox = document.getElementById("recurbox").value;
if ( ! langbox ) {
alert( i18n( 'PropertyTool-warning-sitebox' ) );
return;
}
if ( ! sourcebox ) {
alert( i18n( 'PropertyTool-warning-sourcebox' ) );
return;
}
if ( ! ( pnbox != 'P' && pnbox != '' ) ) {
alert( i18n( 'PropertyTool-warning-pnbox' ) );
return;
}
if ( ! ( itembox != 'Q' && itembox != '' ) ) {
alert( i18n( 'PropertyTool-warning-itembox' ) );
return;
}
var requestTemplate = '\n{{User:Legobot/properties.js/row|' + langbox + '|' + sourcebox + '|' + pnbox + '|' + itembox + '|' + RequsterUser;
if ( prefixbox ) {
requestTemplate += '|ignoreprefix=' + prefixbox;
}
if ( ignobox1 ) {
requestTemplate += '|ignore=' + ignobox1;
}
if ( createbox ) {
requestTemplate += '|create=' + createbox;
}
if ( recurbox ) {
requestTemplate += '|recursion=' + recurbox;
}
requestTemplate += '}}';
//prompt(requestTemplate);
addRequest(
requestTemplate,
function () {
mw.notify( i18n( 'PropertyTool-success' ) );
},
'Add a property Array Request'
);
$( 'div#PropertyTool' ).dialog( 'close' );
}
function onError() {
mw.notify( i18n( 'PropertyTool-Error' ) );
}
/**
* Add new error request.
*/
function addRequest( entity, success, reason ) {
var title = 'User_talk:Legobot/properties.js/requests';
$.ajax( {
type: 'POST',
url: mw.util.wikiScript( 'api' ),
data: {
'format': 'json',
'action': 'edit',
'title': title,
'summary': reason,
'appendtext': entity,
'token': mw.user.tokens.get( 'editToken' )
},
success: function ( data ) {
if ( data.error && data.error.info ) {
onError();
} else {
success();
}
},
error: function () {
onError();
}
} );
}
$( document ).ready( init );
} ( mediaWiki, jQuery ) );