Wikipedysta:Nux/legacy/nu-me-nu.js
Wygląd
(Przekierowano z Wikipedysta:Nux/nu-me-nu.js)
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
- Opera: Naciśnij klawisze Ctrl+F5.
/* ------------------------------------------------------------------------ *\
Rozwijalne menu w oknie edycji nu-me-nu
Opis:
http://pl.wikipedia.org/wiki/Wikipedia:Narz%C4%99dzia/Nu-me-nu
Copyright: ©2008-2021 Maciej Jaros (pl:User:Nux, en:User:EcceNux)
Licencja: GNU General Public License v2
http://opensource.org/licenses/gpl-license.php
\* ------------------------------------------------------------------------ */
// wersja:
var tmp_VERSION = '0.6.0'; // = nu_me_nu.version = nu_me_nu.ver
// ------------------------------------------------------------------------ //
//
// Moduł(y) zewnętrzne
//
if(mw.config.get('wgAction')=='submit' || mw.config.get('wgAction')=='edit')
{
if ((typeof nuxedtoolkit)!='object')
{
importScript('Wikipedysta:Nux/nuxedtoolkit.js');
}
mw.hook('userjs.nuxedtoolkit.done').add(function () {
$(nu_me_nu.init);
});
}
/* =====================================================
Object Init
===================================================== */
if (nu_me_nu!==undefined)
{
alert('Błąd krytyczny - konflikt nazw!\n\nJeden ze skryptów używa już nazwy nu_me_nu jako zmienną globalną.');
}
var nu_me_nu = {};
nu_me_nu.ver = nu_me_nu.version = tmp_VERSION;
/* =====================================================
Domyślne ustawienia
===================================================== */
nu_me_nu.settings = {
'menu_pozycja' : 'left', // 'right' lub 'left'
'menu_szerokosc' : '750px',
'szybkie_chowanie' : true, // true/false ew. 1/0
'ukryj_oryginal' : true // true/false ew. 1/0
};
/* =====================================================
Function: nu_me_nu.init()
Funkcja inicjowania menu
===================================================== */
nu_me_nu.init = function ()
{
// jeśli nie ma czego przenieść do menu to szkoda czasu...
var wikibtns = document.getElementById('editpage-specialchars_userButtons');
if (!wikibtns) return;
// pobranie ustawień użytkownika
if (typeof nu_me_nu_user_settings != 'undefined')
{
var u_sets = nu_me_nu_user_settings;
if (typeof u_sets['menu_pozycja'] != 'undefined')
{
nu_me_nu.settings['menu_pozycja'] = (u_sets['menu_pozycja']=='left' ? 'left' : 'right');
}
if (typeof u_sets['menu_szerokosc'] != 'undefined')
{
nu_me_nu.settings['menu_szerokosc'] = u_sets['menu_szerokosc'];
}
if (typeof u_sets['szybkie_chowanie'] != 'undefined')
{
nu_me_nu.settings['szybkie_chowanie'] = (u_sets['szybkie_chowanie'] ? true : false);
}
if (typeof u_sets['ukryj_oryginal'] != 'undefined')
{
nu_me_nu.settings['ukryj_oryginal'] = (u_sets['ukryj_oryginal'] ? true : false);
}
}
// przycisk pokazywania menu
if (!nu_me_nu.button())
{
return;
}
// stworzenie menu
nu_me_nu.menu();
};
/* =====================================================
Function: nu_me_nu.button()
Dodaje przycisk menu
===================================================== */
nu_me_nu.button = function ()
{
nuxedtoolkit.prepare();
var group_el = nuxedtoolkit.addGroup();
nu_me_nu.elBtns = group_el;
if (nu_me_nu.settings['menu_pozycja']=='left')
{
nu_me_nu.elBtns.style.cssText = "float: left; position:relative";
}
else
{
nu_me_nu.elBtns.style.cssText = "float: right; position:relative; border-right: 0px none; border-left: 1px solid #ddd; padding-left: 5px; padding-right:0;";
}
var btn_attrs = {
title : 'Menu toolbar (wer. '+nu_me_nu.ver+')',
alt : "Menu"
};
var icons = {
oldbar : '//upload.wikimedia.org/wikipedia/commons/f/f0/Btn_infotexto.png',
newbar : '//commons.wikimedia.org/w/thumb.php?f=Accessories-character-map.svg&w=22'
};
nuxedtoolkit.addBtn(group_el, 'nu_me_nu.show()', icons, btn_attrs);
return 1; // backword compat.
};
/* =====================================================
Function: nu_me_nu.menu()
Dodaje element(y) menu
===================================================== */
nu_me_nu.menu = function ()
{
var wikibtns = document.getElementById('editpage-specialchars_userButtons');
if (!wikibtns) return;
var nel=document.createElement('div');
nel.style.cssText = 'position:absolute;'+nu_me_nu.settings['menu_pozycja']+':0px;top:20px;width:'+nu_me_nu.settings['menu_szerokosc']+';'
+'opacity:.95;'
+'padding:4px 8px;'
+'background:#eff; border:1px solid #ccc;'
+'display:none;'
+'z-index:1000;'
;
if (navigator.userAgent.toLowerCase().indexOf('msie')!=-1)
{
nel.style.cssText += 'z-index:5000;filter:alpha(opacity=95);';
}
// gromadzenie onlicków
var onclks = [];
var onclks_i=0;
var html = wikibtns.innerHTML.replace(/<a[^>]+>, function(a,onclk)
{
// niepotrzebne
onclk = onclk.replace(/return false;?$/,'');
// dodanie autoukrywania
if (nu_me_nu.settings['szybkie_chowanie'])
{
onclk += "nu_me_nu.elMenu.style.display='none'";
}
onclks[onclks_i++] = onclk;
return '<a id="nu_me_nu_clk'+(onclks_i-1)+'">';
});
nel.innerHTML = html;
//nel. {nu_me_nu.elMenu.style.display='none'};
/*
// bajerek
nel. Function("nu_me_nu.elMenu.style.opacity='.75'; nu_me_nu.elMenu.style.filter='alpha(opacity=75)'");
nel. Function("nu_me_nu.elMenu.style.opacity='.45'; nu_me_nu.elMenu.style.filter='alpha(opacity=45)'");
*/
// dodanie elementu
nu_me_nu.elBtns.appendChild(nel);
nu_me_nu.elMenu = nel;
// "dopisanie" onlicków
for (var i=0; i<onclks.length;i++)
{
var el = document.getElementById('nu_me_nu_clk'+i);
if (el)
{
el.onclick = new Function (onclks[i]);
}
else
{
console.warn('nu_me_nu_clk'+i+' - not found!');
}
}
// ukrycie oryginału
if (nu_me_nu.settings['ukryj_oryginal'])
{
wikibtns.style.display = 'none';
}
};
/* =====================================================
Function: nu_me_nu.show()
Funkcja pokazywania menu
===================================================== */
nu_me_nu.show = function ()
{
if (!nu_me_nu.elMenu)
{
alert("Menu jest niedostępne.");
}
if (nu_me_nu.elMenu.style.display=='none')
{
nu_me_nu.elMenu.style.display='block'
// poprawka nowego toolbara
if (typeof $ != 'undefined' && typeof $.fn.wikiEditor != 'undefined')
{
var nbar = document.getElementById('wikiEditor-ui-toolbar');
//var secs = getElementsByClassName(nbar, "div", "sections")[0];
var secs = $("div.sections", nbar)[0];
secs.style.overflow = 'visible';
}
}
else
{
nu_me_nu.elMenu.style.display='none'
}
};