Użytkownik:SH3VEK/nplus-linki.js
Z Nonsensopedii, polskiej encyklopedii humoru
Uwaga: aby zobaczyć zmiany po zapisaniu, 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)
- Internet Explorer: Przytrzymaj Ctrl jednocześnie klikając Odśwież lub naciśnij klawisze Ctrl+F5
- Konqueror: Kliknij polecenie Odśwież lub naciśnij klawisz F5
- Opera: Wyczyść pamięć podręczną w Narzędzia → Preferencje
/* <nowiki>
* Linki do akcji na OZ
* Wystarczy przetrzymać kliknięcie myszką na 1/4 sekundy (konfigurowalne), aby linki się pojawiły.
* Można skonfigurować te przyciski następującym sposobem
mw.config.set("npPrzyciskiOZ", [
{
title: "Nazwa przycisku, widoczna po wskazaniu myszą",
icon: "Nazwa ikony (trudno znaleźć konkretną, trzeba pokombinować)",
url: function(p) {return "Adres"}
rights: "Uprawnienia, nazwy muszą być zgodne z zapisanymi w 'Specjalna:Uprawnienia grup użytkowników'"
}
]);
* Konfiguracja musi się znaleźć PRZED importem skryptu.
* Autor: SH3VEK
*/
if (mw.config.get("wgCanonicalSpecialPageName") == "Recentchanges") mw.loader.using(["jquery", "oojs-ui"], function() {
var to = mw.config.get("npLongClick", 250),
uTimer = 0,
linkTarget = mw.config.get("npLinkOZ", "a.mw-changeslist-title");
var przyciski = [
// Tutaj mogą pojawić się dowolne akcje, których przyciski będą widoczne, jeśli użytkownik posiada dane uprawnienia
{title: "Edytuj", icon: "edit", url: function(p) {return mw.util.getUrl(p, {action: "edit"})}, rights: "edit"},
{title: "Przenieś", icon: "move", url: function(p) {return mw.util.getUrl("Special:MovePage/" + p)}, rights: "move"},
{title: "Usuń", icon: "trash", url: function(p) {return mw.util.getUrl(p, {action: "delete"})}, rights: "delete"}
];
var pp = mw.config.get("npPrzyciskiOZ");
if (pp !== null && $.isArray(pp)) przyciski = przyciski.concat(pp);
przyciski.forEach(function(v) {v.ui = new OO.ui.ButtonWidget({icon: v.icon, title: v.title})});
var btnGroup = new OO.ui.ButtonGroupWidget();
var pu = new OO.ui.PopupWidget({
$content: btnGroup.$element,
$container: mw.util.$content,
padded: false,
align: "forwards",
position: "before",
autoClose: true,
width: null,
}),
updatePopup = function(e) {
uTimer = 0;
pu.toggle(false);
pu.$floatableContainer = $(e.target);
przyciski.forEach(function(v) {v.ui.setHref(v.url(e.target.title))});
pu.position();
//pu.computePosition();
pu.toggle(true);
};
btnGroup.$element.css("font-size", "14px");
$(document.body).append(pu.$element);
mw.user.getRights().then(function(r) {
przyciski = przyciski.filter(function(v) {return r.indexOf(v.rights) != -1});
btnGroup.addItems(przyciski.map(function(v) {return v.ui}));
});
mw.util.$content
.on("mousedown", linkTarget, function(e) {uTimer = setTimeout(function() {updatePopup(e)}, to)})
.on("click", linkTarget, function(e) {
if (uTimer === 0) {
e.preventDefault();
pu.toggle(true);
return;
}
clearTimeout(uTimer);
uTimer = 0;
});
});