MediaWiki:Pahyl.js
Z WikiSkript
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)
- Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
- Opera: Stiskněte Ctrl-F5.
/**
* Nástroj "Pahýl" pro editace
*
* @file Nástroj "Pahýl" pro editace
* @license https://www.gnu.org/licenses/gpl.html GNU General Public License 3.0
*/
var gadgetStub = {
/**
* Vložení šablony pahýlu na pozici kurzoru
*
* @param {reason} Důvod pahýlu.
*/
vlozitTextarea : function(reason) {
textovePole = "wpTextbox1";
pridanyText = "{{Pahýl|" + reason + "}}";
// vyhledání zadaného ID
if(!document.getElementById(textovePole)) return;
textovePole = document.getElementById(textovePole);
// Microsoft Internet Explorer
if (document.selection) {
textovePole.focus();
// vložení do výběru
oblastVlozeni = document.selection.createRange();
oblastVlozeni.text = pridanyText;
}
// ostatní prohlížeče
else if (textovePole.selectionStart || textovePole.selectionStart == 0) {
// vložení do pole a aktualizace celého textu
startText = textovePole.selectionStart;
endText = textovePole.selectionEnd;
aktualniText = textovePole.value;
textovePole.value = aktualniText.substring(0, startText);
textovePole.value += pridanyText;
textovePole.value += aktualniText.substring(endText, aktualniText.length);
}
// nepodporující prohlížeče: vložení textu na konec pole
else {
textovePole.value += pridanyText;
}
},
/**
* Volání tlačítkem editační lišty.
*
*/
thisIsStub : function() {
reason = window.prompt("Upřesněte, prosím, co především danému článku chybí.", "");
gadgetStub.vlozitTextarea(reason);
return false;
},
/**
* Definice tlačítka Pahýl
*/
insertStubButton : function() {
$('#wpTextbox1').wikiEditor('addToToolbar', {
'section': 'advanced',
'group': 'insert',
'tools': {'stub': {
label: 'Označit jako pahýl',
type: 'button',
icon: 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Symbol_stub_class.svg/19px-Symbol_stub_class.svg.png',
action: {type: 'callback',
execute: function(context){gadgetStub.thisIsStub();}
}
}}
});
}
}
/**
* Spuštění nástroje
*/
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
mw.loader.using( 'user.options' ).then( function () {
// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
$.when(
mw.loader.using( 'ext.wikiEditor' ), $.ready
).then( gadgetStub.insertStubButton );
}
} );
}