User:BryghtShadow/global.js

importArticles({	type: 'script',	articles: [   	'u:dev:MediaWiki:ImportJSPage/code.js',    	'u:dev:MediaWiki:ThemeToggler.js',    ] }); // https://discord.com/channels/563020189604773888/824996318853595146/851520351464718396 $(function {   if (mw.config.get('skin') !== 'fandomdesktop') return;    var theme = mw.util.getParamValue('usetheme');    if (['light','dark'].indexOf(theme) === -1) return;    $.get(mw.util.wikiScript('wikia')+'?controller=ThemeApi&method=themeVariables&variant='+theme+'&cb='+(new Date.getTime)).done(function(data){ var $s = $('#pcjThemeSwitch')[0] || $(' ').attr('id','pcjThemeSwitch').appendTo('body'); $($s).text(data); $('body').removeClass('theme-fandomdesktop-light theme-fandomdesktop-dark').addClass('theme-fandomdesktop-'+theme); }); });

$(function {	'use strict';

// https://stackoverflow.com/a/38882022 function waitForAddedNode(params) { new MutationObserver(function(mutations) {			var el = document.getElementById(params.id);			if (el) {				this.disconnect;				params.done(el);			}		}).observe(params.parent || document, {			subtree: !!params.recursive,			childList: true,		}); }	function addCodeEditorAccessKey($editform) { const $textbox = $('#wpTextbox1'); const accesskey = $textbox.attr('accesskey'); const targetNode = $editform[0]; const config = { subtree: true, attributeOldValue: true, };		const observer = new MutationObserver(function(mutations) {			mutations.forEach(function(mutation) { if (mutation.type === 'attributes' && mutation.attributeName==="class") { const target = mutation.target; if (target.id === 'wikiEditor-ui-toolbar') { const codeEditorEnabled = target.classList.contains('codeEditor-ui-toolbar'); if (codeEditorEnabled) { $('.ace_text-input').attr('accesskey', accesskey); $textbox.removeAttr('accesskey'); } else { $textbox.attr('accesskey', accesskey); }					}				}			});		});		observer.observe(targetNode, config); }	mw.hook('wikipage.editform').add(addCodeEditorAccessKey);

function addScribuntoAccessKey { // Jump to Scribunto console waitForAddedNode({			id: 'mw-scribunto-input',			parent: document.querySelector('#mw-scribunto-console'),			recursive: false,			done: function(el) {				console.log(el);				el.setAttribute('accesskey', '/');			}		}); }	if (mw.config.get('wgNamespaceNumber') === 828) { mw.hook('wikipage.editform').add(addScribuntoAccessKey); } });

$(function {	// Fix duplicate accesskey for Edit.	const editButton = $('.page-side-edit').first[0];	if (typeof editButton === 'undefined') return;	const accesskey = editButton.getAttribute('accesskey');	const $accesskey = $('[accesskey="'+accesskey+'"]');	if ($accesskey.length === 1) return;	$accesskey.each(function(_, btn) { if (btn === editButton) return; btn.removeAttribute('id'); btn.removeAttribute('accesskey'); }); });

/* Move RC button from dropdown to visible wiki tools area. */ $(function { const $wikiTools = $('.wiki-tools.wds-button-group');  if ($wikiTools.children('[data-tracking="recent-changes"]').length > 0) {    return;  }  mw.hook('dev.wds').add(function(wds) { $wikiTools.each(function(i, parent) {     const icon = wds.icon('activity-small');      const $dropdown = $(parent).find('.wds-dropdown');      const $rc = $dropdown.find('[data-tracking="recent-changes"]');      const title = $rc.text.trim;      $rc.unwrap('li');      $rc.addClass('wds-button wds-is-secondary');      $rc.attr('title', title);      $rc.empty;      $rc.append(icon);      $rc.insertBefore($dropdown);    }); }); importArticle({ type:'script', article: 'u:dev:MediaWiki:WDSIcons/code.js' }); });