Difference between revisions of "MediaWiki:Common.js"

From Valve Cut Content
Jump to: navigation, search
m (was looking at the wrong tab)
m (no article todo for wiki todo page)
 
(4 intermediate revisions by the same user not shown)
Line 72: Line 72:
 
// change it's name
 
// change it's name
 
var tabs = tab.parentElement;
 
var tabs = tab.parentElement;
var talkpage = tab.firstChild.firstChild;
+
 
talkpage.setAttribute("title","Things to be included on the content page[alt-shift-t]");
+
if(wgPageName != 'Wiki_Todo'){
talkpage.innerHTML = "Article-ToDo";
+
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
 
// duplicate it and make it look like the normal tab to direct people to the discord instead
Line 86: Line 89:
  
 
tabs.appendChild(discordtab);
 
tabs.appendChild(discordtab);
 +
 +
if(wgPageName === 'Wiki_Todo'){
 +
tabs.removeChild(tab);
 +
}
 
}
 
}
 
/*
 
/*
Line 92: Line 99:
 
var tabe = window.document.getElementById('ca-edit');
 
var tabe = window.document.getElementById('ca-edit');
 
var tabv = window.document.getElementById('ca-view');
 
var tabv = window.document.getElementById('ca-view');
 +
var tabp = window.document.getElementById('ca-nstab-main');
 
// if the user has edit access
 
// if the user has edit access
 
if(tabe){
 
if(tabe){
Line 98: Line 106:
 
var tabs = tabe.parentElement;
 
var tabs = tabe.parentElement;
  
if(tabv.href == "/wiki/Wiki_Todo"){
+
if(wgPageName === 'Wiki_Todo'){
 
// change the text if we are on the wiki todo page
 
// change the text if we are on the wiki todo page
tabv.innerHTML = "Wiki Todo";
+
tabp.firstChild.firstChild.innerHTML = "Wiki Todo";
 
}else{
 
}else{
 
// duplicate it and make it look like the normal tab to direct people to the wiki todo
 
// duplicate it and make it look like the normal tab to direct people to the wiki todo

Latest revision as of 00:50, 20 December 2020

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;

	if(wgPageName != 'Wiki_Todo'){
		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);

	if(wgPageName === 'Wiki_Todo'){
		tabs.removeChild(tab);
	}
}
/*
 * 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]);
	}

}