MediaWiki:Gadget-collapserefs.js
Ծանուցում. Հիշելուց հետո կատարված փոփոխությունները տեսնելու համար մաքրեք ձեր զննարկիչի հիշապահեստը. Mozilla / Firefox / Safari՝ Ctrl+Shift+R (Cmd+Shift+R Mac OS X-ում) Konqueror՝ F5 Opera՝ Tools→Preferences ընտրացանկից։ Internet Explorer՝ Ctrl+F5
mw.hook('wikipage.content').add(function() {
if (!(mw.config.get('wgIsArticle') ||
mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit') ||
/MSIE [1-6]\./.test(navigator.userAgent) || // makes no sense (max-height)
/(\?|&)printable=yes/.test(document.URL))
{
return;
}
var cookie = document.cookie.match(/(?:^|; )refcoll=(.*?)(?:;|$)/);
var collapseState = cookie && unescape(cookie[1]) == 'min' ? 'min' : 'max';
var foundReflist;
$('#mw-content-text').find('.references-small').each(function (i, el) {
if (el.clientHeight <= (
el.style.maxHeight && el.style.maxHeight.replace(/[^0-9]+/g, '') ||
el.style.height.replace(/[^0-9]+/g, '') || // clientHeight меньше height, если есть
// горизонтальная полоса прокрутки
300) ||
el.clientHeight > el.parentNode.clientHeight) // когда примечания уже обёрнуты в меньший
// по высоте блок (хотя такое оформление спорно)
{
return;
}
foundReflist = true;
if (collapseState == 'min') {
$(el).addClass('references-compact');
}
$('<p class="collapse-refs" />')
.append(
$('<a href="#" class="collapse-refs-link" title="Большие блоки с примечаниями можно уменьшать" />')
.text(collapseState == 'max' ? '↑ Ցուցադրել հավաքված' : '↓ Ցուցադրել ամբողջությամբ')
.click(changeState)
)
.insertBefore(el);
});
if (!foundReflist) return;
function changeState(e) {
e.preventDefault();
collapseState = collapseState == 'max' ? 'min' : 'max';
if (collapseState == 'max') { // when maximized
$('.collapse-refs-link')
.text('↑ Ցուցադրել հավաքված')
.parent().next().removeClass('references-compact');
} else { // when minimized
$('.collapse-refs-link')
.text('↓ Ցուցադրել ամբողջությամբ')
.parent().next().addClass('references-compact');
}
var cookieDate = new Date($.now() + 1000 * 60 * 60 * 24 * 90).toGMTString();
document.cookie = 'refcoll=' + collapseState + '; expires=' + cookieDate + '; path=/';
}
});