MediaWiki:Mobile.js: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
od niedawna mamy wszedzie puste <dd> w kazdym polu, zob. 'BTW' w Specjalna:Diff/6179472 |
poprawka do poprzedniej edycji |
||
Linia 13: | Linia 13: | ||
$( function () { |
$( function () { |
||
$( 'dl:has(.field)' ).each( function () { |
$( 'dl:has(.field)' ).each( function () { |
||
var nxtSbl = this.nextElementSibling || nextElementSibling( this ); |
var dds, dd0, dd1, |
||
nxtSbl = this.nextElementSibling || nextElementSibling( this ); |
|||
if ( nxtSbl && nxtSbl.nodeName !== 'DL' && ( |
if ( nxtSbl && nxtSbl.nodeName !== 'DL' && ( |
||
Linia 23: | Linia 24: | ||
} |
} |
||
dds = this.getElementsByTagName( 'dd' ); |
|||
dd0 = dds[0]; |
|||
dd1 = dds[1]; |
|||
if ( ! |
if ( !dds || dds.length === 0 || ( |
||
// puste <dd> w każdym polu, zob. [[Specjalna:Diff/6179472]] |
|||
dds.length === 1 && dd0.textContent === '' |
|||
) || ( |
|||
// numeracja w pustym polu przykładów |
|||
dd1 && dd1.textContent === '(1.1)' |
|||
) || |
|||
// jak dawniej, wg parsera opartego na Tidy |
|||
dd0.textContent === '(1.1)' |
|||
) { |
|||
this.style.display = 'none'; |
this.style.display = 'none'; |
||
} |
} |
Wersja z 18:59, 11 maj 2018
// http://stackoverflow.com/questions/6548748/portability-of-nextelementsibling-nextsibling
function nextElementSibling( el ) {
do { el = el.nextSibling } while ( el && el.nodeType !== 1 );
return el;
}
// Ukrywanie niewypełnionych pól
if (
mw.config.get( 'wgNamespaceNumber' ) === 0 &&
mw.config.get( 'wgAction' ) === 'view'
) {
$( function () {
$( 'dl:has(.field)' ).each( function () {
var dds, dd0, dd1,
nxtSbl = this.nextElementSibling || nextElementSibling( this );
if ( nxtSbl && nxtSbl.nodeName !== 'DL' && (
nxtSbl.nodeName === 'P' || // sekcja 'znaczenia'
nxtSbl.nodeName === 'UL' || // lista tłumaczeń
nxtSbl.className === 'mw-references-wrap' // lista przypisów
) ) {
return true;
}
dds = this.getElementsByTagName( 'dd' );
dd0 = dds[0];
dd1 = dds[1];
if ( !dds || dds.length === 0 || (
// puste <dd> w każdym polu, zob. [[Specjalna:Diff/6179472]]
dds.length === 1 && dd0.textContent === ''
) || (
// numeracja w pustym polu przykładów
dd1 && dd1.textContent === '(1.1)'
) ||
// jak dawniej, wg parsera opartego na Tidy
dd0.textContent === '(1.1)'
) {
this.style.display = 'none';
}
} );
} );
}
// Elementy NavFrame - przeróbka kodu z [[:en:MediaWiki:Mobile.js]]
function navToggles() {
var divs = document.getElementsByClassName
? document.getElementsByClassName( 'NavFrame' )
: document.getElementsByTagName( 'div' );
for ( var i = 0; i < divs.length; i++ ) {
if ( divs[ i ].className.indexOf( 'NavFrame' ) !== -1 ) {
createNavToggle( divs[ i ] );
}
}
}
var NavigationBarHide = 'ukryj ▲';
var NavigationBarShow = 'pokaż ▼';
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;
}
navToggle = document.createElement( 'a' );
navToggle.setAttribute( 'href', 'javascript:(function (){})()' );
var toggle = document.createElement( 'span' );
toggle.className = 'NavToggle mw-ui-button mw-ui-progressive';
toggle.appendChild( navToggle );
navHead.insertBefore( toggle, navHead.firstChild );
navHead.onclick = function () {
if ( navContent ) {
var s = navContent.style;
if ( s.display === 'none' ) {
navToggle.innerHTML = NavigationBarHide;
s.display = 'block';
} else {
navToggle.innerHTML = NavigationBarShow;
s.display = 'none';
}
}
};
navHead.onclick();
}
$( function () {
navToggles();
} );