Järjestelmäviesti:Common.js
Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.
- Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
- Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
- Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
- Opera: Paina Ctrl-F5.
/* '''Suomenkielisen Wikikirjaston JavaScript'''
* Tämän sivun koodi liitetään jokaiseen sivulataukseen
*
* Tämä sivu on suojattu [[Wikipedia:Ylläpitäjät|vain ylläpitäjien]] muokattavaksi. Mikäli haluat
* muutoksia JavaScript-koodiin, voit tehdä oman [[Toiminnot:Mypage/monobook.js|monobook.js]]-tiedoston tai
* esittää pyynnön jollekin tämän koodin ylläpitäjistä.
*
* Ylläpitäjät:
* [[Käyttäjä:Usp|Usp]] ([[Keskustelu käyttäjästä:Usp|keskustelu]])
*/
/* ============================================================
* BEGIN Muokkaa-linkki otsikon viereen
* Muokkaa-linkki karkaa kohdaltaan, jos otsikon vieressä on taulukko tai kuva.
* Tämä korjaa ongelman.
* Lähde:http://fi.wikipedia.org/wiki/Järjestelmäviesti:Gadget-muokkaa-linkki.js
*/
function setModifySectionStyle() {
try {
if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
var spans = document.getElementsByTagName("span");
for (var s = 0; s < spans.length; ++s) {
var span = spans[s];
if (span.className == "editsection") {
span.style.fontSize = "xx-small";
span.style.fontWeight = "normal";
span.style.cssFloat = span.style.styleFloat = "none";
span.parentNode.appendChild(document.createTextNode(" "));
span.parentNode.appendChild(span);
}
}
} catch (e) { /* something went wrong */ }
}
$(setModifySectionStyle);
/* END Muokkaa-linkki otsikon viereen
* ============================================================
*/
/* BEGIN Muokkaa-linkki johdantoon
* ============================================================
*/
$(function ()
{
// if this is preview page or generated page, stop
if(document.getElementById("wikiPreview") || window.location.href.indexOf("/wiki/Special:") != -1) return;
// get the page title
var pageTitle = document.title.split(" – ")[0].replace(" ", "_");
// create div and set innerHTML to link
var divContainer = document.createElement("div");
divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-right:15px;margin-top:3px;">[<a href="/w/index.php?title='+mw.config.get('wgPageName')+'&action=edit&section=0" title="'+mw.config.get('wgPageName')+'">muokkaa</a>]</div>';
// insert divContainer into the DOM before the h1
if(window.location.href.indexOf("&action=edit") == -1)
document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);
if(window.location.href.indexOf("&action=edit§ion=0") != -1)
document.getElementById("wpSummary").value = "/* Intro */ ";
});
/* Test if an element has a certain class **************************************
*
* Description: Uses regular expressions and caching for better performance.
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
*/
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
/* END Muokkaa-linkki johdantoon
* ============================================================
*/
/* BEGIN navbox
* ============================================================
*/
// Faster Dynamic Navigation
// set up the words in your language
var NavigationBarHide = '▲';
var NavigationBarShow = '▼';
var NavigationTitleHide = 'hide contents';
var NavigationTitleShow = 'show contents';
function collapseTable(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
var table, NavToggle = target;
if ( !hasClass(NavToggle, 'navigation') ) {
while (NavToggle && NavToggle.nodeName != "TH")
NavToggle = NavToggle.parentNode;
if (NavToggle && NavToggle.lastChild && hasClass(NavToggle.lastChild, 'navigation'))
NavToggle = NavToggle.lastChild;
else
return;
}
table = NavToggle.parentNode;
while (table && !hasClass(table, 'collapsible'))
table = table.parentNode;
if (!table)
return;
var rows = table.getElementsByTagName( "tr" );
if (NavToggle.firstChild.data == NavigationBarHide) {
for ( var i = 1; i < rows.length; i++ ) {
rows[i].style.display = "none";
}
NavToggle.firstChild.data = NavigationBarShow;
NavToggle.parentNode.setAttribute('title', NavigationTitleShow);
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for ( var i = 1; i < rows.length; i++ ) {
rows[i].style.display = rows[0].style.display;
}
NavToggle.firstChild.data = NavigationBarHide;
NavToggle.parentNode.setAttribute('title', NavigationTitleHide);
}
}
function createCollapseButtons()
{
var tables = document.getElementsByTagName( "table" ), NavToggle, NavToggleText, NavHead;
for ( var i = 0; i < tables.length; i++ ) {
if ( !hasClass( tables[i], "collapsible" ) )
continue;
NavHead = tables[i].getElementsByTagName("th");
/* only add button if there is a header row to work with */
if (NavHead) {
NavToggle = document.createElement( "a" );
NavToggleText = document.createTextNode(hasClass(tables[i], "selected") ? NavigationBarShow : NavigationBarHide);
NavToggle.setAttribute("class", "navigation");
NavToggle.appendChild( NavToggleText );
NavHead[0].appendChild(NavToggle);
NavHead[0].onclick = collapseTable;
// only bother to emulate click if if toggle button was added
if (document.createEvent) { // DOM 2 and DOM 3 compliant browsers
var e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true,true, window, 0,0,0,0,0, false,false,false,false, 0, null);
NavHead[0].dispatchEvent(e);
} else if (NavHead[0].fireEvent) { // IE
NavHead[0].fireEvent("onclick");
}
}
}
}
// shows and hides content and picture (if available) of navigation bars
function toggleNavigationBar(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
var NavFrame, NavToggle = target;
if ( !hasClass(NavToggle, 'navigation') ) {
while (NavToggle && !hasClass(NavToggle, 'NavHead') && !hasClass(NavToggle, 'title'))
NavToggle = NavToggle.parentNode;
if (NavToggle && NavToggle.lastChild && hasClass(NavToggle.lastChild, 'navigation'))
NavToggle = NavToggle.lastChild;
else
return;
}
NavFrame = NavToggle.parentNode;
while (NavFrame && !hasClass(NavFrame, 'NavFrame') && !hasClass(NavFrame, 'collapsible'))
NavFrame = NavFrame.parentNode;
if (!NavFrame)
return;
if (NavToggle.firstChild.data == NavigationBarHide) {
for (var NavChild=NavFrame.firstChild; NavChild != null; NavChild=NavChild.nextSibling) {
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic'))
NavChild.style.display = 'none';
}
NavToggle.firstChild.data = NavigationBarShow;
NavToggle.parentNode.setAttribute('title', NavigationTitleShow);
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic'))
NavChild.style.display = 'block';
}
NavToggle.firstChild.data = NavigationBarHide;
NavToggle.parentNode.setAttribute('title', NavigationTitleHide);
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
// iterate over all div elements
var NavFrame=document.getElementsByTagName("div");
for (var i=0; i < NavFrame.length; i++)
{
if ( !hasClass(NavFrame[i], "NavFrame") && !hasClass(NavFrame[i], "collapsible") )
continue;
var NavToggle = document.createElement("a");
var NavToggleText = document.createTextNode(hasClass(NavFrame[i], "selected") ? NavigationBarShow : NavigationBarHide);
NavToggle.className = 'navigation';
NavToggle.appendChild(NavToggleText);
// add NavToggle-Button as element inside of NavHead
for (var j=0; j < NavFrame[i].childNodes.length; j++) {
var NavHead = NavFrame[i].childNodes[j];
if (!hasClass(NavHead, "NavHead") && !hasClass(NavHead, "title"))
continue;
NavHead.appendChild(NavToggle);
NavHead.onclick = toggleNavigationBar;
// only bother to emulate click if if toggle button was added
if (document.createEvent) { // DOM 2 and DOM 3 compliant browsers
var e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true,true, window, 0,0,0,0,0, false,false,false,false, 0, null);
NavHead.dispatchEvent(e);
} else if (NavHead.fireEvent) { // IE
NavHead.fireEvent("onclick");
}
break;
}
}
}
$( createCollapseButtons );
$( createNavigationBarToggleButton );
/* END navbox
* ============================================================
*/
/*
mw-collapsible-custom tekee sivun alussa olevasta navigaatiovalikosta
avattavan ja suljettavan siten, että se on mobiililaitteissa
vakiona kiinni.
Järjestelmä muistaa cookiella lyhyen aikaa sen, että oliko
valikko kiinni vai auki.
3.2.2018 Kimmo Virtanen / Zache
*/
$(function() {
// Näyttää valikon ja tallentaa tilan keksiin
function showtable(table)
{
table.find(".buttonindicator").html("[<a class='mw-collapsible-text'>Piilota</a>]");
table.removeClass("mw-collapsed");
table.removeClass("mw-collapsible-minervahide");
table.find("tbody").show();
mw.cookie.set("showfiwikibooksnavi", 1, { path: '/', secure: false });
}
// Piilottaa valikon ja tallentaa tilan keksiin
function hidetable(table)
{
table.find(".buttonindicator").html("[<a class='mw-collapsible-text'>Näytä</a>]");
table.addClass("mw-collapsed");
table.find("tbody").hide();
mw.cookie.set("showfiwikibooksnavi", 2, { path: '/', secure: false });
}
// Lisätään näytä / piilota -valikko.
var e=$(".mw-collapsible-custom");
if (e.length>0)
{
var buttonindicator=$("<div>[<a class='mw-collapsible-text'>Piilota</a>]</div>");
buttonindicator.addClass("buttonindicator");
// Päivitetään tekstit sen perusteella, että onko valikko piilotettu CSS-säännöllä.
if (e.find("tbody").is(':visible')===false)
{
e.addClass("mw-collapsed");
buttonindicator.html("[<a class='mw-collapsible-text'>Näytä</a>]");
}
var clickhandler=function() {
var table=$(this).closest("table");
if (table.hasClass("mw-collapsible-custom")) {
if (table.hasClass("mw-collapsed"))
{
showtable(table);
}
else
{
hidetable(table);
}
}
};
var caption=e.find("caption").first();
caption.prepend(buttonindicator);
caption.click(clickhandler);
caption.addClass("collapsible-heading");
// Muistetaan valikon edellinen tila
mw.loader.using([
'mediawiki.cookie'
]).then( function () {
if (mw.cookie.get("showfiwikibooksnavi")==1)
{
showtable(e);
}
else if (mw.cookie.get("showfiwikibooksnavi")==2)
{
hidetable(e);
}
});
}
});
mw.loader.using( ['mediawiki.util','mediawiki.page.ready'], function() {
mw.hook('wikipage.content').add(function($where) {
var $content = mw.util.$content, $what = $where.find('.topicon').css('display', 'inline');
if ( $what.length ) {
$content.find(':header').eq(0).wrapInner('<span />').append( $('<span id="page-status" />').append($what) );
}
$what = $where.find('#top-navigation').remove().slice(0,1).addClass('subpages');
if ( $what.length ) { $content.find('.subpages').eq(0).replaceWith($what); }
$what = $where.find('#bottom-navigation').remove().slice(0,1);
if ( $what.length ) { $where.append($what); }
});
});