MediaWiki:Common.js: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
Polskacafe (dyskusja • edycje) (-username) |
Ostrzyciel (dyskusja • edycje) M |
||
(Nie pokazano 27 wersji utworzonych przez 3 użytkowników) | |||
Linia 1: | Linia 1: | ||
/* <pre><nowiki> */ |
/* <pre><nowiki> */ |
||
/** COMMON.JS ** |
|||
* Plik zawiera funkcje używane w innych skryptach. Edytuj ostrożnie! |
|||
**/ |
|||
/** |
|||
/** PODSTAWOWE FUNKCJE **/ |
|||
* W tym pliku już nic nie ma, bo wszystko poprzenosiliśmy do gadżetów. |
|||
// FIXME: Zastąpić to poprzez użycie jQuery: $("#id") |
|||
* Lista gadżetów dostępna jest tutaj: [[MediaWiki:Gadgets-definition]]. Jeśli o tym nie wiedziałeś, to nie ruszaj – pewnie i tak nie zrozumiesz co jest od czego. |
|||
function returnObjById(a) { |
|||
* Zobacz też [[User:Ostrzyciel/skórburdel]], tam jest rozpiska który plik JS/CSS się kiedy ładuje. |
|||
var b = null; |
|||
* a, i jak robisz, to ograniczaj doładowywanie rzeczy typu mw.loader.load, bo to muli |
|||
document.getElementById ? b = document.getElementById(a) : document.all ? b = document.all[a] : document.layers && (b = document.layers[a]); |
|||
**/ |
|||
return b; |
|||
} |
|||
// FIXME: Zastąpić to poprzez użycie jQuery: $(b).hasClass(c) |
|||
function hasClass(e, c) { |
|||
return $(e).hasClass(c); |
|||
} |
|||
// Odpowiednik PLURAL w JS-ie |
|||
function war(l, j, k, w) { |
|||
return (l == 1) ? j : (l % 100 >= 10 && l % 100 <= 20) ? w : (l % 10 > 1 && l % 10 < 5) ? k : w; |
|||
} |
|||
// Odpowiednik GENDER w JS-ie |
|||
function gnd(g, m, z, n) { |
|||
var X = { |
|||
"male": m, |
|||
"female": z, |
|||
"unknown": n |
|||
}; |
|||
return (g) ? X[g] : n; |
|||
} |
|||
// FIXME: Zastąpić to poprzez użycie jQuery Timeago: $.timeago.inWords(l) |
|||
function dTemu(l) { |
|||
var N = Math.floor(l / 1000), |
|||
D = Math.floor(N / 86400), |
|||
H = Math.floor((N - D * 86400) / 3600), |
|||
I = Math.floor((N - D * 86400 - H * 3600) / 60); |
|||
return { |
|||
d: D, |
|||
h: H, |
|||
i: I, |
|||
text: (D ? D + " d" + war(D, "zień", "ni", "ni") + " " : "") + (H ? H + " godz. " : "") + (I ? I + " min" + (!H ? "ut" + war(I, "ę", "y", "") : "") + " temu" : "przed chwilą") |
|||
}; |
|||
} |
|||
/* Archiwizacja Porum */ |
|||
function zipForum() { |
|||
if (!("Forum" != mw.config.get('wgCanonicalNamespace') || "view" != wgAction || "Strona główna" == wgTitle)) |
|||
if (!document.getElementById("naglowekforum") || document.getElementById("nieodkopuj")) { |
|||
var cae = $("#ca-edit a")[0]; |
|||
cae.style.color = "DarkKhaki"; |
|||
cae.href = ""; |
|||
cae.title = "Ten wątek jest archiwalny, prosimy o nieedytowanie go."; |
|||
} |
|||
} |
|||
/* Import CSS */ |
|||
function Zab() { |
|||
if (mw.config.get('wgRestrictionEdit')[0] === undefined && mw.config.get('wgRestrictionMove')[0] === undefined) return; |
|||
var zabezpieczenie = ''; |
|||
var editRestriction = 'brak'; |
|||
var moveRestriction = "brak"; |
|||
if (mw.config.get('wgRestrictionEdit')[0] !== undefined) editRestriction = mw.config.get('wgRestrictionEdit')[0]; |
|||
if (mw.config.get('wgRestrictionMove')[0] !== undefined) moveRestriction = mw.config.get('wgRestrictionMove')[0]; |
|||
var klucz = {autoconfirmed: "półzabezpieczona", sysop: "zabezpieczona"}; |
|||
if (editRestriction == moveRestriction) { |
|||
zabezpieczenie = klucz[editRestriction]; |
|||
} else { |
|||
if (editRestriction != 'brak') { |
|||
zabezpieczenie += klucz[editRestriction] + " przed edycją"; |
|||
if (moveRestriction != "brak") zabezpieczenie += ", "; |
|||
} |
|||
if (moveRestriction != 'brak') { |
|||
zabezpieczenie += klucz[moveRestriction] + " przed przeniesieniem" |
|||
} |
|||
} |
|||
$("<span class='restr'>Strona " + zabezpieczenie + ".</span>").css({ |
|||
float: "right" |
|||
}).appendTo("#contentSub"); |
|||
} |
|||
if (mw.config.get('wgRestrictionEdit') !== null && mw.config.get('wgRestrictionMove') !== null) jQuery(document).ready(Zab); |
|||
/*** Skrypty dotyczące Gry ***/ |
|||
/** Collapsible tables ** |
|||
* Description: Allows tables to be collapsed, showing only the header. See |
|||
* [[en:Wikipedia:NavFrame]]. |
|||
* Maintainers: [[User:R. Koot]] |
|||
* Zmodyfikowane przez [[User:Polskacafe]] |
|||
*/ |
|||
/* |
|||
Wartości collapseCaption i expandCaption można zmieniać z poziomu tabeli z użyciem data-expand-text, data-collapse-text i data-width (w przypadku gdy tekst jest za długi). |
|||
*/ |
|||
var autoCollapse = 2; |
|||
var collapseCaption = "Ukryj"; |
|||
var expandCaption = "Pokaż"; |
|||
function collapseTable(tableIndex) { |
|||
var i; |
|||
var Button = document.getElementById("collapseButton" + tableIndex); |
|||
var Table = document.getElementById("collapsibleTable" + tableIndex); |
|||
if (!Table || !Button) { return false; } |
|||
var Rows = Table.rows; |
|||
if (Button.firstChild.data == collapseCaption || Button.firstChild.data == Table.dataset.collapseText) { |
|||
for (i = 1; i < Rows.length; i++) { |
|||
Rows[i].style.display = "none"; |
|||
} |
|||
if (!Table.dataset.expandText) { |
|||
Button.firstChild.data = expandCaption; |
|||
} else { |
|||
Button.firstChild.data = Table.dataset.expandText; |
|||
} |
|||
} else { |
|||
for (i = 1; i < Rows.length; i++) { |
|||
Rows[i].style.display = Rows[0].style.display; |
|||
} |
|||
if (!Table.dataset.collapseText) { |
|||
Button.firstChild.data = collapseCaption; |
|||
} else { |
|||
Button.firstChild.data = Table.dataset.collapseText; |
|||
} |
|||
} |
|||
} |
|||
function createCollapseButtons() { |
|||
var i; |
|||
var tableIndex = 0; |
|||
var NavigationBoxes = {}; |
|||
var Tables = document.getElementsByTagName("table"); |
|||
for (i = 0; i < Tables.length; i++) { |
|||
if (hasClass(Tables[i], "collapsible")) { |
|||
/* only add button and increment count if there is a header row to work with */ |
|||
var HeaderRow = Tables[i].getElementsByTagName("tr")[0]; |
|||
if (!HeaderRow) continue; |
|||
var Header = HeaderRow.getElementsByTagName("th")[0]; |
|||
if (!Header) continue; |
|||
NavigationBoxes[tableIndex] = Tables[i]; |
|||
Tables[i].setAttribute("id", "collapsibleTable" + tableIndex); |
|||
var Button = document.createElement("span"); |
|||
var ButtonLink = document.createElement("a"); |
|||
var ButtonText = document.createTextNode(collapseCaption); |
|||
Button.style.styleFloat = "right"; |
|||
Button.style.cssFloat = "right"; |
|||
Button.style.fontWeight = "normal"; |
|||
Button.style.textAlign = "right"; |
|||
if (!Tables[i].dataset.width) { |
|||
Button.style.width = "6em"; |
|||
} else { |
|||
Button.style.width = Tables[i].dataset.width; |
|||
} |
|||
ButtonLink.style.color = Header.style.color; |
|||
ButtonLink.setAttribute("id", "collapseButton" + tableIndex); |
|||
ButtonLink.setAttribute("href", "javascript:collapseTable(" + tableIndex + ");"); |
|||
ButtonLink.appendChild(ButtonText); |
|||
Button.appendChild(document.createTextNode("[")); |
|||
Button.appendChild(ButtonLink); |
|||
Button.appendChild(document.createTextNode("]")); |
|||
Header.insertBefore(Button, Header.childNodes[0]); |
|||
tableIndex++; |
|||
} |
|||
} |
|||
for (i = 0; i < tableIndex; i++) { |
|||
if (hasClass(NavigationBoxes[i], "collapsed") || (tableIndex >= autoCollapse && hasClass(NavigationBoxes[i], "autocollapse"))) { |
|||
collapseTable(i); |
|||
} else if (hasClass(NavigationBoxes[i], "innercollapse")) { |
|||
var element = NavigationBoxes[i]; |
|||
while (element = element.parentNode) { |
|||
if (hasClass(element, "outercollapse")) { |
|||
collapseTable(i); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
jQuery(document).ready(createCollapseButtons); |
|||
/* Zmiana tytułu strony, autor: [[user:Vae]], Public Domain */ |
|||
/* Użycie: {{nibytytul|Przykladowy tytul}} */ |
|||
/* {{nibytytul|Przykladowy tytul|sub=Podtytul}} */ |
|||
// TODO: Przerobić na jQuery, żeby ktoś chociaż wiedział, jak to ma działać |
|||
function uChangeTitle() { |
|||
var staryTytul = null; |
|||
staryTytul = returnObjById("firstHeading"); /* monobook */ |
|||
if (!staryTytul) { |
|||
if (mw.config.get('skin') === 'minerva') { |
|||
staryTytul = returnObjById("section_0"); /* minerva */ |
|||
} else { |
|||
var h1 = document.body.getElementsByTagName("h1"); |
|||
staryTytul = h1[0]; |
|||
} |
|||
} |
|||
var nowyTytul = null; |
|||
nowyTytul = returnObjById("uTytulStrony"); |
|||
if (nowyTytul && staryTytul) { |
|||
if (staryTytul.innerHTML.match(/<span>/i)) |
|||
staryTytul.innerHTML = staryTytul.innerHTML.replace(/^(.*?)<span>/, returnObjById("uTytulStrony").innerHTML + "<span>"); |
|||
else |
|||
staryTytul.innerHTML = returnObjById("uTytulStrony").innerHTML; |
|||
staryTytul.style.backgroundColor = nowyTytul.style.backgroundColor; |
|||
staryTytul.style.color = nowyTytul.style.color; |
|||
// sprawdzamy, czy podtytul tez jest do zamiany |
|||
var ssub = returnObjById("uPodtytulStrony"); |
|||
var sub = returnObjById("siteSub"); |
|||
if (ssub && ssub.innerHTML && sub) { |
|||
sub.innerHTML = ssub.innerHTML; |
|||
} |
|||
} |
|||
if (returnObjById("uLogoStrony")) { |
|||
var a = (skin == "monobook") ? returnObjById("p-logo").getElementsByTagName('a')[0] : returnObjById("wiki_logo"); |
|||
a.style.backgroundImage = "url(" + returnObjById("uLogoStrony").getElementsByTagName('img')[0].src + ")"; |
|||
} |
|||
return; |
|||
} |
|||
jQuery(document).ready(uChangeTitle); |
|||
/* Skrypt dla Szablon:Galeria */ |
|||
function toggleImage(group, remindex, shwindex) { |
|||
jQuery("#ImageGroupsGr" + group + "Im" + remindex).hide(); |
|||
jQuery("#ImageGroupsGr" + group + "Im" + shwindex).show(); |
|||
} |
|||
function ImageGroup() { |
|||
jQuery('div.ImageGroup').each(function(i, group) { |
|||
var unitnode = jQuery('div.ImageGroupUnits', group).get(0); |
|||
if (unitnode == undefined) { |
|||
return 1; |
|||
} |
|||
var units = jQuery(unitnode).children('.center'); |
|||
var count = units.get().length; |
|||
if (count <= 1) { |
|||
return 1; |
|||
} |
|||
units.each(function(j, currentimage) { |
|||
jQuery(currentimage).attr('id', "ImageGroupsGr" + i + "Im" + j); |
|||
var leftlink = jQuery('<a href="#"/>'); |
|||
if (j != 0) { |
|||
leftlink.text('◀').click(function() { |
|||
toggleImage(i, j, j - 1); |
|||
return false; |
|||
}); |
|||
} |
|||
var rightlink = jQuery('<a href="#"/>'); |
|||
if (j != count - 1) { |
|||
rightlink.text('▶').click(function() { |
|||
toggleImage(i, j, j + 1); |
|||
return false; |
|||
}); |
|||
} |
|||
jQuery('<div/>').css({ |
|||
'font-size': '110%', |
|||
'font-weight': 'bold' |
|||
}) |
|||
.append(leftlink) |
|||
.append('<samp>(' + (j + 1) + '/' + count + ')</samp>') |
|||
.append(rightlink) |
|||
.prependTo(jQuery(currentimage)); |
|||
if (j != 0) { |
|||
jQuery(currentimage).hide().addClass('noprint'); |
|||
} |
|||
}); |
|||
}); |
|||
} |
|||
$(ImageGroup); |
|||
/* Robienie rzeczy */ |
|||
$('.purgeNoConfirm').on( 'click', function (e) { |
|||
new mw.Api().post( { action: 'purge', titles: mw.config.get( 'wgPageName' ) } ).then(function () { |
|||
location.reload(); |
|||
}, function () { |
|||
mw.notify( 'Purge failed', { type: 'error' } ); |
|||
}); |
|||
e.preventDefault(); |
|||
}); |
|||
/* </pre></nowiki> */ |
/* </pre></nowiki> */ |
Aktualna wersja na dzień 22:15, 13 mar 2022
/* <pre><nowiki> */
/**
* W tym pliku już nic nie ma, bo wszystko poprzenosiliśmy do gadżetów.
* Lista gadżetów dostępna jest tutaj: [[MediaWiki:Gadgets-definition]]. Jeśli o tym nie wiedziałeś, to nie ruszaj – pewnie i tak nie zrozumiesz co jest od czego.
* Zobacz też [[User:Ostrzyciel/skórburdel]], tam jest rozpiska który plik JS/CSS się kiedy ładuje.
* a, i jak robisz, to ograniczaj doładowywanie rzeczy typu mw.loader.load, bo to muli
**/
/* </pre></nowiki> */