MediaWiki:AdoptionForm.js

//Creates modal forms for use on w:Adoption:Requests and w:Project:Interlanguage link requests //Author: @Prince(ss) Platinum /* Special thanks to TK-999 for helping with the i18n stuff and a special thanks to the Wikia Language Brigade for localizing the script. */

(function ($, mw) {   // Make the languages organised please!    var i18n = {        'CA': {            adopt_name: 'Nom del wiki:',            adopt_url: 'URL completa del wiki per adoptar:',            adopt_edits: 'Nombre d\'edicions que has fet al wiki:',            adopt_contribute: 'Quant de temps has estat contribuint activament al wiki:',            adopt_sysop: 'Qui va ser l\'últim administrador que va editar i quan:',            adopt_info: 'Més informació:',            inter_info: ' Com: Per afegir una soŀlicitud de dos wikis junts amb aquest formulari has d\'utilitzar la sintaxi següent:  firstwiki -> secondwiki  Si vols enllaçar http://community.wikia.com amb http://de.community.wikia.com has de fer servir el codi següent en l\'àrea de text següent:  community -> de.community  Per enviar múltiples soŀlicituds d\'enllaç alhora, posa cada codi en una nova línia, com per exemple:  community -> de.community community -> pl.community   Wikis per enllaçar: ', button_text: 'Crea una nova soŀlicitud', success: 'Soŀlicitud creada!', error: 'Error en enviar, intenta-ho de nou més tard.' },           'DE': { adopt_name: 'Name des Wikis:', adopt_url: 'Vollständige URL zum Wiki angeben:', adopt_edits: 'Wie viele Bearbeitungen hast du in diesem Wiki vorgenommen?', adopt_contribute: 'Wie lange bist du schon in diesem Wiki aktiv?', adopt_sysop: 'Welcher war der letzte aktive Admin, und wann hat er das letzte Mal bearbeitet?', adopt_info: 'Weitere Informationen:', inter_info: ' Anleitung: Um eine Interwikianfrage hinzuzufügen, benutze folgendes Schema: erstesWiki -> zweitesWiki  Wenn du also http://community.wikia.com mit http://de.community.wikia.com verlinken möchtest, schreibe folgendes:  community -> de.community  Um mehrere Anfragen gleichzeitig zu stellen, verwende eine neue Zeile, also so:   community -> de.community community -> pl.community   Verlinke diese Wikis: ', button_text: 'Neue Anfrage stellen', success: 'Anfrage erfolgreich gestellt!', error: 'Es ist ein Fehler aufgetreten. Bitte versuche es nochmal.' },           'EN': { adopt_name: 'Name of wiki:', adopt_url: 'Full URL of wiki to adopt:', adopt_edits: 'Number of edits you have made on the wiki:', adopt_contribute: 'How long have you been actively contributing to the wiki:', adopt_sysop: 'Who was the last admin to edit and when:', adopt_info: 'Other information:', inter_info: ' How to: To add a request to link two wikis together using this form you must use the following syntax: firstwiki -> secondwiki  If you want to link http://community.wikia.com to http://de.community.wikia.com you would use the following code in the textarea below:  community -> de.community  To submit multiple link requests at once put each code on a new line like such:  community -> de.community community -> pl.community   Wikis to link: ', button_text: 'Create new request', success: 'Request successfully created!', error: 'Error while sending, try again soon.' },           'ES': { adopt_name: 'Nombre del wiki:', adopt_url: 'URL completa del wiki para adoptar:', adopt_edits: 'Número de ediciones que has hecho en el wiki:', adopt_contribute: 'Cuánto tiempo has estado contribuyendo activamente en el wiki:', adopt_sysop: 'Quién fue el último administrador que editó y cuando:', adopt_info: 'Más información:', inter_info: ' Como: Para agregar una solicitud de dos wikis juntos con este formulario debes utilizar la siguiente sintaxis: firstwiki -> secondwiki  Si quieres enlazar http://community.wikia.com con http://de.community.wikia.com debes usar el código siguiente en el área de texto siguiente:  community -> de.community  Para enviar múltiples solicitudes de enlace a la vez, pon cada código en una nueva línea, como por ejemplo:  community -> de.community community -> pl.community   Wikis para enlazar: ', button_text: 'Crear una nueva solicitud', success: '¡Solicitud creada!', error: 'Error al enviar, inténtalo de nuevo más tarde.' },           'FR': { adopt_name: 'Nom du wiki :', adopt_url: 'URL complète du wiki que vous souhaitez adopter :', adopt_edits: 'Nombre de modifications que vous avez effectuées sur ce wiki :', adopt_contribute: 'Depuis combien de temps contribuez-vous activement sur le wiki :', adopt_sysop: 'Qui est le dernier administrateur à avoir effectué une modification et quand :', adopt_info: 'Autres informations', inter_info: ' Comment : demander à lier deux wikis ensemble en utilisant ce formulaire vous devez utiliser la syntaxe suivante : premierwiki -> deuxiemewiki  Si vous souhaitez lier http://community.wikia.com</a> à http://de.community.wikia.com</a> utilisez le code suivant dans la zone de texte ci-dessous :  community -> de.community  demander plusieurs liens en une fois, placez chaque code sur une ligne à part comme ceci :  community -> de.community community -> pl.community   Wikis à lier : ', button_text: 'Créer une nouvelle demande', success: 'Demande créée avec succès !', error: 'Erreur lors de l\'envoi, réessayez plus tard.' },           'IT': { adopt_name: 'Nome della wiki:', adopt_url: 'URL completo della wiki da adottare:', adopt_edits: 'Numero di modifiche che hai eseguito nella wiki:', adopt_contribute: 'Da quanto stai contribuendo attivamente alla wiki:', adopt_sysop: 'Chi era l\'ultimo admin a modificare e quando:', adopt_info: 'Altre informazioni:', inter_info: ' Come: Per aggiungere un link a due richieste di due wiki insieme, devi usare la seguente sintassi: primawiki -> secondawiki  Se vuoi collegare http://community.wikia.com</a> a http://de.community.wikia.com</a> useresti il seguente codice nell\'area testo sotto::  community -> de.community  Per immettere più richieste di collegamento alla volta mettere ogni codice in una nuova linea come sotto eseguito:  community -> de.community community -> pl.community   Wikis to link: ', button_text: 'Crea nuova richiesta', success: 'Richiesta creata con successo!', error: 'Errore durante l\'invio, riprovare più tardi.' },           'MS': { adopt_name: 'Nama wiki:', adopt_url: 'Laman penuh (URL) wiki yang ingin diambil alih:', adopt_edits: 'Jumlah suntingan yang telah anda membuat:', adopt_contribute: 'Tempoh anda telah menyumbang kepada wiki ini:', adopt_sysop: 'Nama dan tarikh suntingan admin yang terakhir:', adopt_info: 'Maklumat tambahan:', inter_info: ' Caranya: Jika anda ingin meminta pautan antara dua wiki berbahasa lain menggunakan borang ini, and haruslah menggunakan sintaks awalan URL sebelum wikia.com: wikipertama -> wikikedua  Contohnya, untuk memaut http://community.wikia.com</a> kepada http://de.community.wikia.com</a> anda harus mengisi ruang di bawah ini seperti berikut:  community -> de.community  Untuk membuat dua permintaan atau lebih sekaligus, tambahkan satu barisan bagi setiap permintaan yang berbeza:  community -> de.community community -> pl.community   Wiki untuk dipaut: ', button_text: 'Hantar permintaan', success: 'Permintaan berjaya dihantar!', error: 'Permintaan gagal dihantar, sila cuba lagi seketika nanti.' },           'PL': { adopt_name: 'Nazwa wiki:', adopt_url: 'Pełny adres URL dla wiki do adopcji:', adopt_edits: 'Liczba Twoich edycji na tej wiki:', adopt_contribute: 'Jak długo aktywnie edytujesz tę wiki:', adopt_sysop: 'Kto był ostatnim administratorem i kiedy edytował:', adopt_info: 'Pozostałe informacje:', inter_info: ' Jak?: Aby dodać wniosek, zalinkuj dwie wiki za pomocą tego formularza, używając następującej składni: pierwszawiki -> drugawiki  Jeżeli chcesz połączyć http://community.wikia.com</a> z http://de.community.wikia.com</a> musisz użyć następującego kodu w polu poniżej:  community -> de.community  Aby przesłać wiele wniosków nas raz, umieść każdy kod w nowej linii:  community -> de.community community -> pl.community   Wiki do zalinkowania: ', button_text: 'Utwórz nowy wniosek', success: 'Wniosek pomyślnie utworzony!', error: 'Błąd podczas wysyłania, spróbuj ponownie.' },           'PT': { adopt_name: 'Nome do wiki:', adopt_url: 'URL completa do wiki para adoptar:', adopt_edits: 'Número de edições que fizeste no wiki:', adopt_contribute: 'Quanto tempo tens estado a contribuir ativamente no wiki:', adopt_sysop: 'Quem foi o último administrador que editou e quando:', adopt_info: 'Mais informação:', inter_info: ' Como: Para agregar um pedido de dois wikis juntos com este formulário deves utilizar a seguinte sintaxe: firstwiki -> secondwiki  Se queres enlaçar http://community.wikia.com</a> com http://de.community.wikia.com</a> deves usar o código seguinte na área de texto seguinte:  community -> de.community  Para enviar múltiplos pedidos de enlace ao mesmo tempo, põe cada código numa nova linha, como por exemplo:  community -> de.community community -> pl.community   Wikis para enlaçar: ', button_text: 'Crear um novo pedido', success: 'O teu pedido foi criado!', error: 'Erro ao enviar, tenta-o de novo mais tarde.' },           'TL': { adopt_name: 'Pangalan ng wiki:', adopt_url: 'Buong URL ng wiki na i-aampon:', adopt_edits: 'Bilang ng edit na ginawa mo sa wiki:', adopt_contribute: 'Gaano katagal kang aktibong tumutulong sa wiki:', adopt_sysop: 'Sino yung huling administrador na nag-edit at kailan:', adopt_info: 'Iba pang impormasyon:', inter_info: ' Paano: Para makagawa ng kahilingan na gawing isa ang dalawang wiki na gamit ang paraan na ito kailangan mong gawin ang sumusunod na palaugnayan: unangwiki -> ikalawangwiki  Kung gusto mo i-link http://community.wikia.com</a> to http://de.community.wikia.com</a> maaaring gamitin ang sumusunod na code sa textarea sa baba:  community -> de.community  Para magsumite ng maraming link request ng isahan ilagay ang code sa bagong linya na parang:  community -> de.community community -> pl.community   Wiki na ililink: ', button_text: 'Gumawa ng bagong kahilingan', success: 'Matagumpay na nakagawa ng kahilingan!', error: 'Nagkaroon ng kamalian habang nagpapadala, subukin ulit mamaya.' }   };

//Language variable and the modal HTML to use var lang = mw.config.get('wgUserLanguage').toUpperCase, wgUsername = mw.config.get('wgUserName'), adoption_modal = '<form class="WikiaForm" method="" name=""> ' + i18n[lang].adopt_name + ' <input type="text" id="cc-form-name" style="width: 500px;" placeholder="Community Central" /> ' + i18n[lang].adopt_url + ' <input type="text" id="cc-adopt-url" style="width: 500px;" placeholder="http://c.wikia.com"/> ' + i18n[lang].adopt_edits + ' <input type="text" id="cc-adopt-edits" style="width: 500px;" placeholder="0"/> ' + i18n[lang].adopt_contribute + ' <input type="text" id="cc-adopt-duration" style="width: 500px;" placeholder="30 Days"/> ' + i18n[lang].adopt_sysop + ' <input type="text" id="cc-adopt-admin" style="width: 500px;" placeholder="Jonnie, February 7, 1527"/> ' + i18n[lang].adopt_info + ' <textarea rows="10" cols="75" id="cc-adopt-other" placeholder="...">   ', link_modal = '<form class="WikiaForm" method="" name=""> ' + i18n[lang].inter_info + ' <textarea rows="10" cols="81" id="cc-adopt-other" placeholder="community -> de.communty">  ', signature =  + ;

//Simple snippet to decide whether or not the user is on the right page and acts on the results

/****************************************************   # This will only alter the existing form if the user # is using the wikia skin and will leave monobook # operations unhindered. *****************************************************/

if (mw.config.get('skin') == "oasis" || mw.config.get('skin') == 'wikia') { if (mw.config.get('wgPageName') === "Adoption:Requests") { var node = document.createElement('a'); node.textContent = i18n[lang].button_text; node.className = 'wikia-button'; node.id = 'cc-form-open'; node.addEventListener('click', function {                generateForm(adoption_modal, 1);            }); $('div.createbox').html(node); }       /* else if (mw.config.get('wgPageName') === "Community_Central:Interlanguage_link_requests") { var node = document.createElement('a'); node.textContent = 'Create new request'; node.className = 'wikia-button'; node.id = 'cc-form-open'; node.addEventListener('click', function {                    generateForm(link_modal, 2);                }); $('div.createbox').html($(node)); }*/   }

/******************************************************   # param html: HTML to populate the form with. # param number: Which function to call on button press. *******************************************************/

function generateForm(html, number) { $.showCustomModal('Create Request', html, {           id: 'cc-form',            width: 650, //A way to add percentages would be great!            buttons: [{                id: 'cc-form-cancel',                message: 'Cancel',                handler: function  {                    $('#cc-form').closeModal;                }            }, {                id: 'cc-form-submit',                defaultButton: true,                message: 'Submit',                handler: function  {                    if (number === 1) {                        adoption;                    } else if (number === 2) {                        interLink;                    } else {                        return;                    }                }            }]        }); }

//Gathers data from form and puts it together

function adoption { var url = document.getElementById("cc-adopt-url").value || 'null', wiki_name = document.getElementById("cc-form-name").value || 'null', user_edits = document.getElementById("cc-adopt-edits").value || 'null', days_contributed = document.getElementById("cc-adopt-duration").value || 'null', last_sysop = document.getElementById("cc-adopt-admin").value || 'null', other_info = document.getElementById("cc-adopt-other").value || 'null'; if (url == 'null' || wiki_name == 'null') { alert('Please ensure the url and wiki name fields are filled out.'); } else { var form = '<div class=\"forumheader\">Adoption requests \'\'\'→\'\'\' ' + '\n\n' + '\'\'\'Username:\'\'\'\n'		+ wgUsername		+ '\n\n' + '\'\'\'Wiki URL:\'\'\'\n' + url + '\n\n' + '\'\'\'Current edit count:\'\'\'\n' + user_edits + '\n\n' + '\'\'\'How long I have edited there:\'\'\'\n' + days_contributed + '\n\n' + '\'\'\'Last admin to edit and when:\'\'\'\n' + last_sysop + '\n\n' + '\'\'\'Other information:\'\'\'\n' + other_info + '\n\n' +  + 'Category:Adoption requests' + ; postToApi(true, 'Adoption: ' + wiki_name, form, wiki_name); }   }

//Gathers data from form and put's it together

function interLink {}

/*************************************************************   # param isAdoption: true for adoption, false for language link # param page: page to edit/create # param text: text to add/create with **************************************************************/

function postToApi(isAdoption, page, text, wiki) { if (isAdoption === true) { $.ajax({               url: mw.util.wikiScript('api'),                data: {                    format: 'json',                    action: 'edit',                    title: page,                    summary: 'New adoption request',                    text: text,                    createonly: true,                    token: mw.user.tokens.values.editToken                },                dataType: 'json',                type: 'POST',                success: function (data) {                    if (data && data.edit && data.edit.result == 'Success') {                        $('#cc-form').closeModal;                        $.showCustomModal("Success", ' ' + i18n[lang].success + ' ', { id: 'cc-result', width: 300, //A way to add percentages would be great! buttons: [{ id: 'cc-result-cancel', defaultButton: true, message: 'Close', handler: function { $('#cc-result').closeModal; }                           }]                        });                    } else if (data && data.error) {                        $('#cc-form').closeModal;                        $.showCustomModal("Error", ' ' + i18n[lang].error + '

Error: ' + data.error.info + '.

Please add a number inside of parenthesis when trying again like so: ' + wiki + ' (2) ', { id: 'cc-result', width: 300, //A way to add percentages would be great! buttons: [{ id: 'cc-result-cancel', defaultButton: true, message: 'Close', handler: function { $('#cc-result').closeModal; }                           }]                        });                    } else {                        $('#cc-form').closeModal;                        $.showCustomModal("Error", ' ' + i18n[lang].error + ' ', { id: 'cc-result', width: 300, //A way to add percentages would be great! buttons: [{ id: 'cc-result-cancel', defaultButton: true, message: 'Close', handler: function { $('#cc-result').closeModal; }                           }]                        });                    }                },                error: function (xhr) {                    generateResult('Error', i18n[lang].error);                    $.showCustomModal("Error", ' ' + i18n[lang].error + ' ', { id: 'cc-result', width: 300, //A way to add percentages would be great! buttons: [{ id: 'cc-result-cancel', defaultButton: true, message: 'Close', handler: function { $('#cc-result').closeModal; }                       }]                    });                }            });        }        /*else if (isAdoption === false) { $.post('/api.php', {               action: 'edit',                title: mw.config.get('wgPageName'),                text: text,                summary: 'Adding new link request (script generated)',                token: mw.user.tokens.values.editToken            }).done(function  {                generateResult('Success', i18n[lang].success);                $('#cc-form').closeModal;            }).fail(function  {                generateResult('Error', i18n[lang].error);                $('#cc-form').closeModal;            }); }*/       else { return; } } }(jQuery, mediaWiki));