User:BranDaniMB/global.js

importArticles({   type: 'script',    articles: [        'u:dev:MediaWiki:PortableCSSPad/code.js'    ] }); ///Dev Wikia Imports and config /*** Auto refrescado de la wiki actividad ***/ window.AjaxRCRefreshText = 'Actualización Automática'; window.AjaxRCRefreshHoverText = 'Actualiza automáticamente la página'; window.AjaxRefresh = 10000; window.ajaxPages = [ "Especial:CambiosRecientes", "Especial:WikiActivity", "Especial:Watchlist", "Especial:Log", "Especial:Contribuciones" ]; /** * Opciones del Chat * Cambia como se ve Special:Chat y las funciones usando una interfaz * Emplea "cookies" para guardar los cambios personales * Una potencial solución a todos los problemas con el ChatHacks * * Muchas gracias al chat de Call of Duty Wiki, * el cual soportó y ayudo al buen funcionamiento y desarrollo de este código. * Apreciamos su colaboración. ¡Gracias! * * ADVERTENCIA * No debe ser cargado en MediaWiki:Chat.js/load.js * con MediaWiki:Chat-edit-count. * Añádelo en MediaWiki:Chat-welcome-message, o * podría causarse un mal funcionamiento. * Generalizando: Improvisa la interfaz del usuario. * * @versión: 1.3.1 * @autor: Callofduty4 * @autor: Madnessfan34537 * @autor: Sactage  * @traducción al español: Pintor Smeargle */ /** * Función para establecer cookies * @param cookie_name Representando el nombre de las cookies * @param data El valor establecido */ function setCookie( cookie_name, data ) { var domain = wgServer.split("//")[1]; document.cookie = cookie_name + "=" + data + "; max-age=" + 60*60*24*150 + "; path=/; domain=" + domain; } /** * Función para obtener el valor de la cookie * @param cookie_name Representando el nombre de las cookies * @param pos El índice de valor obtenido de la cookie * @return Valor de la cookie */ function getCookie( cookie_name, pos ) { var x, y, cookie_array = document.cookie.split(";"); for (var i=0; i < cookie_array.length; i++) { x = cookie_array[i].substr(0,cookie_array[i].indexOf("=")); y = cookie_array[i].substr(cookie_array[i].indexOf("=")+1); x = x.replace(/^\s+|\s+$/g,""); if (x == cookie_name) { var style_objects = y.split(", "); return unescape(style_objects[pos]); }	} } /** * Función para comprobar si el módulo de opciones del chat está habilitado * @desde 1.3.0 * @autor Sactage * @param name Nombre del módulo de opciones * @return boolean */ function isEnabled(module) { var c;	switch (module) { case "chatHacks": c = getCookie("customisation", 2); break; case "tabComplete": c = getCookie("customisation", 4); break; case "multiKick": c = getCookie("customisation", 5); break; case "multiPM": c = getCookie("customisation", 6); break; case "searchBar": c = getCookie("customisation", 7); break; case "stopSideScroll": c = getCookie("customisation", 9); break; case "messageBlocker": c = getCookie("customisation", 8); break; default: return false; }	return (c === "true"); } // Guarda las opciones de persoalización del chat como un objeto var chatOptions = { look: { fontColor: getCookie("customisation", 1), fontFamily: getCookie("customisation", 3), surroundColor: getCookie("customisation", 10), selfPostColor: getCookie("customisation", 11), backgroundColor: getCookie("customisation", 0), modalIcon: "http://3.bp.blogspot.com/-hIIxnj-w2Bc/Ut68fne7NdI/AAAAAAAAbQE/7chcvARaZtk/s1600/icon-24261_640.png" },	modules: { chatHacks: { element: "#chatHacks", enabled: isEnabled("chatHacks"), loaded: false, load: function { if ($("#pingspan").length > 0 || this.loaded) return; importScriptPage("User:Monchoman45/ChatHacks.js", "c"); this.loaded = true; }		},		tabComplete: { element: "#tabComplete", enabled: isEnabled("tabComplete"), loaded: false, load: function { importScriptPage("User:Joeytje50/tabinsert.js","rs"); this.loaded = true; }		},		multiKick: { element: "#multiKick", enabled: isEnabled("multiKick"), loaded: false, load: function { importScriptPage("User:Madnessfan34537/multikick.js","cod"); $('Multikick').appendTo('.Write'); // para prevenir que el botón no cargue this.loaded = true; }		},		multiPM: { element: "#multiPM", enabled: isEnabled("multiPM"), loaded: false, load: function { importScriptPage("MediaWiki:PM-es.js", "pintorsmeargle"); this.loaded = true; }		},		searchBar: { element: "#searchBar", enabled: isEnabled("searchBar"), loaded: false, load: function { importScriptPage("MediaWiki:Chat.js/searchbar.js","tobias-laboratory"); this.loaded = true; }		},		messageBlocker: { element: "#messageBlocker", enabled: isEnabled("messageBlocker"), loaded: false, load: function { importScriptPage("MessageBlocker/code.js", "dev"); this.loaded = true; }		},		stopSideScroll: { element: "#stopSideScroll", enabled: isEnabled("stopSideScroll"), loaded: false, load: function { $('head').append('#WikiaPage .Chat .message { word-wrap: break-word; } '); this.loaded = true; }		}	} } /** * Aplica las configuraciones mejoradas a la piel del chat */ function updateChatSkin { $('body').css({"background-color":chatOptions.look.surroundColor}); $('.WikiaPage').css({"background-color":chatOptions.look.backgroundColor, "color":chatOptions.look.fontColor, "font-family":chatOptions.look.fontFamily}); $('.Chat').css({"font-family":chatOptions.look.fontFamily}); $('.Rail').css({"font-family":chatOptions.look.fontFamily}); $('.ChatHeader').css({"background-color":chatOptions.look.backgroundColor, "font-family":chatOptions.look.fontFamily}); var selfPostElement = document.createElement('style'); selfPostElement.innerHTML = '.Chat .you{background:' + chatOptions.look.selfPostColor + ' !important;}'; $('head').append(selfPostElement); $('.Write [name="message"]').css({"color":chatOptions.look.fontColor}); $('.Write .message').css({"background-color":chatOptions.look.backgroundColor}); $('.ChatHeader .User .username').css({"color":chatOptions.look.fontColor}); for (var m in chatOptions.modules) { if ( chatOptions.modules.hasOwnProperty( m ) ) { var module = chatOptions.modules[m]; if (typeof module.enabled === 'boolean' && module.enabled && !module.loaded) { module.load; }		}	} } /** * Deshabilita las opciones de la ventana */ function openOptions { // GENERALIZANDO: ¿Matar esto con fuego? Esa fue la mejor manera de hacer esto - pero usa $.showModal var $optionsWindowHTML = $.showCustomModal( "Opciones", ' Cambios en el color Ingresa el nombre del color o su código Fondo del chat   Fondo de tus propios mensajes    Fondo    Color de la letra   Font  Letra fuente <select id="fontList"><option value="arial" style="font-family:arial;">Arial <option value="courier new" style="font-family:courier new;">Courier new <option value="georgia" style="font-family:georgia;">Georgia <option value="palatino linotype" style="font-family:palatino linotype;">Palatino linotype <option value="Comic Sans MS" style="font-family:Comic Sans MS;">Comic sans <option value="tahoma" style="font-family:tahoma;">Tahoma <option value="Trebuchet MS" style="font-family:Trebuchet MS;">Trebuchet MS <option value="Verdana" style="font-family:Verdana;">Verdana <option value="Lucida Console" style="font-family:Lucida Console;">Lucida Console   <p style="font-size:120%; font-weight:bold; font-style:italic;">Añadir funcionalidades <input type="checkbox" name="chatHacks" value="chatHacks" id="chatHacks"/> Habilitar ChatHacks</a>    <input type="checkbox" name="multiPM" value="multiPM" id="multiPM"/> Habilitar privado grupal</a> <input type="checkbox" name="tabComplete" value="tabComplete" id="tabComplete"/>Habilitar tab complete</a>   <input type="checkbox" name="searchBar" value="searchBar" id="searchBar"/>Habilitar barra de búsqueda</a> <input type="checkbox" name="multiKick" value="multiKick" id="multiKick" />Habilitar multi expulsión</a>    <input type="checkbox" name="messageBlocker" value="messageBlocker" id="messageBlocker"/>Habilitar bloqueador de mensajes</a> <input type="checkbox" name="stopSideScroll" value="stopSideScroll" id="stopSideScroll"/>Detener el scroll lateral después de que alguien hace spam ', { id: "optionsWindow", width: 600, buttons: [ {			id: "cancel", message: "Cancel", handler: function { cancelChanges; }		},		{			id: "updateCookie", defaultButton: true, message: "¡Mejorado!", handler: function { updateCookie; }	   }		]	});	$(".close").click(cancelChanges);	// Revisa si varios módulos han sido habilitados por el usuario, y consulta si las funciones lo están	if (chatOptions.modules.chatHacks.enabled)		$("#chatHacks").attr("checked",true);	if (chatOptions.modules.multiPM.enabled)		$("#multiPM").attr("checked",true);	if (chatOptions.modules.tabComplete.enabled)		$("#tabComplete").attr("checked",true);	if (chatOptions.modules.searchBar.enabled)		$("#searchBar").attr("checked",true);	if (chatOptions.modules.multiKick.enabled)		$("#multiKick").attr("checked",true);	if (chatOptions.modules.messageBlocker.enabled)		$("#messageBlocker").attr("checked",true);	if (chatOptions.modules.stopSideScroll.enabled)		$("#stopSideScroll").attr("checked",true);	if (typeof window.customFonts !== "undefined" && window.customFonts.length) {		for (var i = 0; i < window.customFonts.length; i++) {			var font = window.customFonts[i]; $("#fontList").append('<option value="' + font+ '" style="font-family:' + font + ';">' + font.slice(0,1).toUpperCase + font.slice(1) + ' '); }	}	// Posiciona ciertos módulos "checkboxes" para deshabilitar una condición específica que no se reconoce if (!wgUserGroups.indexOf("chatmoderator") && !wgUserGroups.indexOf("sysop") && !wgUserGroups.indexOf("staff") && !wgUserGroups.indexOf("helper") && !wgUserGroups.indexOf("vstf")) $("#multiKick").attr("disabled",true); $("select option[value='" + chatOptions.look.fontFamily + "']").attr("selected","selected"); // establece la fuente seleccionada } /** * Cierra la ventanilla de opciones sin guardar ningún cambioClose the options window without saving any changes */ function cancelChanges { var dialog = $('#optionsWindow'); dialog.closeModal; } /** * Guarda las opciones del usuario y las deposita en una cookie para que se mantenga cada vez que el usuario entre al chat */ function updateCookie { chatOptions.look.backgroundColor = $('#backgroundColourinput').val; chatOptions.look.fontColor = $('#fontColourinput').val; chatOptions.look.fontFamily = $('#fontList').val; chatOptions.look.surroundColor = $('#surroundColourinput').val; chatOptions.look.selfPostColor = $('#selfPostColourinput').val; for (var m in chatOptions.modules) { if ( chatOptions.modules.hasOwnProperty( m ) ) { var module = chatOptions.modules[m]; if (typeof module.element != 'undefined' && $(module.element).attr("checked")) { module.enabled = true; } else { module.enabled = false; }		}	}	// Establece las cookies setCookie("customisation", chatOptions.look.backgroundColor + ", " + chatOptions.look.fontColor + ", " + chatOptions.modules.chatHacks.enabled + ", " + chatOptions.look.fontFamily + ", " + chatOptions.modules.tabComplete.enabled + ", " + chatOptions.modules.multiKick.enabled + ", " + chatOptions.modules.multiPM.enabled + ", " + chatOptions.modules.searchBar.enabled + ", " + chatOptions.modules.messageBlocker.enabled + ", " + chatOptions.modules.stopSideScroll.enabled + ", " + chatOptions.look.surroundColor + ", " + chatOptions.look.selfPostColor); updateChatSkin; cancelChanges; } // Agrega el botón de opciones if (!$("#chatOptionsButton").length) { $('.Rail').prepend('<div id="chatOptionsButton" onclick="openOptions;" style="margin:auto; cursor: pointer; font-size:150%; bottom:4px; padding-bottom:2px; border-bottom: 1px solid #CCCCCC; width:90%;" align="center"><img src="' + chatOptions.look.modalIcon + '" width="18px"/> Opciones '); // Previene que aparezcan muchos botones } window.onload = updateChatSkin;