User:AlanM1/common.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
The accompanying .css page for this skin is at User:AlanM1/common.css. |
// Load RefLinks
mw.loader.load( 'https://meta.wikimedia.org/w/index.php?title=User:Zhaofeng_Li/Reflinks.js&action=raw&ctype=text/javascript' );
mw.loader.load( '/w/index.php?title=User:AlanM1/scripts/CharHexDump.js&action=raw&ctype=text/javascript' );
mw.loader.load( '/w/index.php?title=User:PrimeHunter/Source_links.js&action=raw&ctype=text/javascript' ); // Linkback: [[User:PrimeHunter/Source links.js]]
// Per [[:mw:User:PerfektesChaos/js/resultListSort]] :
mw.loader.load('https://www.mediawiki.org/w/index.php?title=User:PerfektesChaos/js/resultListSort/r.js&action=raw&bcache=1&maxage=86400&ctype=text/javascript');
window.catALotPrefs = { editpages: true };
mw.loader.load( 'https://commons.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Cat-a-lot.js' );
mw.loader.load( 'https://commons.wikimedia.org/w/index.php?action=raw&ctype=text/css&title=MediaWiki:Gadget-Cat-a-lot.css', 'text/css' );
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:AlanM1/scripts/hideHotcatMarkers.js' ); // Linkback: [[User:AlanM1/scripts/hideHotcatMarkers.js]]
// AutoEd stuff
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:AlanM1/autoEdLoader.js' ); // Linkback: [[User:AlanM1/autoEdLoader.js]]
LinkClassifierOnDemand = true;
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:Anomie/linkclassifier.js' ); // Linkback: [[User:Anomie/linkclassifier.js]]
mw.loader.load( '/w/index.php?action=raw&ctype=text/css&title=User:Anomie/linkclassifier.css', 'text/css' ); // Linkback: [[User:Anomie/linkclassifier.css]]
$( function () {
mw.util.addPortletLink('p-cactions', 'javascript:LinkClassifier.onDemand()', 'linkclassifier');
});
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:DannyS712/Easy-link.js' );// [[User:DannyS712/Easy-link.js]]
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:DannyS712/Readonly.js' );// [[User:DannyS712/Readonly.js]]
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:DannyS712/Redirectify.js' );// [[User:DannyS712/Redirectify.js]]
var myLintHints = { };
myLintHints.rooms = "*";
mw.hook("lintHint.config").fire(myLintHints);
mw.loader.load( '/w/index.php?title=User:PerfektesChaos/js/lintHint/r.js&action=raw&maxage=86400&ctype=text/javascript');// [[User:PerfektesChaos/js/lintHint/r.js]]
mw.loader.load( '/w/index.php?title=User:Writ Keeper/Scripts/teahouseUtility.js&action=raw&ctype=text/javascript');// [[User:Writ Keeper/Scripts/teahouseUtility.js]]
function setoptions() {
}
function setreason() {
}
/*
function regex(search,replace,repeat) {
var editbox = $('#wpTextbox1');
if(!repeat || repeat<0) {
var repeat = 1;
}
var text = editbox.val();
for(var i=0; i<repeat; i++) {
text = text.replace(search,replace);
}
editbox.val(text);
};
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:Ohconfucius/script/formatgeneral.js' ); // [[User:Ohconfucius/script/formatgeneral.js]]
*/
/* 20191028
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:Ohconfucius/test/formatgeneral.js' ); // [[User:Ohconfucius/script/formatgeneral.js]]
This is the source of these errors:
Content Security Policy: The page’s settings observed the loading of a resource at https://tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js (“script-src”). A CSP report is being sent.
Content Security Policy: The page’s settings observed the loading of a resource at https://tools-static.wmflabs.org/meta/scripts/pathoschild.util.js (“script-src”). A CSP report is being sent.
20191028 */
// Per [[WP:LOCO]]
LocalComments = {
dateDifference: true,
dateFormat: 'ymd',
timeFirst: false,
twentyFourHours: true,
dayOfWeek: true,
dropDays: 0,
dropMonths: 0,
dropOffset: 1,
diffLast: true
};
// Per [[Wikipedia:RefToolbar/2.0]]
$('head').one('reftoolbarbase', function() {
var nIndex = -1;
CiteTB.UserOptions['date format'] = "<monthname> <date>, <year>";
CiteTB.UserOptions['autodate fields'] = ['access-date'];
CiteTB.UserOptions['modal'] = false;
// Add oclc to cite book
if (CiteTB.Templates["cite book"]) {
console.log("*** cite book found");
CiteTB.Templates["cite book"]["basic"].push({"field":"oclc", "autofillid":"oclc", "autofillprop":"oclc"});
}
else {
console.log("*** cite book NOT found");
}
// Move cite web date field from extra to basic
if (CiteTB.Templates["cite web"]) {
nIndex = CiteTB.Templates["cite web"]["extra"].findIndex(function(t) { return (t.field === "date"); });
if (nIndex >= 0) {
if (CiteTB.Templates["cite web"]["basic"].push(CiteTB.Templates["cite web"]["extra"][nIndex])) {
CiteTB.Templates["cite web"]["extra"].splice(nIndex, 1);
}
// else ?
}
// else ?
}
// Add volume to cite news
if (CiteTB.Templates["cite news"]) {
nIndex = CiteTB.Templates["cite news"]["basic"].findIndex(function(t) { return (t.field === "issue"); });
if (nIndex >= 0) {
CiteTB.Templates["cite news"]["basic"].splice(nIndex, 0, {"field": "volume", "autofillprop":"volume"});
}
}
});
/*
Don't submit when hitting enter in the summary field
From [[User:Anomie/nosubmitsummary.js]]
*/
$(document).ready(function(){
$('input#wpSummary').keypress(function(e){
if(e.which==13) e.preventDefault();
});
// Example of how to change one of the pt- portlet links
// Maybe add &title=Special%3AContributions
//$('#pt-mycontris a')[0].href += '?namespace=2&wpfilters%5B%5D=nsInvert';
// Per [[WP:LOCO]]
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:AlanM1/comments in local time.js' ); // [[User:AlanM1/comments in local time.js]] based on [[User:Gary/comments in local time.js]]
});
mw.loader.load( '/w/index.php?action=raw&ctype=text/javascript&title=User:Anomie/unsignedhelper.js'); // Linkback: [[User:Anomie/unsignedhelper.js]]
// NavPops config per [[WP:POP#Options]]
window.popupOnlyArticleLinks = false;
window.popupInitialWidth = 350;
window.popupMaxWidth = 700;
window.popupTocLinks = true;
window.popupHistoryPreviewLimit = 100;
window.popupContribsPreviewLimit = 100;
window.popupPreviewKillTemplates = false;
window.popupPreviewFirstParOnly = false;
window.popupMaxPreviewSentences = 1000;
window.popupMaxPreviewCharacters = 2000;
window.popupSimplifyMainLink = false;
window.popupImageSize = 120;
window.popupDiffMaxLines = 500;
window.popupDiffContextLines = 3;
window.popupDiffContextCharacters = 100;
window.popupThumbAction = "sizetoggle";
function am1SecNavInsert() {
aElems = Array.from(document.getElementsByClassName("mw-editsection"));
aTitles = Array.from(document.getElementsByClassName("mw-headline"));
var lastElemNum = aElems.length - 1;
if (lastElemNum >= 0) {
var lastId = '#' + aTitles[lastElemNum].id;
for (i = 0; i <= lastElemNum; i++) {
if (aElems[i].firstChild.className === "mw-editsection-bracket") {
var span = document.createElement('span');
span.id = "am1-secnav" + i;
span.appendChild(document.createTextNode(i + ': '));
if (i > 0) {
var link = document.createElement('a');
link.href = '#top';
link.appendChild(document.createTextNode('↑↑top'));
span.appendChild(document.createTextNode('['));
span.appendChild(link);
span.appendChild(document.createTextNode('] '));
var linku = document.createElement('a');
linku.href = '#' + aTitles[i - 1].id;
linku.appendChild(document.createTextNode('↑up'));
span.appendChild(document.createTextNode('['));
span.appendChild(linku);
span.appendChild(document.createTextNode('] '));
}
if (i < lastElemNum) {
var linkd = document.createElement('a');
linkd.href = '#' + aTitles[(i) ? (i + 1) : 0].id;
linkd.appendChild(document.createTextNode('↓down'));
span.appendChild(document.createTextNode('['));
span.appendChild(linkd);
span.appendChild(document.createTextNode('] '));
var linke = document.createElement('a');
linke.href = lastId;
linke.appendChild(document.createTextNode('↓↓end'));
span.appendChild(document.createTextNode('['));
span.appendChild(linke);
span.appendChild(document.createTextNode('] '));
}
aElems[i].insertBefore(span, aElems[i].firstChild);
}
}
}
}
$( function() { am1SecNavInsert(); });
function getTimeOffset() {
var tz = mw.user.options.get('timecorrection');
console.log('\ntimecorrection: ' + tz + '\n');
if(tz) {
if( tz.indexOf('|') > -1 ) {
// New format
return parseInt(tz.split('|')[1],10);
} else if ( tz.indexOf(':') > -1 ) {
// Old format
return( parseInt(tz,10)*60 + parseInt(tz.split(':')[1],10) );
}
}
return 0;
}
function reAssignLKey() {
// Steal Alt-Shift-L hotkey from Watchlist for Easy Link
// console.log("Watchlist accesskey before: '" + $("#pt-watchlist")[0].firstChild.accessKey + "'");
var wl = $("#pt-watchlist")[0];
if(wl)wl.firstChild.accessKey = "";
// console.log("Watchlist accesskey after: '" + $("#pt-watchlist")[0].firstChild.accessKey + "'");
// console.log("EasyLink accesskey before: '" + $("#ca-copy-link")[0].firstChild.accessKey + "'");
$("#ca-copy-link")[0].firstChild.accessKey = "l";
// console.log("EasyLink accesskey after: '" + $("#ca-copy-link")[0].firstChild.accessKey + "'");
}
$.when( mw.loader.using( ['mediawiki.util'] ), $.ready ).done( function() {
mw.util.addPortletLink(
'p-personal',
'javascript:void(0)',
'Skip to bottom',
'pt-skiptobottom',
'Instantly skip to the bottom of the page',
null,
'#pt-preferences'
);
mw.util.addPortletLink(
'p-personal',
'javascript:void(0)',
'HideAll',
'pt-hideall',
'Hide all shown collapsibles',
null,
'#pt-skiptobottom'
);
mw.util.addPortletLink(
'p-personal',
'javascript:void(0)',
'ShowAll',
'pt-showall',
'Show all hidden collapsibles',
'a',
'#pt-hideall'
);
$('#pt-skiptobottom').on('click', function() {
var scrollingElement = (document.scrollingElement || document.body);
scrollingElement.scrollTop = scrollingElement.scrollHeight;
});
function clickAll(sClass, sValue) {
// console.log("In clickAll('" + sClass + "', '" + sValue + "')");
var nCount = 0;
Array.from(document.getElementsByClassName(sClass)).forEach(function(xItem) {
// console.log(sClass + ": id='" + xItem.offsetParent.lastChild.id + "', innerHTML='" + xItem.innerHTML + "'");
if (xItem.innerHTML === sValue) {
xItem.click();
++nCount;
}
});
return nCount;
}
$('#pt-showall').on('click', function(e) {
e.preventDefault();
clickAll("NavToggle", "[show]");
clickAll("mw-collapsible-text", "show");
var nLoops = 0;
while (clickAll("CategoryTreeToggle", "►") > 0 && ++nLoops <= 10);
$('#pt-showall')[0].firstChild.accessKey = "";
$('#pt-hideall')[0].firstChild.accessKey = "a";
});
$('#pt-hideall').on('click', function(e) {
e.preventDefault();
clickAll("NavToggle", "[hide]");
clickAll("mw-collapsible-text", "hide");
var nLoops = 0;
while (clickAll("CategoryTreeToggle", "▼") > 0 && ++nLoops <= 10);
$('#pt-hideall')[0].firstChild.accessKey = "";
$('#pt-showall')[0].firstChild.accessKey = "a";
});
// am1SecNavInsert();
// This is ugly, but put it inline or in other ready()s and the ca-copy-link isn't there yet.
// Probably need to just fork the script that adds it to provide the key (though when will the
// pt-watchlist be ready? Can I wait on it efficiently?)
window.setTimeout(reAssignLKey, 2000);
});