User:Emperor Jarjarkine/Report.js

/** * autocvu.js * * Adds a "report" link to page histories and diffs for quickly reporting a vandal to the CVU. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ $(document).ready(function {	function makeLink(user) {		var a = document.createElement('a');		a.href = wgScript + '?title=The Elder Scrolls Wiki:Vandalism in progress&action=edit&section=1&cvuEditor=' + encodeURIComponent(user) + '&cvuPage=' + encodeURIComponent(wgPageName);		a.title = 'Report this edit to the CVU.';		a.appendChild(document.createTextNode('report'));		return a;	}	// http://www.netlobo.com/url_query_string_javascript.html	function getParam(name) {		name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');		var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); 		var results = regex.exec(window.location.href);		if (results == null) {			return '';		} else {			return decodeURIComponent(results[0].replace(/\+/g, '%20'));		}	}	var cvuEditor = getParam('cvuEditor');	var cvuPage = getParam('cvuPage');	if (wgAction == 'rollback') {		var page = document.getElementById('bodyContent'); var p = document.createElement('p'); p.style.fontWeight = 'bold'; p.appendChild(document.createTextNode('You can ')); p.appendChild(makeLink(getParam('from'))); p.appendChild(document.createTextNode(' this user to the CVU.')); page.insertBefore(p, page.firstChild); } else if (wgAction == 'history') { var list = document.getElementById('pagehistory'); var items = list.getElementsByTagName('li'); for (i = 0; i < items.length; i++) { var user = getElementsByClassName(items[i], 'a', 'mw-userlink')[0].innerHTML; var undo = getElementsByClassName(items[i], 'span', 'mw-history-undo')[0]; if (undo) { undo.appendChild(document.createTextNode(' | ')); undo.appendChild(makeLink(user)); } else { items[i].appendChild(document.createTextNode(' ('));				items[i].appendChild(makeLink(user));				items[i].appendChild(document.createTextNode(')')); }		}	} else if (wgAction == 'view' && getParam('diff')) { var user = getElementsByClassName(document.getElementById('mw-diff-ntitle2'), 'a', 'mw-userlink')[0].innerHTML; var undo = document.getElementById('mw-diff-ntitle1').firstChild; undo.appendChild(document.createTextNode(' ('));		undo.appendChild(makeLink(user));		undo.appendChild(document.createTextNode(')')); } else if (wgAction == 'edit' && cvuEditor && cvuPage) { var lineSep = (navigator.appVersion.indexOf('MSIE') != -1) ? '\r\n' : '\n'; var obj = document.getElementById('wpTextbox1'); var tpl = '{' + '{cvu|' + cvuEditor + '|' + cvuPage.replace(/_/g, ' ') + '}' + '}\n'; var pos1, pos2; var rteEnabled = (typeof(window.RTEInstanceId) != 'undefined'); obj.value = obj.value.replace( + lineSep, ); if (rteEnabled) { pos1 = obj.value.indexOf('type="comment" />' + lineSep + ' '); } else { pos1 = obj.value.indexOf('-->'); }		if (pos1 == -1) { alert('.'); return; }		if (rteEnabled) { pos2 = obj.value.indexOf('<img', pos1); } else { pos2 = obj.value.indexOf('{{cvuid', pos1); }		if (pos2 == -1) { alert('Auto CVU was unable to find the template insertion point.'); return; }		obj.value = obj.value.substring(0, pos2) + tpl + obj.value.substring(pos2); document.getElementById('wpSummary').value += ' Reported using Auto CVU'; if (window.autoCvuSubmit) { $('#wpSave').click; // Not submit; needed to fire events for RTE }	} });