Jump to content

User:Zackmann08/common.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
function waitForElement(selector) {
  return new Promise(resolve => {
    // Check if it already exists
    const element = document.querySelector(selector);
    if (element) {
      return resolve(element);
    }

    // Observe changes if it doesn't exist yet
    const observer = new MutationObserver(mutations => {
      const element = document.querySelector(selector);
      if (element) {
        resolve(element);
        observer.disconnect(); // Stop observing once found
      }
    });

    observer.observe(document.body, {
      childList: true,
      subtree: true
    });
  });
}

// Globals
LiveClockTimeZone = 'local';
window.LiveClockAMPM = true;

// Keep this incase my version malfunctions
// mw.loader.load('/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript');
importScript('User:Enterprisey/sync-template-sandbox.js'); // Backlink: [[User:Enterprisey/sync-template-sandbox.js]]
ConfirmRollback = "confirm";
importScript('User:Mr. Stradivarius/gadgets/ConfirmRollback.js'); // Backlink: [[User:Mr. Stradivarius/gadgets/ConfirmRollback.js]]
importScript('User:DaxServer/DiscussionCloser-new.js'); // Backlink: [[User:DaxServer/DiscussionCloser-new.js]]
importScript('User:Terasail/Edit Request Tool.js'); // Backlink: [[User:Terasail/Edit Request Tool.js]]
importScript('User:Novem Linguae/Scripts/ReFillLink.js'); // Backlink: [[User:Novem Linguae/Scripts/ReFillLink.js]]
importScript('User:Jackmcbarn/editProtectedHelper.js'); // Backlink: [[User:Jackmcbarn/editProtectedHelper.js]]
importScript('User:The Earwig/copyvios.js'); // Backlink: [[User:The Earwig/copyvios.js]]
importScript('User:Þjarkur/CleanDiffURLs.js'); // Backlink: [[User:Þjarkur/CleanDiffURLs.js]]
importScript('User:PrimeHunter/My subpages.js'); // Backlink: [[User:PrimeHunter/My subpages.js]]
importScript('User:AntiCompositeNumber/hideEmpty.js'); // Backlink: [[User:AntiCompositeNumber/hideEmpty.js]]
importScript('User:Frietjes/findargdups.js'); // Backlink: [[User:Frietjes/findargdups.js]]
(async () => {
	await waitForElement('#t-fdup');
	document.getElementById("t-fdup").accessKey='d';
})();
importScript('User:Writ Keeper/Scripts/massRollback.js'); // Backlink: [[User:Writ Keeper/Scripts/massRollback.js]]
importScript('User:Frietjes/infoboxgap.js'); // Backlink: [[User:Frietjes/infoboxgap.js]]
importScript('User:Nardog/CopyCodeBlock.js'); // Backlink: [[User:Nardog/CopyCodeBlock.js]]
importScript('User:Galobtter/Shortdesc helper.js'); // Backlink: [[User:Galobtter/Shortdesc helper.js]]
importScript('User:Enterprisey/reply-link.js'); // Backlink: [[User:Enterprisey/reply-link.js]]
importScript('User:Ahecht/Scripts/refresh.js'); // Backlink: [[User:Ahecht/Scripts/refresh.js]]
importScript('User:Elli/OneClickArchiver.js'); // Backlink: [[User:Elli/OneClickArchiver.js]]
/*
 * Automatically tick the "Move subpages" option when moving pages.
 */
var moveSubpagesBox = document.getElementsByName("wpMovesubpages")[0];
if (moveSubpagesBox !== undefined) {
  moveSubpagesBox.checked = true;
}

// Alt + O clicks the "Show Diff" button
document.onkeyup = function(e) {
  if (e.altKey && e.which == 79) {
  	document.getElementById('wpDiff').click();
  }
};

// By default leave redirect unchecked when moving
$("#wpLeaveRedirect input").prop("checked", false);

$.when( mw.loader.using( ['mediawiki.util'] ), $.ready ).done( function() {
  mw.util.addPortletLink(
    'p-personal',
    mw.util.getUrl( 'User:Zackmann08/Notes' ),
    'Notes',
    'pt-mynotes',
    'Show your notes',
    null,
    '#pt-preferences'
  );
});

// Move logout 
if(document.getElementById('coll-download-as-rl')){
	document.getElementById('coll-download-as-rl').parentElement.prepend(document.getElementById('pt-logout'));	
} else {
	(async () => {
		await waitForElement("#pt-logout");
		document.getElementById('pt-logout').remove();
	})();
}

(async () => {
	var watchlist = await waitForElement('#pt-watchlist');
	watchlist.querySelector('a').removeAttribute('accesskey');
})();

// Restyle sidebar & navbar
if(document.getElementById('pt-betafeatures')){document.getElementById('pt-betafeatures').remove()}
if(document.getElementById('p-navigation')){document.getElementById('p-navigation').remove()}
if(document.getElementById('p-interaction')){document.getElementById('p-interaction').remove()}

// Redirect home page to my user page
if (window.location.href == 'https://en.wikipedia.org/wiki/Main_Page'){
	window.location.replace('https://en.wikipedia.org/wiki/User:Zackmann08?redirected=yes');
}
if (window.location.href == 'https://en.wikipedia.org/wiki/User:Zackmann08?redirected=yes'){
	mw.notify('Redirected from Main Page');
}


importScript('User:Zackmann08/scripts/transclusions.js'); // Backlink: [[User:Zackmann08/scripts/transclusions.js]]
importScript('User:Zackmann08/scripts/JWB.js/load.js'); // Backlink: [[User:Zackmann08/scripts/JWB.js/load.js]]
importScript('User:Zackmann08/scripts/indent.js'); // Backlink: [[User:Zackmann08/scripts/indent.js]]
importScript('User:Zackmann08/scripts/convert24hourtime.js'); // Backlink: [[User:Zackmann08/scripts/convert24hourtime.js]]
importScript('User:Zackmann08/scripts/SetupAutoArchive.js'); // Backlink: [[User:Zackmann08/scripts/SetupAutoArchive.js]]
importScript('User:Zackmann08/scripts/unnest.js'); // Backlink: [[User:Zackmann08/scripts/unnest.js]]
importScript('User:Zackmann08/scripts/category-links.js'); // Backlink: [[User:Zackmann08/scripts/category-links.js]]
importScript('User:Zackmann08/scripts/UnwatchDeleted.js'); // Backlink: [[User:Zackmann08/scripts/UnwatchDeleted.js]]
importScript('User:Zackmann08/scripts/sandboxlinks.js'); // Backlink: [[User:Zackmann08/scripts/sandboxlinks.js]]
importScript('User:Zackmann08/scripts/tfdlink.js'); // Backlink: [[User:Zackmann08/scripts/tfdlink.js]]
importScript('User:Zackmann08/scripts/cleanCsdLog.js'); // Backlink: [[User:Zackmann08/scripts/cleanCsdLog.js]]
importScript('User:Zackmann08/scripts/updateEditCount.js'); // Backlink: [[User:Zackmann08/scripts/updateEditCount.js]]
importScript('User:Zackmann08/scripts/updateUnknowns.js'); // Backlink: [[User:Zackmann08/scripts/updateUnknowns.js]]
importScript('User:Zackmann08/scripts/special-links.js'); // Backlink: [[User:Zackmann08/scripts/special-links.js]]
importScript('User:Zackmann08/scripts/jumpToText.js'); // Backlink: [[User:Zackmann08/scripts/jumpToText.js]]
importScript('User:Zackmann08/scripts/copyPageName.js'); // Backlink: [[User:Zackmann08/scripts/copyPageName.js]]
importScript('User:Zackmann08/scripts/NullEdit.js'); // Backlink: [[User:Zackmann08/scripts/NullEdit.js]]
importScript('User:Zackmann08/scripts/rollback.js'); // Backlink: [[User:Zackmann08/scripts/rollback.js]]
importScript('User:Zackmann08/scripts/EditToolbar.js'); // Backlink: [[User:Zackmann08/scripts/EditToolbar.js]]
importScript('User:Zackmann08/scripts/MoveToDraft.js'); // Backlink: [[User:Zackmann08/scripts/MoveToDraft.js]]

importScript('User:Zackmann08/scripts/GenerateDeprecated.js'); // Backlink: [[User:Zackmann08/scripts/GenerateDeprecated.js]]
importScript('User:Zackmann08/scripts/GenerateTestcase.js'); // Backlink: [[User:Zackmann08/scripts/GenerateTestcase.js]]

// If these scripts fail to load, it is because the elemeants are never appearing. 
if (mw.config.get('wgCanonicalNamespace')=='Template') {
	(async () => {
		await waitForElement('#t-copyvio-check')
		importScript('User:Zackmann08/scripts/AddCheckForConflictingParameters.js'); // Backlink: [[User:Zackmann08/scripts/AddCheckForConflictingParameters.js]]
	})();
	(async () => {
		await waitForElement("#t-chk4clob");
		importScript('User:Zackmann08/scripts/AddCheckForDeprecatedParameters.js'); // Backlink: [[User:Zackmann08/scripts/AddCheckForDeprecatedParameters.js]]
	})();
	(async () => {
		await waitForElement("#t-chk4dep");
		importScript('User:Zackmann08/scripts/AddCheckForUnknownParameters.js'); // Backlink: [[User:Zackmann08/scripts/AddCheckForUnknownParameters.js]]
	})();
}
importScript('User:Zackmann08/scripts/HoldingCellHelper.js'); // Backlink: [[User:Zackmann08/scripts/HoldingCellHelper.js]]
importScript('User:Zackmann08/scripts/UserSearch.js'); // Backlink: [[User:Zackmann08/scripts/UserSearch.js]]
importScript('User:Zackmann08/scripts/DiscussionToolbar.js'); // Backlink: [[User:Zackmann08/scripts/DiscussionToolbar.js]]
importScript('User:Zackmann08/scripts/HistoryLinks.js'); // Backlink: [[User:Zackmann08/scripts/HistoryLinks.js]]
importScript('User:Zackmann08/scripts/FindDupArgs.js'); // Backlink: [[User:Zackmann08/scripts/FindDupArgs.js]]