View text source at Wikipedia
$(function($) {
var namespaceNumber = mw.config.get('wgNamespaceNumber');
var isCorrectNamespace = namespaceNumber === 0 || namespaceNumber === 2 || namespaceNumber === 118;
if (!isCorrectNamespace) {
return;
}
mw.loader.using('mediawiki.util').then(function() {
if ($('table.infobox.biota').length // Taxonbox
&&
$('table.infobox.biota .genus').length // Species
&&
($('table.infobox.biota img[src$=Red_Pencil_Icon\\.png]').length == 0)) { // No red pencil
var portletlink = mw.util.addPortletLink('p-tb', '#', 'Taxoboxalyzer', 'ca-taxoboxalyzer');
$(portletlink).click(function(e) {
e.preventDefault();
var tx_server = typeof window.taxoboxalyzer_server == 'undefined' ?
'https://taxoboxalyzer.toolforge.org' :
window.taxoboxalyzer_server
window.location.assign(tx_server + '/form/' + encodeURIComponent(mw.config.get('wgPageName')));
return true;
});
}
if (!(typeof window.taxoboxalyzer_testserver == 'undefined')) {
var testportletlink = mw.util.addPortletLink('p-tb', '#', 'Taxoboxalyzer-test', 'ca-taxoboxalyzer-test');
$(testportletlink).click(function(e) {
e.preventDefault();
window.location.assign(window.taxoboxalyzer_testserver + '/form/' + encodeURIComponent(mw.config.get('wgPageName')));
return true;
});
var testportletlink2 = mw.util.addPortletLink('p-tb', '#', 'Taxoboxalyzer-test-ajax', 'ca-taxoboxalyzer-test-ajax', 'Test using local server');
$(testportletlink2).click(function(e) {
e.preventDefault();
var dataelem = {}
if ($('#wpTextbox1').length) {
dataelem['wpTextbox1'] = $('#wpTextbox1').val()
$('#wpTextbox1').prop('disabled', true)
}
if ($('#wpSummary').length) {
dataelem['wpSummary'] = $('#wpSummary').val()
$('#wpSummary').prop('disabled', true)
}
$.ajax({
type: Object.keys(dataelem).length === 0 ? 'GET' : 'POST',
url: window.taxoboxalyzer_testserver + '/json/' + encodeURIComponent(mw.config.get('wgPageName')),
dataType: 'json',
error: ( jqXHR, textStatus, errorThrown ) => {
alert(textStatus + ':' + errorThrown)
},
success: (obj) => {
if (Object.keys(dataelem).length === 0) {
$('body').append(
'<form id="tbxlzr" method="post" action="https://en.wikipedia.org/w/index.php?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=submit">' +
'<textarea style="display:none;" name="wpTextbox1"></textarea>' +
'<input type="hidden" name="wpAutoSummary" value="fakehash">' +
'<input type="hidden" name="wpSummary" value="">' +
'<input type="hidden" name="wpStarttime" value="startTime">' +
'<input type="hidden" name="wpEdittime" value="editTime">' +
'<input type="hidden" name="wpDiff" value="Show changes">' +
'<input type="hidden" name="wpUltimateParam" value="1">' +
'<input id="tbxlzrsmit" type="submit" value="View differences in editor" style="display:none;"/>' +
'</form>')
$('form#tbxlzr [name=wpTextbox1]').text(obj['newtext'])
$('form#tbxlzr [name=wpSummary]').val(obj['edit_summary'])
$('#tbxlzrsmit').click();
} else {
$('#wpTextbox1').val(obj['newtext'])
$('#wpSummary').val(obj['edit_summary'])
$('#wpTextbox1').prop('disabled', false)
$('#wpSummary').prop('disabled', false)
}
},
data: dataelem
});
return dataelem == {};
});
}
});
});