User:Chairboy/blockhelper.greasemonkey.js

Blockhelper is a Greasemonkey script for administrators to make it easy to specify a block reason that is comprehensive and explanatory. It adds a menu to the left of the block UI with some common (and easily modified) block reasons. When you select them, it populates the block reason field with an indepth explanation behind the specific blocking policy that was executed. User blocks already suck, no sense adding insult to injury by leaving no explanation in the logs other than "user...." To use, you must have Greasemonkey installed (or perhaps you can modify your monobook.js, let me know how that works out). Just copy and past the code below into a file named 'blockhelper.user.js' and drag it into your browser. Greasemonkey will install it, and each subsequent visit to the block page will have the new menu in place. // Block helper script // Make block reasons a teensy bit easier to specify and a lotta bit easier to understand // 2006-12-20 // Licensed GFDL, see gpl.org // Ben Hallert // // ==UserScript== // @name       WikiBlock helper // @namespace  http://hallert.net/ // @description Provide a dropdown menu of block criteria in userblock pages on Wikipedia. Admins only. // @include    http://en.wikipedia.org/* // ==/UserScript==

if (document.getElementById('blockip')) {       var parent_form = document.getElementById('blockip'); var par        = document.getElementsByName('wpBlockReason')[0]; var newhelper  = document.createElement('select'); par.setAttribute('size','100'); newhelper.setAttribute('id','blockhelper'); newhelper.setAttribute('onChange','document.getElementsByName(\'wpBlockReason\')[0].value = document.getElementById(\'blockhelper\').value;'); newhelper.innerHTML = "Block Reasons " + "Personal attacks " + "Physical threats " + "Personal info " + "Persistent copyvio " + "--- " + "General disruption " + "Disruptive sock " + "Bad username " + "--- " + "Bannination " + "Block evasion " + "Range block ";

if(parent_form) {		//If it finds the 'blockip' form var firsttable	= parent_form.getElementsByTagName('table')[0]; if(firsttable) {			var firsttbody	= firsttable.getElementsByTagName('tbody')[0]; if(firsttbody) {				var firstrow	= firsttbody.getElementsByTagName('tr')[0]; if(firstrow) {					var newcell	= firstrow.insertCell(0); newcell.setAttribute('rowspan','8'); newcell.appendChild(newhelper); newhelper.setAttribute('size','13') }			}		}	}

} void 0