MediaWiki:Common.js: Razlika med redakcijama
(Nova stran z vsebino: //<source lang="JavaScript"> /** Extra toolbar options ****************************************************** * * Description: Adds extra buttons to the editing toolbar....) |
Brez povzetka urejanja |
||
| Vrstica 172: | Vrstica 172: | ||
} | } | ||
// apply tagOpen/tagClose to selection in textarea, | |||
// use sampleText instead of selection if there is none | |||
// copied and adapted from phpBB | |||
function insertTags(tagOpen, tagClose, sampleText) { | |||
if (document.editform) | |||
var txtarea = document.editform.wpTextbox1; | |||
else { | |||
// some alternate form? take the first one we can find | |||
var areas = document.getElementsByTagName('textarea'); | |||
var txtarea = areas[0]; | |||
} | |||
// IE | |||
if (document.selection && !is_gecko) { | |||
var theSelection = document.selection.createRange().text; | |||
if (!theSelection) | |||
theSelection=sampleText; | |||
txtarea.focus(); | |||
if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any | |||
theSelection = theSelection.substring(0, theSelection.length - 1); | |||
document.selection.createRange().text = tagOpen + theSelection + tagClose + " "; | |||
} else { | |||
document.selection.createRange().text = tagOpen + theSelection + tagClose; | |||
} | |||
// Mozilla | |||
} else if(txtarea.selectionStart || txtarea.selectionStart == '0') { | |||
var replaced = false; | |||
var startPos = txtarea.selectionStart; | |||
var endPos = txtarea.selectionEnd; | |||
if (endPos-startPos) | |||
replaced = true; | |||
var scrollTop = txtarea.scrollTop; | |||
var myText = (txtarea.value).substring(startPos, endPos); | |||
if (!myText) | |||
myText=sampleText; | |||
if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any | |||
subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " "; | |||
} else { | |||
subst = tagOpen + myText + tagClose; | |||
} | |||
txtarea.value = txtarea.value.substring(0, startPos) + subst + | |||
txtarea.value.substring(endPos, txtarea.value.length); | |||
txtarea.focus(); | |||
//set new selection | |||
if (replaced) { | |||
var cPos = startPos+(tagOpen.length+myText.length+tagClose.length); | |||
txtarea.selectionStart = cPos; | |||
txtarea.selectionEnd = cPos; | |||
} else { | |||
txtarea.selectionStart = startPos+tagOpen.length; | |||
txtarea.selectionEnd = startPos+tagOpen.length+myText.length; | |||
} | |||
txtarea.scrollTop = scrollTop; | |||
// All other browsers get no toolbar. | |||
// There was previously support for a crippled "help" | |||
// bar, but that caused more problems than it solved. | |||
} | |||
// reposition cursor if possible | |||
if (txtarea.createTextRange) | |||
txtarea.caretPos = document.selection.createRange().duplicate(); | |||
} | |||
//</source> | //</source> | ||
Redakcija: 23:38, 20. november 2010
//<source lang="JavaScript">
/** Extra toolbar options ******************************************************
*
* Description: Adds extra buttons to the editing toolbar.
*
* To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]].
*
* Maintainers: [[User:MarkS]], [[User:Voice of All]], [[User:R. Koot]]
*/
if (mwCustomEditButtons) {
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
"speedTip": "Redirect",
"tagOpen": "#REDIRECT [[",
"tagClose": "]]",
"sampleText": "Target page name"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png",
"speedTip": "Strike",
"tagOpen": "<s>",
"tagClose": "</s>",
"sampleText": "Strike-through text"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
"speedTip": "Line break",
"tagOpen": "<br />",
"tagClose": "",
"sampleText": ""
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png",
"speedTip": "Superscript",
"tagOpen": "<sup>",
"tagClose": "</sup>",
"sampleText": "Superscript text"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png",
"speedTip": "Subscript",
"tagOpen": "<sub>",
"tagClose": "</sub>",
"sampleText": "Subscript text"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png",
"speedTip": "Small",
"tagOpen": "<small>",
"tagClose": "</small>",
"sampleText": "Small Text"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png",
"speedTip": "Insert hidden Comment",
"tagOpen": "<!-- ",
"tagClose": " -->",
"sampleText": "Comment"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/1/12/Button_gallery.png",
"speedTip": "Insert a picture gallery",
"tagOpen": "\n<gallery>\n",
"tagClose": "\n</gallery>",
"sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
"speedTip": "Insert block of quoted text",
"tagOpen": "<blockquote>\n",
"tagClose": "\n</blockquote>",
"sampleText": "Block quote"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/en/6/60/Button_insert_table.png",
"speedTip": "Insert a table",
"tagOpen": '{| class="wikitable"\n|',
"tagClose": "\n|}",
"sampleText": "-\n! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"
});
mwCustomEditButtons.push({
"imageFile": "http://upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png",
"speedTip": "Insert a reference",
"tagOpen": "<ref>",
"tagClose": "</ref>",
"sampleText": "Insert footnote text here"
});
}
//fix edit summary prompt for undo
//this code fixes the fact that the undo function combined with the "no edit summary prompter" causes problems if leaving the
//edit summary unchanged
//this was added by [[User:Deskana]], code by [[User:Tra]]
//see bug 8912
addOnloadHook(function () {
if (document.location.search.indexOf("undo=") != -1
&& document.getElementsByName('wpAutoSummary')[0]) {
document.getElementsByName('wpAutoSummary')[0].value='1';
}
})
/** Edittools javascript loader ************************************************
*
* Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing
* version number in the URL in order to allow any changes to the edittools to
* be rapidly deployed to users.
*
* Note that, by default, this function does nothing unless the element with
* the ID "editpage-specialchars" (which contains the old edittools code in
* [[MediaWiki:Edittools]], and will be retained as a placeholder in the new
* implementation) has a class named "edittools-version-NNN", where NNN is a
* number. If the class name has "test" before the number, the code will only
* run for users who have set "window.testJsEdittools = true" in their user JS.
* The "test" should be retained in the class name until the new edittools
* implementation is ready and fully tested, and until at least 30 days have
* passed since this loader stub was added (which will be in 27 June 2008).
*
* For compatibility with Alex Smotrov's original implementation, on which this
* code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this
* loader can also be disabled by setting "window.noDefaultEdittools = true".
*
* Maintainers: [[User:Ilmari Karonen]]
*/
//Prevent the static edittools from flashing before the compact edittools below is loaded.
appendCSS('div.edittools-text { display:none; }');
addOnloadHook(function () {
// needs to be deferred until the DOM has fully loaded
var placeholder = document.getElementById("editpage-specialchars");
if (!placeholder || window.noDefaultEdittools) {
//Show the static edittools again for users with "window.noDefaultEdittools=true".
appendCSS('div.edittools-text { display:block; }');
return;
}
var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
// set window.testJsEdittools = true to enable testing before full deployment
if (!match && window.testJsEdittools)
match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
if (!match) return;
var url = wgScript + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
importScriptURI(url);
});
// Turn on spellchecking in the edit summary field, for Firefox.
// Temporary until [[bugzilla:21604]] is deployed
addOnloadHook( function() {
var wpSummary = document.getElementById( "wpSummary" );
if ( wpSummary && typeof wpSummary.spellcheck != undefined )
wpSummary.spellcheck = true;
} );
/* Remove when http://www.mediawiki.org/wiki/Special:Code/MediaWiki/65899 is deployed */
if( wgPageName == "Special:Upload" && getURLParamValue( "wpForReUpload") == "1" ) {
appendCSS( "tr.mw-htmlform-field-Licenses {display:none;}" );
}
// apply tagOpen/tagClose to selection in textarea,
// use sampleText instead of selection if there is none
// copied and adapted from phpBB
function insertTags(tagOpen, tagClose, sampleText) {
if (document.editform)
var txtarea = document.editform.wpTextbox1;
else {
// some alternate form? take the first one we can find
var areas = document.getElementsByTagName('textarea');
var txtarea = areas[0];
}
// IE
if (document.selection && !is_gecko) {
var theSelection = document.selection.createRange().text;
if (!theSelection)
theSelection=sampleText;
txtarea.focus();
if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any
theSelection = theSelection.substring(0, theSelection.length - 1);
document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
} else {
document.selection.createRange().text = tagOpen + theSelection + tagClose;
}
// Mozilla
} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
var replaced = false;
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd;
if (endPos-startPos)
replaced = true;
var scrollTop = txtarea.scrollTop;
var myText = (txtarea.value).substring(startPos, endPos);
if (!myText)
myText=sampleText;
if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
} else {
subst = tagOpen + myText + tagClose;
}
txtarea.value = txtarea.value.substring(0, startPos) + subst +
txtarea.value.substring(endPos, txtarea.value.length);
txtarea.focus();
//set new selection
if (replaced) {
var cPos = startPos+(tagOpen.length+myText.length+tagClose.length);
txtarea.selectionStart = cPos;
txtarea.selectionEnd = cPos;
} else {
txtarea.selectionStart = startPos+tagOpen.length;
txtarea.selectionEnd = startPos+tagOpen.length+myText.length;
}
txtarea.scrollTop = scrollTop;
// All other browsers get no toolbar.
// There was previously support for a crippled "help"
// bar, but that caused more problems than it solved.
}
// reposition cursor if possible
if (txtarea.createTextRange)
txtarea.caretPos = document.selection.createRange().duplicate();
}
//</source>