importScript('User:Mr.Z-man/rollbackSummary.js');
importScript('User:Voice_of_All/Addtabs/monobook.js');
importScript('User:Misza13/statusChanger.js');
importScript('User:AzaToth/twinkle.js');
importScript('User:Ioeth/friendly.js');
// [[User:Henrik/live-edit-counter]]
importScript('User:Henrik/js/live-edit-counter.js');
//<pre><nowiki>
importScript('User:Voice of All/Addtabs/monobook.js');
var WindowObjectReference;
function openTab(url) {
WindowObjectReference = window.open(url, "_blank", "");
}
// Section organizer for ANI {{{
if (mw.config.get('wgPageName') == "Wikipedia:Administrators\'_noticeboard/Incidents" && mw.config.get('wgAction') == "view") {
addOnloadHook(function ani_sections() {
var headers = document.getElementsByTagName('H2');
for(var i=1;i<headers.length;i++) {
// starting from 1, to skip the toc header.
var section = document.createElement("DIV");
section.className = "sectionContainer";
var anchor = headers[i].previousSibling;
while(anchor.nodeType != 1) anchor = anchor.previousSibling;
headers[i].parentNode.insertBefore(section,headers[i]);
section.appendChild(anchor);
section.appendChild(headers[i]);
var innerSection = document.createElement("DIV");
innerSection.className = "sectionContentHolder";
section.appendChild(innerSection);
while(section.nextSibling && section.nextSibling.tagName != 'H2' && section.nextSibling.id != 'catlinks') {
// look ahead
var anchorcheck = section.nextSibling.nextSibling;
while(anchorcheck && anchorcheck.nodeType!=1) anchorcheck = anchorcheck.nextSibling;
if(anchorcheck && anchorcheck.tagName == 'H2') break;
innerSection.appendChild(section.nextSibling);
}
var ntimestamps = 0;
// evil evil hack
var lastTimestamp = new Date(0);
var lastTimestampText = '(No Timestamp)';
innerSection.textContent.replace(/[0-9][0-9]:[0-9][0-9], [0-3]?[0-9] [A-Z][a-z]* [0-9][0-9][0-9][0-9]/g,function(match) {
var thisTimestamp = new Date(match);
if(thisTimestamp.valueOf() > lastTimestamp.valueOf()) {
lastTimestamp = thisTimestamp;
lastTimestampText = match;
}
ntimestamps++;
});
// was done incorrrectly in local time, convert from UTC
lastTimestamp.setMinutes(
lastTimestamp.getMinutes()-lastTimestamp.getTimezoneOffset()
);
var age = (new Date()).getTime() - lastTimestamp.getTime();
var hideDefault = false;
if (age > 21600000) // 6 hours
hideDefault = true;
if(innerSection.textContent.length < 600) // bytes
hideDefault = false; // no reason to hide in this case
if(ntimestamps < 2) // unanswered
hideDefault = false;
// hide if resolved, also, place the resolved header in the visible part.
var resolved = getElementsByClassName(innerSection,'DIV','resolved');
if(resolved.length) {
resolved = resolved[0];
// [1] to skip an annoying whitespace node
if (resolved != innerSection.firstChild && resolved != innerSection.childNodes[1]) resolved = resolved.cloneNode(true);
section.insertBefore(resolved,innerSection);
hideDefault = true;
}
section.insertBefore(document.createTextNode('Last: ' + lastTimestampText + ". "),innerSection);
section.insertBefore(document.createTextNode(innerSection.textContent.length + " text bytes. "),innerSection);
section.insertBefore(document.createTextNode(ntimestamps + " comments. "),innerSection);
(function ani_sections_closure(){
var header = headers[i];
var innerSectionFix = innerSection;
var button = document.createElement('BUTTON');
if(hideDefault)
button.textContent = 'show';
else
button.textContent = 'hide';
button.onclick = function ani_sections_onclick() {
if(innerSectionFix.style.display == 'none') {
innerSectionFix.style.display = 'block';
this.textContent = 'hide'; }
else {
innerSectionFix.style.display = 'none';
this.textContent = 'show'; }
}
header.insertBefore(button,header.firstChild);
button.style.cssText='float: right';
if(hideDefault) innerSection.style.display='none';
})();
}
});
}
// [[User:Random832]] script for finding "resolved" tags. {{{
// semi-experimental, not yet adapted for anything but ANI.
if (mw.config.get('wgPageName') == "Wikipedia:Administrators\'_noticeboard/Incidents" && mw.config.get('wgAction') == "view") {
addOnloadHook(function ANI_toc_hook(){
var sections = $('toc').getElementsByTagName("li");
for(var i=0;i<sections.length;i++) {
try {
var link = sections[i].firstChild;
var target=document.getElementsByName(link.hash.slice(1))[0];
var next = target.parentNode.nextSibling;
// discard text nodes
while(next.nodeType != 1) next = next.nextSibling;
// now we have the header, now skip another
if(next.tagName != "H2") { continue; }
next = next.nextSibling;
while(next.nodeType != 1) next = next.nextSibling;
if ((/\bresolved\b/.test(next.className))) {
//resolved
sections[i].className = "ani_resolved"
sections[i].style.fontStyle = 'italic'
//sections[i].appendChild(document.createTextNode("resolved"))
} else {
//not resolved
sections[i].className = "ani_unresolved"
sections[i].style.fontWeight = 'bold'
}
// BUG: chokes on sections beginning with a digit
// (anchor has name instead of id).
} catch(x) {
if(window.console) //firebug
console.log("caught %o",x);
}//end try
}//end for
});//end onloadhook function
}//end if WP:ANI
// }}}
// Edit summary check {{{
addOnSubmitValidator(function() {
var editsummary = document.getElementById('wpSummary').value;
if( /^\/\*.*\*\/\s*$/.test(editsummary)) editsummary = ''
if(!editsummary) return confirm("Submit this edit without an edit summary?");
else return true;
});
// }}} */
*/
// Adapted from:
//http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/Scripts/Force_edit_summary
// The original value of the edit summary field is stored here
var editsummOriginalSummary = new String();
// A global ref to the dropdown with canned edit summaries
var editsummDropdown = null;
function editsummInitialize()
{
// Save the original value of the edit summary field
editsummOriginalSummary = document.forms.editform.wpSummary.value;
// For convenience, add a dropdown box with some canned edit
// summaries to the form.
var dropdown = document.createElement("select");
dropdown.onchange = new Function("editsummOnCannedSummarySelected()");
editsummAddOptionToDropdown(dropdown,"");
editsummAddOptionToDropdown(dropdown,"add categories");
editsummAddOptionToDropdown(dropdown,"add category");
editsummAddOptionToDropdown(dropdown,"add citation");
editsummAddOptionToDropdown(dropdown,"add external link");
editsummAddOptionToDropdown(dropdown,"add internal link");
editsummAddOptionToDropdown(dropdown,"add quotation");
editsummAddOptionToDropdown(dropdown,"add ref");
editsummAddOptionToDropdown(dropdown,"add section");
editsummAddOptionToDropdown(dropdown,"create redirect page");
editsummAddOptionToDropdown(dropdown,"create stub article");
editsummAddOptionToDropdown(dropdown,"delete external link");
editsummAddOptionToDropdown(dropdown,"delete internal link");
editsummAddOptionToDropdown(dropdown,"delete section");
editsummAddOptionToDropdown(dropdown,"fix broken link");
editsummAddOptionToDropdown(dropdown,"fix case");
editsummAddOptionToDropdown(dropdown,"fix grammar");
editsummAddOptionToDropdown(dropdown,"fix punctuation");
editsummAddOptionToDropdown(dropdown,"fix quote marks");
editsummAddOptionToDropdown(dropdown,"fix spelling");
editsummAddOptionToDropdown(dropdown,"indent");
editsummAddOptionToDropdown(dropdown,"make existing text into link (wikify)");
editsummAddOptionToDropdown(dropdown,"make link into plain text (dewikify)");
editsummAddOptionToDropdown(dropdown,"move section");
editsummAddOptionToDropdown(dropdown,"move unrefd material to talk page");
editsummAddOptionToDropdown(dropdown,"new article");
editsummAddOptionToDropdown(dropdown,"remove repetition");
editsummAddOptionToDropdown(dropdown,"reorder links");
editsummAddOptionToDropdown(dropdown,"sectioning");
editsummAddOptionToDropdown(dropdown,"start article");
var insertBeforeThis = document.forms.editform.wpSummary.nextSibling;
var theParent = insertBeforeThis.parentNode;
theParent.insertBefore(dropdown,insertBeforeThis);
// Store a global ref to it
editsummDropdown = dropdown;
}
function editsummAddOptionToDropdown(dropdown,optionText)
{
var option = document.createElement("option");
var optionTextNode = document.createTextNode(optionText);
option.appendChild(optionTextNode);
dropdown.appendChild(option);
}
// There's a cross-browser issue when accessing the selected text:
// *In Firefox you can use: selectObj.value
// *In IE, you have to use: selectObj.options[selectObj.selectedIndex].text
// *The latter method also works in Firefox
function editsummOnCannedSummarySelected()
{
var idx = editsummDropdown.selectedIndex;
var canned = editsummDropdown.options[idx].text;
var newSummary = editsummOriginalSummary;
if (newSummary.length!=0) newSummary += " - ";
newSummary += canned;
document.forms.editform.wpSummary.value = newSummary;
}