MediaWiki:Gadget-collapserefs.js
Перейти до навігації
Перейти до пошуку
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5.
$(function() {
if( /MSIE [1-6]\./.test(navigator.userAgent) ) return; // makes no sense (max-height)
if( /(\?|&)printable=yes/.test(document.URL) ) return;
var foundReflist;
mw.util.$content.find('div').each( function(i, div){
if( ! /\bref(list\d?|erences-(small|scroll))\b/.test(div.className) ) return;
if( div.clientHeight < ((div.style.maxHeight && div.style.maxHeight.replace(/[^0-9]+/g, '')) ||
div.style.height.replace(/[^0-9]+/g, '') || 300)) return;
foundReflist = true;
$(div).wrap('<div class="reflist-collapsible"><div class="reflist-collapsible-wrapper"></div></div>');
$('<p class="reflist-collapsible-p" />')
.append(
$('<a href=# class="reflist-collapsible-link" title="Великі блоки приміток можна зменшувати" />')
.click(changeState)
)
.insertBefore($(div).parent());
});
if (!foundReflist) return;
var cookie = $.cookie('refcoll');
collapseState = cookie == 'max' ? 'min' : 'max';
mw.util.addCSS('.reflist-collapsible-p { font-size: 80%; width: 30%; margin: 1em 2em }\
* html .reflist, * html .references-scroll, * html .references-small \
{ display: inline-block /* for clientHeight in IE */ }');
var collapseCSS = mw.util.addCSS('@media screen { \
div.reflist-collapsible-wrapper { \
overflow-x: hidden; \
overflow-y: auto; \
padding-right: 0.5em; \
max-height: 320px; \
} \
}');
changeState();
function changeState() {
collapseState = collapseState == 'min' ? 'max' : 'min';
$.cookie('refcoll', collapseState);
if (collapseState == 'min'){
collapseCSS.disabled = false;
text = '↓ Показувати повністю'; // when minimized
} else {
collapseCSS.disabled = true;
text = '↑ Згорнути список'; // when maximized
}
$('.reflist-collapsible-link').text(text);
return false;
}
});