MediaWiki:Common.js
Zanibe: Piştî weşandinê, ji bo dîtina guhartinan dibe ku hewce be "cache"ya geroka xwe paqij bikî.
- Firefox / Safari: Pê li Shift û Reload bike an jî Ctrl-F5 an Ctrl-R bike (ji bo Mac: ⌘-R)
- Google Chrome: Pê li Ctrl-Shift-R (ji bo Mac: ⌘-Shift-R) bike
- Internet Explorer / Edge: Pê li Ctrl û Refresh bike, an jî Ctrl-F5 bike
- Opera: Pê li Ctrl-F5 bike.
/* Imported from en.wiktionary: //en.wiktionary.org/wiki/MediaWiki:Common.js */
/* Any JavaScript here will be loaded for all users on every page load. */
mw.loader.using(['mediawiki.util']).then(function() {
/** Ji [[:w:MediaWiki:Common.js]]
Ji bo geroka Google Chromê: tîpên kurdî biçûk xuya dikin...
**/
$(":lang(ku)").attr('lang', 'ku-Latn')
/*
=== DOM creation ===
*/
/**
* Create a new DOM node for the current document.
* Basic usage: var mySpan = newNode('span', "Hello World!")
* Supports attributes and event handlers*: var mySpan = newNode('span', {style:"color: red", focus: function(){alert(this)}, id:"hello"}, "World, Hello!")
* Also allows nesting to create trees: var myPar = newNode('p', newNode('b',{style:"color: blue"},"Hello"), mySpan)
*
* *event handlers, there are some issues with IE6 not registering event handlers on some nodes that are not yet attached to the DOM,
* it may be safer to add event handlers later manually.
**/
function newNode(tagname){
var node = document.createElement(tagname);
for( var i=1;i<arguments.length;i++ ){
if(typeof arguments[i] == 'string'){ //Text
node.appendChild( document.createTextNode(arguments[i]) );
}else if(typeof arguments[i] == 'object'){
if(arguments[i].nodeName){ //If it is a DOM Node
node.appendChild(arguments[i]);
}else{ //Attributes (hopefully)
for(var j in arguments[i]){
if(j == 'class'){ //Classname different because...
node.className = arguments[i][j];
}else if(j == 'style'){ //Style is special
node.style.cssText = arguments[i][j];
}else if(typeof arguments[i][j] == 'function'){ //Basic event handlers
try{ node.addEventListener(j,arguments[i][j],false); //W3C
}catch(e){try{ node.attachEvent('on'+j,arguments[i][j],"Language"); //MSIE
}catch(e){ node['on'+j]=arguments[i][j]; }}; //Legacy
}else{
node.setAttribute(j,arguments[i][j]); //Normal attributes
}
}
}
}
}
return node;
}
// [biguherîne]-Lînk
// Folgendes Script basiert auf einem Element aus dem MediaWiki:Monobook.js in der französischen
// Wikipedia und steht unter unter der GNU Lizenz für freie Dokumentation. Der Autor des Codes ist
// Marc Mongenet, Copyright 2006.
setModifySectionStyle = function()
{
try {
if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
var spans = document.getElementsByTagName("span");
for (var s = 0; s < spans.length; ++s) {
var span = spans[s];
if (span.className == "editsection") {
span.style.fontSize = "x-small";
span.style.fontWeight = "normal";
span.style.cssFloat = span.style.styleFloat = "none";
span.parentNode.appendChild(document.createTextNode(" "));
span.parentNode.appendChild(span);
}
}
} catch (e) { /* something went wrong */ }
}
$(document).ready(setModifySectionStyle);
/*
=== NavBars ===
var NavigationBarHide = 'veşêre ▲';
var NavigationBarShow = 'nîşan bide ▼';
function createNavToggle(navFrame)
{
var navHead, navToggle, navContent;
for (var j=0; j < navFrame.childNodes.length; j++) {
var div = navFrame.childNodes[j];
switch (div.className) {
case 'NavHead':
navHead = div;
break;
case 'NavContent':
navContent = div;
break;
}
}
if (!navHead || !navContent)
return;
// Step 1, don't react when a subitem is clicked.
for (var i=0; i<navHead.childNodes.length; i++) {
var child = navHead.childNodes[i];
if (child.nodeType == 1) {
child.onclick = function (e)
{
if (e && e.stopPropagation)
e.stopPropagation();
else
window.event.cancelBubble = true;
}
}
}
// Step 2, toggle visibility when bar is clicked.
// NOTE This function was chosen due to some funny behaviour in Safari.
navToggle = newNode('a', {href: 'javascript:(function(){})()'}, '');
navHead.insertBefore(newNode('span', {'class': 'NavToggle'}, '[', navToggle, ']'), navHead.firstChild);
navHead.style.cursor = "pointer";
var nameTitle = navFrame.title.split('/');
function show() {
nameTitle[1] ? navToggle.innerHTML = nameTitle[1] : navToggle.innerHTML = NavigationBarHide;
if (navContent)
navContent.style.display = "block";
}
function hide() {
nameTitle[2] ? navToggle.innerHTML = nameTitle[2] : navToggle.innerHTML = NavigationBarShow;
if (navContent)
navContent.style.display = "none";
}
nameTitle[0] == 'collapsed' ? hide() : show();
navHead.onclick = function (){
navToggle.innerHTML == (nameTitle[2] || NavigationBarShow) ? show() : hide();
};
};
$(document).ready( function ()
{
var divs;
if (document.getElementsByClassName)
divs = document.getElementsByClassName('NavFrame');
else
divs = document.getElementsByTagName('div');
for (var i=0; i<divs.length; i++) {
// NOTE: some templates use a class of NavFrame for the style, but for legacy reasons, are not NavFrames
if (divs[i].className == "NavFrame") {
createNavToggle(divs[i]);
}
}
});
*/
/*
/**
* Main Page layout fixes
*
* Description: Adds an additional link to the complete list of languages available.
*/
if ( mw.config.get( 'wgPageName' ) === 'Destpêk' || mw.config.get( 'wgPageName' ) === 'Gotûbêj:Destpêk' ) {
$( function () {
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/Wiktionary/ku#Lîsteya_Wîkîferhengan',
'Hemû ziman', 'interwiki-completelist', 'Hemû ziman' );
} );
}
// binêre-herwiha
mw.util.addCSS('#showSeeAlso {display: none;}');
function showSeeAlso() {
if (mw.config.get('wgNamespaceNumber') == 0 && document.getElementById("showSeeAlso") && !document.getElementById("Şablon_binêre_herwiha") && url.indexOf("oldid=") < 0) {
document.getElementById("contentSub").style.margin = "0";
document.getElementById("contentSub").innerHTML += document.getElementById("showSeeAlso").innerHTML;
}
}
$(document).ready(showSeeAlso);
// Char-Subset
function chooseCharSubset(s) {
var l = document.getElementById('nogomatch').getElementsByTagName('table');
for (var i = 0; i < l.length ; i++) {
if (l[i].className == "foreignLanguage") {
l[i].style.display = l[i].id == s ? 'block' : 'none';
}
}
}
// Import MediaWiki:Onlyifediting.js (MediaWiki:Edittools)
if( mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit' ) {
importScript( 'MediaWiki:Onlyifediting.js' );
}
// siehe-auch-feld auf eintragsseiten, die auch ein case-(in)sensitive-äquivalent haben
mw.util.addCSS('#showSeeAlso {display: none;}');
function showSeeAlso() {
if (mw.config.get('wgNamespaceNumber') == 0 && document.getElementById("showSeeAlso") && !document.getElementById("Şablon_binêre_herwiha") && url.indexOf("oldid=") < 0) {
document.getElementById("contentSub").style.margin = "0";
document.getElementById("contentSub").innerHTML += document.getElementById("showSeeAlso").innerHTML;
}
}
$(document).ready(showSeeAlso);
});
// Drop-Down-Menü für [[Şablon:MediaWiki Peyvekê çêke]]
// Çavkanî: de.wiktionary
function chooseLanguage(s) {
var l = document.getElementById('newarticletext').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = i == s ? 'inline' : 'none';
}
}
function addNewarticleSubsetMenu() {
var newarticletext = document.getElementById('newarticletext');
if (newarticletext) {
var menu = "<select style=\"display:inline\" onChange=\"chooseLanguage(selectedIndex)\">";
var l = newarticletext.getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
menu += "<option>" + l[i].title + "</option>";
}
menu += "</select>";
newarticletext.innerHTML = menu + newarticletext.innerHTML;
chooseLanguage(0); // wähle oberste Option aus
}
}
$(document).ready(addNewarticleSubsetMenu);
/* == WikiHiero kludge == */
$('table.mw-hiero-outer').first().each(function() {
mw.loader.load('//ku.wiktionary.org/w/index.php?title=MediaWiki:WikiHieroTempFix.js&action=raw&ctype=text/javascript');
});
/* == Make it easy to update language name-to-code and code-to-name data modules == */
// This regex will always match.
if (['Modul:ziman/ji_kod_li_nav', 'Modul:ziman/navên_zimanan']
.indexOf(mw.config.get('wgPageName').match(/^[^\/]*(?:\/[^\/]+)?/)[0]) !== -1)
importScript('MediaWiki:UpdateLanguageNameAndCode.js');
// Various fixes for the trees generated by [[Module:family tree]].
$(function () {
// Show the top toggle.
$('.familytree-toptoggle').css('display', '');
// Initialize the text of the toggles.
$('.familytree').get().forEach(function (tree) {
var isCollapsed = tree.classList.contains('mw-collapsed');
var toggles = $(tree).find('.familytree-toggle');
if (toggles[0]) {
var customToggleClass = Array.prototype.filter.call(toggles[0].classList, function (className) {
return className.indexOf('mw-customtoggle-familytree') === 0;
})[0];
if (customToggleClass) {
var toggledElement = $('#' + customToggleClass.replace('mw-customtoggle', 'mw-customcollapsible'));
if (toggledElement) {
toggles.html(toggledElement.data(isCollapsed ? 'expandtext' : 'collapsetext'));
}
}
}
});
// Change the text in the custom toggles generated by [[Module:family tree]]
// when they are clicked.
$('.mw-collapsible').on('beforeExpand.mw-collapsible beforeCollapse.mw-collapsible',
function (event) {
if (this.id.indexOf('mw-customcollapsible-familytree') === 0) {
var toggle = $('.' + this.id.replace('mw-customcollapsible', 'mw-customtoggle'));
if (event.type === 'beforeExpand') {
toggle.html(this.dataset.collapsetext);
} else { // beforeCollapse
toggle.html(this.dataset.expandtext);
}
event.stopPropagation();
}
});
});