Uživatel:Sintakso/common.js
Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
- Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5.
window.hotcat_translations_from_commons = true;
/*
This imports the latest version of HotCat from Commons.
HotCat is a gadget to make changes to categories much easier.
Full documentation can be found at http://commons.wikimedia.org/wiki/Help:Gadget-HotCat
*/
mw.loader.load( '//commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-HotCat.js&action=raw&ctype=text/javascript' );
// <nowiki>
/*
* Uživatelské nástroje
*/
mw.loader.using("mw.Api").then(function (mw, $) {
'use strict';
/* Odkazy na pískoviště */
mw.util.addPortletLink(
'p-personal',
'https://cs.wiktionary.org/wiki/U%C5%BEivatel:Sintakso/P%C3%ADskovi%C5%A1t%C4%9B',
'Pískoviště',
'pt-u-sandbox1',
'Odkaz na pískoviště',
'p',
'#pt-mytalk'
);
var NUM_SANDBOXES = 4;
for (var i = 2; i <= NUM_SANDBOXES; i++) {
mw.util.addPortletLink(
'p-personal',
'https://cs.wiktionary.org/wiki/U%C5%BEivatel:Sintakso/P%C3%ADskovi%C5%A1t%C4%9B' + i,
i,
('pt-u-sandbox' + i),
'Odkaz na pískoviště',
'p',
'#pt-mytalk'
);
}
var sapi = {};
sapi.errorTypes = {NOT_FOUND: 1, UNEXPECTED_RESPONSE: 2};
sapi.capitalize = function(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
};
sapi.createTitle = function(string, level) {
return "=".repeat(level) + " " + string + " " + "=".repeat(level);
};
sapi.trimTitle = function(title) {
return title.replace(/=/g, "").trim();
};
sapi.trimTrailing = function(string) {
return string.replace(/\n$/, '');
};
/*
* Získá obsah stránky s názvem pageTitle z API
*/
sapi.getPageContent = function(pageTitle) {
var result = new $.Deferred();
var error = {msg: undefined, type: undefined};
new mw.Api().get({
action: 'query',
prop: 'revisions',
rvslots: '*',
rvprop: ['content'],
titles: [pageTitle],
}).then(function (data) {
if (!data.query || !data.query.pages) {
error.msg = "Unexpected response: No query or no pages!";
error.type = sapi.errorTypes.UNEXPECTED_RESPONSE;
return result.reject(error);
}
var pages = data.query.pages;
if (Object.keys(pages).length === 0) {
error.msg = "Unexpected response: No pages!";
error.type = sapi.errorTypes.UNEXPECTED_RESPONSE;
return result.reject(error);
}
var page = pages[Object.keys(pages)[0]];
if (page.missing !== undefined) {
error.msg = "The requested page does not exist!";
error.type = sapi.errorTypes.NOT_FOUND;
return result.reject(error);
}
if (!page.revisions || page.revisions.length === 0
|| !page.revisions[0].slots
|| !page.revisions[0].slots.main) {
error.msg = "Unexpected response: No revisions!";
error.type = sapi.errorTypes.UNEXPECTED_RESPONSE;
return result.reject(error);
}
var revision = page.revisions[0].slots.main;
if (!revision['*']) {
error.msg = "Unexpected response: No content!";
error.type = sapi.errorTypes.UNEXPECTED_RESPONSE;
return result.reject(error);
}
var content = revision['*'];
return result.resolve(content);
});
return result.promise();
};
/*
* Averti — nástroj pro zjednodušené vkládání varování na diskusní stránky
uživatelů
*/
var averti = {};
averti.ANIMATION_TIME = 200;
averti.scriptLink = "Special:PermaLink/1107588";
averti.warningTypes = [
{name: "Experimenty", pageNameParameter: true},
{name: "Experimenty2", pageNameParameter: false},
{name: "Spam", pageNameParameter: true},
{name: "Mimo záběr", pageNameParameter: true}
];
averti.warnUser = function(event, title, username, warnElement, warningType) {
event.preventDefault();
var talkPageTitle = "User talk:" + username;
/* Připravit varovnou zprávu a shrnutí editace */
var warningMessage = "{{subst:" + warningType.name;
if (warningType.pageNameParameter === true) {
warningMessage += "|" + title;
}
warningMessage += "}} ~~~~";
var summary = "[[" + averti.scriptLink
+ "|Averti]]: Vloženo varování " + warningType.name;
/* Pokusit se získat text diskusní stránky uživatele */
sapi.getPageContent(talkPageTitle).done(function(content) {
/* Text úspěšně získán */
/* Připravit nadpis s měsícem a rokem */
var today = new Date();
var month = sapi.capitalize(
today.toLocaleString('default', {month: 'long'}));
var year = today.getFullYear();
var titleName = month + " " + year;
var titleString = sapi.createTitle(titleName, 2);
/* Vyhledat nadpisy existujících vláken */
var titleRegex = /^==\s?(.+?)\s?==$/gm;
var matches = content.match(titleRegex);
content = sapi.trimTrailing(content) + "\n\n";
if (matches === null || matches.length === 0
|| sapi.trimTitle(matches[matches.length - 1]) != titleName) {
/* Přidat nadpis pokud již není vložen jako poslední sekce
na stránce */
content += titleString + "\n";
}
content += warningMessage;
/* Uložit nový text stránky */
new mw.Api().edit(
talkPageTitle,
function ( revision ) {
return {
text: content,
summary: summary
};
}
).done(function() {
mw.notify("Varování vloženo.");
}).fail(function(error) {
console.log(error);
mw.notify("Při ukládání varování došlo k chybě.");
});
}).fail(function(error) {
if (error.type == sapi.errorTypes.NOT_FOUND) {
/* Diskusní stránka dosud neexistuje — založit */
new mw.Api().create(talkPageTitle,
{summary: summary},
warningMessage
).done(function() {
mw.notify("Založena diskusní stránka s varováním.");
}).fail(function(error) {
console.log(error);
mw.notify("Při vytváření diskusní stránky došlo k chybě.");
});
} else {
mw.notify("Chyba: " + error.msg);
}
});
};
averti.initiateWarning = function(event, title, username, warnElement) {
event.preventDefault();
$(warnElement.children()[0]).hide(averti.ANIMATION_TIME, function() {
var span = $("<span></span>").text("Zvolte varování ");
for (var i = 0; i < averti.warningTypes.length; i++) (function(i) {
var link = $("<a></a>").attr("href", "https://cs.wiktionary.org/wiki/Diskuse_s_uživatelem:" + username).text(averti.warningTypes[i].name);
span.append(link).append(" ");
link.click(function(event) {
averti.warnUser(event, title, username, span, averti.warningTypes[i]);
});
})(i);
var cancel = $("<a></a>").attr("href", "https://cs.wiktionary.org/wiki/Diskuse_s_uživatelem:" + username).text("storno");
cancel.click(function(event) {
event.preventDefault();
span.hide(averti.ANIMATION_TIME, function() {
span.remove();
$(warnElement.children()[0]).show(averti.ANIMATION_TIME);
});
});
span.append(cancel);
span.hide();
warnElement.append(span);
span.show(averti.ANIMATION_TIME);
});
};
averti.init = function() {
$(".mw-changeslist-line-inner").each(function() {
/* Získat název editované stránky a uživatelské jméno */
var titleElem = $(this).children(".mw-title")[0];
if (titleElem === undefined) {
return;
}
var title = $(titleElem).children(".mw-changeslist-title")[0].text;
var userElem = $(this).children(".mw-userlink")[0];
var username = userElem.innerText;
/* Vložit odkaz pro varování */
var span = $("<span></span>");
var link = $("<a></a>")
.attr("href", "https://cs.wiktionary.org/wiki/Diskuse_s_uživatelem:" + username)
.text("varovat");
span.append(link);
span.hide();
var links = $(this).children(".mw-usertoollinks")[0];
$(links).append(span);
span.show(averti.ANIMATION_TIME);
/* Při kliknutí provést akci */
$(link).click(function(event) {
averti.initiateWarning(event, title, username, span);
});
});
};
if (mw.config.get('wgCanonicalNamespace') === 'Special') {
averti.init();
console.log("Averti načteno.");
}
} (mediaWiki, jQuery));
/**
* @brief
* Automatické kosmetické úpravy.
*
* @details
* Před uložením stránky provádí následující kosmetické úpravy:
* * nadpisy volně s odřádkováním před a bez odřádkování za
* * volný zápis * a # seznamů
* * reference přiražené k textu
* * dlouhá pomlčka místo krátké nebo spojovníku v proškrtnutých položkách seznamů
* * číslování {{Překlady}}
* * rozložený zápis prázdné šablony {{Překlady}}
* * správný zápis kategorií
* * formátování víceřádkových šablon
* * správný zápis <br /> a <hr />
* * správný zápis <references />
* * odstranění mezer na konci řádku
* * odstranění vícenásobných mezer v textu
* * odstranění vícenásobného odřádkování
*
* @author
* [[meta:User:Danny B.]]
*/
/*global mediaWiki, jQuery */
/*jslint browser: true, plusplus: true, white: true */
/*jshint browser:true, laxbreak:false, plusplus:false, white:false, undef:true, unused:true */
( function ( mw, $ ) {
'use strict';
if ( mw.config.get( 'wgNamespaceNumber' ) || !/^(edit|submit)$/.test( mw.config.get( 'wgAction' ) ) ) {
return;
}
$( document ).ready( function () {
var replacements = [
[
/(^|\n)(==+)([^=]+)(\2) *(?=\n)/g,
function ( $0, $1, $2, $3, $4 ) {
return $1 + '\n' + $2 + ' ' + $.trim( $3 ) + ' ' + $4;
}
], [
/\n\{\{\s*[Ss][Uu][Bb][Ss][Tt]\s*:\s*Vzor /g,
'\n\n{{subst:Vzor '
], [
/\n([#\*]+)([^\n]*)/g,
function ( $0, $1, $2 ) {
return '\n' + $1 + ' ' + $.trim( $2 );
}
], [
/([^\n]) *<ref/,
'$1<ref'
], [
/# [-–] */g,
'# —'
], [
/\n *\{\{Překlady/g,
'\n# {{Překlady'
], [
/# \{\{Překlady *\}\}/g,
'# {{Překlady\n}}'
], [
/\[\[ *Kategorie *:([^\]]+)\]\]/gi,
function ( $0, $1 ) {
return '\n[[Kategorie:' + $.trim( $1 ) + ']]\n';
}
], [
/(\[\[Kategorie:[^\]]+\]\])\n+(?!\[\[[a-z])/g,
'$1\n'
], [
/\n+ *\|([^=\n]+)=(?![^\n\|]*\|\|[^\n]*\n)([^\n]*)(?=\n)/g,
function ( $0, $1, $2 ) {
return '\n | ' + $.trim( $1 ) + ' = ' + $.trim( $2 );
}
], [
/< *\/? *([bh]r) *\/? *>/g,
'<$1 />'
], [
/< *references *\/ *>/g,
'<references />'
], [
/([^=]) +\n/g,
'$1\n'
], [
/([^\n]) +/g,
'$1 '
], [
/\n{3,}/g,
'\n\n'
], [
// Oprava ohýbacích šablon zanechávajících za sebou volný řádek
/(\{\{subst:Vzor .+?\|.+?\|x}})\n{2,}([=]+.+?[=]+)/g,
'$1\n$2'
], [
// Automatická optimalizace wikiodkazů (např. [[odkaz|odkazu]]
// -> [[odkaz]]u)
/\[\[([^\|\]]+)\|\1([^\]]*)\]\]/g,
'[[$1]]$2'
]
];
$( '#wpSave' ).click( function () {
$( '#wpTextbox1' ).val( function ( index, oldPageText ) {
var newPageText = oldPageText;
$.each( replacements, function ( index, replacement ) {
newPageText = newPageText.replace( replacement[0], replacement[1] );
});
newPageText = $.trim( newPageText ) + '\n';
if ( newPageText !== oldPageText ) {
$( '#wpSummary' ).val( function ( index, summary ) {
var summarySeparator = '';
summary = $.trim( summary );
if ( summary !== '' ) {
summarySeparator = /^\/\*.*\*\/$/.test( summary ) ? ' ' : ', ';
}
return summary + summarySeparator + '[[Special:PermaLink/1087762|AKÚ (upravená verze)]]';
});
}
return newPageText;
});
return true;
});
});
}( mediaWiki, jQuery ) );
//Zobrazení rozbalených tabulek
(function ($) {
$("table").removeClass("mw-collapsed");
}(jQuery));
// </nowiki>