MediaWiki:Common.js

From Valve Cut Content
Revision as of 00:42, 20 December 2020 by Uncanny (talk | contribs) (change position of wiki todo page tab specifically)
Jump to: navigation, search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
window.overwikiCommon = {};

/*
 * Collapsible navigation boxes
 */

overwikiCommon.navtemp = {};

overwikiCommon.navtemp.toggle = function(button) {
  $(button.parentNode.parentNode.parentNode.parentNode.parentNode).toggleClass('navtempcoll');
}

overwikiCommon.navtemp.createToggles = function(content) {
  var headers = content.find('.navtemp th');
  if (headers.length === 0) {
    return;
  }
  var buttonHTML = '<span class="navtemptoggle"><span class="navtempshow" onclick="overwikiCommon.navtemp.toggle(this);">[show]</span><span class="navtemphide" onclick="overwikiCommon.navtemp.toggle(this);">[hide]</span></span>';
  headers.each(function(headerIndex, header) {
    header.insertAdjacentHTML('afterbegin', buttonHTML);
    $(header.parentNode.parentNode.parentNode).addClass('navtempcoll');
  });
}

mw.hook('wikipage.content').add(overwikiCommon.navtemp.createToggles);

/*
 * Proper positioning of the license box when uploading.
 */

overwikiCommon.upload = {};

overwikiCommon.upload.updateLicense = function() {
  var description = document.getElementById('wpUploadDescription');
  var license = document.getElementById('wpLicense');
  if (description != null && license != null) {
    description.value = description.value.replace(/\|licensing=.*/m, '|licensing=' + (license.value ? '{{' + license.value + '}}' : ''));
  }
}

overwikiCommon.upload.setupLicensing = function(/* content */) {
  var license = /* content.find('#wpLicense').get() */ document.getElementById('wpLicense');
  if (license != null) {
    license.removeAttribute('name');
    if (license.addEventListener != null) {
      license.addEventListener('change', overwikiCommon.upload.updateLicense);
    } else if (license.attachEvent != null) {
      license.attachEvent('onchange', overwikiCommon.upload.updateLicense);
    }
  }
}

if (wgPageName === 'Special:Upload' && !document.location.search.match(/[?&]wpForReUpload=1/)) {
  // mw.hook('wikipage.content').add(overwikiCommon.upload.setupLicensing);
  overwikiCommon.upload.setupLicensing();
}

$('.audioplayer').click(function(){
	var name = $(this).children('img').attr('class');
	var content   = '<audio controls autoplay src="' + name + '"> </audio>';
        $(this).html(content);
        $(this).off('click');
});

/*
 * custom usage of talk pages and redirecting the user to the discord
 */
var tab = window.document.getElementById('ca-talk');
// if this is a page with a discussion board
if(tab){

	// change it's name
	var tabs = tab.parentElement;
	var talkpage = tab.firstChild.firstChild;
	talkpage.setAttribute("title","Things to be included on the content page[alt-shift-t]");
	talkpage.innerHTML = "Article-ToDo";

	// duplicate it and make it look like the normal tab to direct people to the discord instead
	var discordtab = tab.cloneNode(true);
	discordtab.setAttribute("class","new");
	var discord = discordtab.firstChild.firstChild;

	discord.setAttribute("title","Discussion about the wiki or pages");
	discord.innerHTML = "Discussion";
	discord.href = window.document.getElementById('n-Official-VCC-Discord').firstChild.href;

	tabs.appendChild(discordtab);
}
/*
 * quick link to wiki todo
 */
var tabe = window.document.getElementById('ca-edit');
var tabv = window.document.getElementById('ca-view');
var tabp = window.document.getElementById('ca-nstab-main');
// if the user has edit access
if(tabe){

	// get the tabs
	var tabs = tabe.parentElement;

	if(wgPageName === 'Wiki_Todo'){
		// change the text if we are on the wiki todo page
		tabp.firstChild.firstChild.innerHTML = "Wiki Todo";
	}else{
		// duplicate it and make it look like the normal tab to direct people to the wiki todo
		var todotab = tabe.cloneNode(true);
		todotab.setAttribute("class","new");
		var todo = todotab.firstChild.firstChild;

		todo.setAttribute("title","Pages that are work in progress");
		todo.innerHTML = "Wiki Todo";
		todo.href = "/wiki/Wiki_Todo";

		tabs.insertBefore(todotab, tabs.children[2]);
	}

}