MediaWiki:Gadget-dynavbar.js
Материал из Абсурдопедии
Перейти к навигацииПерейти к поискуЗамечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
// <pre> ============================================================
/* 12 May 2012 -- adapted for ResourceLoader & jQuery by Edward_Chernenko */
window.dynavbar = {
// set up the words in your language
Hide: '[скрыть]',
Show: '[показать]',
// Максимальное число развёрнутых шаблонов
// (если их будет больше, чем dynavbar.Max,
// то они все будут свёрнуты автоматически)
// Пример:
// Max: 0, // сворачивать всегда
// Max: 1, // сворачивать, если на странице более одного шаблона
Max: 2,
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// idx: the index of navigation bar to be toggled
toggle: function(idx) {
var NavToggle = $("#NavToggle" + idx)[0];
var NavFrame = $("#NavFrame" + idx)[0];
if(!NavFrame || !NavToggle)
return false;
if(NavToggle.firstChild.data == dynavbar.Hide)
{
$(NavFrame).children().filter('.NavContent, .NavPic').hide();
NavToggle.firstChild.data = dynavbar.Show;
}
else if(NavToggle.firstChild.data == dynavbar.Show)
{
$(NavFrame).children().filter('.NavContent, .NavPic').show();
NavToggle.firstChild.data = dynavbar.Hide;
}
},
collapseTable: function( tableIndex )
{
var Button = $("#collapseButton" + tableIndex)[0];
var Table = $("#collapsibleTable" + tableIndex)[0];
if(!Table || !Button)
return false;
var Rows = $($(Table).find('tr').toArray().splice(1));
if ( Button.firstChild.data == dynavbar.Hide ) {
Rows.hide();
Button.firstChild.data = dynavbar.Show;
}
else
{
Rows.show();
Button.firstChild.data = dynavbar.Hide;
}
}
};
/* Добавить ссылки [показать]/[скрыть] */
$(function() {
var indexNavigationBar = 0;
// iterate over all < div >-elements
var divs = $("div.NavFrame");
for(
var i=0;
NavFrame = divs[i];
i++
) {
indexNavigationBar++;
/* Автоматическое сворачивание */
var isCollapsed = $(NavFrame).hasClass("collapsed");
if(isCollapsed)
$(NavFrame).children().filter('.NavContent, .NavPic').hide();
var NavToggle = $('<a/>')
.attr('class', 'NavToggle')
.attr('id', 'NavToggle' + indexNavigationBar)
.attr('href', 'javascript:dynavbar.toggle(' + indexNavigationBar + ')')
.append(isCollapsed ? dynavbar.Show : dynavbar.Hide);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for(
var j=0;
j < NavFrame.childNodes.length;
j++
) {
if ($(NavFrame.childNodes[j]).hasClass("NavHead"))
NavFrame.childNodes[j].appendChild(NavToggle[0]);
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
// if more Navigation Bars found than Default: hide all
if (dynavbar.Max < indexNavigationBar) {
for(
var i=1;
i<=indexNavigationBar;
i++
) dynavbar.toggle(i);
}
});
$(function(){
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = $("table.collapsible");
for ( var i = 0; i < Tables.length; i++ ) {
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = $('<span/>')
.attr('style', 'float: right; font-weight: normal; text-align: right; width: 6em;')
.append($('<a/>')
.attr('id', 'collapseButton' + tableIndex)
.attr('href', 'javascript:dynavbar.collapseTable(' + tableIndex + ');')
.append(dynavbar.Hide)
)[0];
var Header = $($(Tables[i]).find('tr')[0]).find('th')[0];
/* only add button and increment count if there is a header row to work with */
if (Header) {
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
for(var i = 0; i < tableIndex; i++ )
{
if ( $(NavigationBoxes[i]).hasClass("collapsed") || ( tableIndex >= dynavbar.Max && $(NavigationBoxes[i]).hasClass( "autocollapse" ) ) )
dynavbar.collapseTable( i );
}
});
/* </pre> */