MediaWiki:Gadget-properties.js
Revisión del 09:07 9 abr 2014 de Bth0 (discusión | contribuciones) (Página creada con «( function ( mw, $ ) { var i18nData = { 'en': { 'PropertyTool-box-title': 'Array Properties', 'PropertyTool-box-warning': 'This tool only set request for bot and ...»)
( 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 ) );