Jump to navigation
Jump to search
m (strip some more characters from achievement names) |
m (last character, hopefully) |
||
Line 139: | Line 139: | ||
while (startPos != 1) { | while (startPos != 1) { | ||
endPos = txtarea.value.search(/[^\n] /g) + 1 - startPos; | endPos = txtarea.value.search(/[^\n] /g) + 1 - startPos; | ||
aName = txtarea.value.substr(startPos, endPos).replace(/([\|\?#!%\.,=])/g,''); | aName = txtarea.value.substr(startPos, endPos).replace(/([\|\?#!%\.,=…])/g,''); | ||
endLine = txtarea.value.substr(startPos + 2, txtarea.value.length).search(/\n/g) + startPos + 2; | endLine = txtarea.value.substr(startPos + 2, txtarea.value.length).search(/\n/g) + startPos + 2; | ||
aDesc = txtarea.value.substr(endLine + 1, txtarea.value.substr(endLine + 1,txtarea.value.length).search(/\n/g)); | aDesc = txtarea.value.substr(endLine + 1, txtarea.value.substr(endLine + 1,txtarea.value.length).search(/\n/g)); |
Revision as of 16:57, 12 January 2010
//Common library functions used by many of the scripts below
importScript('User:Ryan Schmidt/Scripts/library.js');
//Find and replace script
//by Zocky
importScript('User:Ryan Schmidt/Scripts/SearchBox.js');
/**
* AJAX patrol feature version 1.1
* by Ryan Schmidt < http://strategywiki.org/wiki/User:Ryan_Schmidt >
*/
/*
* CONFIGURATION
* You may set whether or not to automatically browse to the next diff
* By placing the following BEFORE the importScript() call:
* var AjaxPatrolAutoNext = true;
*/
var AjaxPatrolAutoNext = true;
AjaxPatrol = new function() {
this.setup = function() {
var links = getElementsByClassName(document, 'span', 'patrollink');
for(var i=0; i<links.length; i++) {
addClickHandler(links[i].getElementsByTagName('a')[0], function(e) { AjaxPatrol.patrol(e); });
}
};
this.patrol = function(e) {
var a = e.target || e.srcElement;
var next;
var ajax = this.ajaxRequest();
if(ajax) {
ajax.onreadystatechange = function() {
if(ajax.readyState == 4) {
if(AjaxPatrolAutoNext && (next = document.getElementById('differences-nextlink'))) {
window.location = next.href;
} else {
document.getElementById('mw-diff-ntitle4').style.display="none";
}
}
};
ajax.open('GET', a.href, true);
ajax.send(null);
e.preventDefault();
}
};
this.ajaxRequest = function() {
var ret = false;
try {
ret = new XMLHttpRequest();
} catch(e) {
try {
ret = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
try {
ret = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {
return false;
}
}
}
return ret;
};
}();
addOnloadHook(function() {
if(typeof AjaxPatrolAutoNext == 'undefined') {
AjaxPatrolAutoNext = false;
}
AjaxPatrol.setup();
});
/* Adding cleanup button */
addOnloadHook( function() {
addPersonalItem('cleanup', '/wiki/StrategyWiki:Cleanup project/Daily tasks', 'Cleanup', 'preferences');
});
/* Add source URL to summary when uploading from URL */
if (wgPageName == "Special:Upload") {
addOnloadHook(get_URL);
}
function get_URL() {
var URL_form=document.getElementById('wpUploadFileURL');
addHandler(URL_form, 'change', insert_URL);
}
function insert_URL(event) {
var URL = document.getElementById('wpUploadFileURL').value;
var summary = document.getElementById('wpUploadDescription');
var re = /\[http.*? Source URL\]/;
if(summary.value.match(re)) {
summary.value = summary.value.replace(re, '[' + URL + ' Source URL]');
} else {
summary.value = summary.value + '\n\n[' + URL + ' Source URL]';
}
}
/*** ACHIEVEMENTS QUICK-FORMATTING ***/
/* Note: this script only works */
/* with achievements from */
/* xbox360achievements.org. */
/*************************************/
if (wgAction == 'edit') {
addOnloadHook(addFormatAchievementsButton);
};
function addFormatAchievementsButton() {
var image = document.createElement('img');
image.width = 23;
image.height = 22;
image.className = 'mw-toolbar-editbutton';
image.id = 'format-achievements-button';
image.src = 'http://media.strategywiki.org/images/b/b2/Achievement_unlocked.png';
image.border = 0;
image.title = 'Format achievements';
image.style.cursor = 'pointer';
image.onclick = function() {
formatAchievements();
return false;
};
document.getElementById('toolbar').appendChild(image);
return false;
}
function formatAchievements() {
var txtarea = document.editform.wpTextbox1;
if (txtarea.value != '') {
var endPos;
var endLine;
var endLine2;
var aName;
var aDesc;
var startPos = txtarea.value.search(/\n /g) + 2;
while (startPos != 1) {
endPos = txtarea.value.search(/[^\n] /g) + 1 - startPos;
aName = txtarea.value.substr(startPos, endPos).replace(/([\|\?#!%\.,=…])/g,'');
endLine = txtarea.value.substr(startPos + 2, txtarea.value.length).search(/\n/g) + startPos + 2;
aDesc = txtarea.value.substr(endLine + 1, txtarea.value.substr(endLine + 1,txtarea.value.length).search(/\n/g));
txtarea.value = txtarea.value.substr(0, endLine).replace(/\n /g, '\n| [[Image:**NAME** ' + aName + ' achievement.jpg]] || ') + txtarea.value.substr(endLine, txtarea.value.length);
txtarea.value = txtarea.value.substr(0, txtarea.value.search(/ /g)) + ' || ' + aDesc + ' || {{G|' + txtarea.value.substr(txtarea.value.search(/ /g) + 1, txtarea.value.length);
endLine = txtarea.value.substr(startPos + 2, txtarea.value.length).search(/\n/g) + startPos + 2;
endLine2 = txtarea.value.substr(endLine + 1,txtarea.value.length).search(/\n/g) + endLine + 1;
txtarea.value = txtarea.value.substr(0, endLine) + '}}\n|-' + txtarea.value.substr(endLine2, txtarea.value.length);
startPos = txtarea.value.search(/\n /g) + 2;
};
alert('Done.');
};
}
/*** END - ACHIEVEMENTS QUICK-FORMATTING ***/