Difference between revisions of "MediaWiki:Common.js/edit.js"
m |
(moved wiki button images to regular dir on webserver) |
||
(46 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
/*** Symbol information list ***/ | /*** Symbol information list ***/ | ||
var symbols = new Array(); | var symbols = new Array(); | ||
− | symbols[" | + | symbols["id"] = "symbols_box"; |
+ | symbols["header"] = "Insert a character"; | ||
symbols["sections"] = new Array(); | symbols["sections"] = new Array(); | ||
symbols["sections"]["nonstandard"] = new Array(); | symbols["sections"]["nonstandard"] = new Array(); | ||
symbols["sections"]["nonstandard"]["title"] = "Symbols"; | symbols["sections"]["nonstandard"]["title"] = "Symbols"; | ||
− | symbols["sections"]["nonstandard"]["items"] = new Array("–", "—", " ", "¡", "¿", "†", "‡", "§", "Ø", "ø", " ", "·", " ", "←", "→", "↑", "↓", " ", "½", "⅓", "⅔", "¼", "¾", "⅛", "⅜", "⅝", "⅞"); | + | symbols["sections"]["nonstandard"]["items"] = new Array("–", "—", " ", "¡", "¿", "†", "‡", "§", "Ø", "ø", " ", "·", "…", " ", "←", "→", "↑", "↓", " ", "½", "⅓", "⅔", "¼", "¾", "⅛", "⅜", "⅝", "⅞"); |
symbols["sections"]["vowels"] = new Array(); | symbols["sections"]["vowels"] = new Array(); | ||
Line 22: | Line 23: | ||
/*** Template information list ***/ | /*** Template information list ***/ | ||
var templates = new Array(); | var templates = new Array(); | ||
− | templates[" | + | templates["id"] = "templates_box"; |
+ | templates["header"] = "Insert a template"; | ||
templates["sections"] = new Array(); | templates["sections"] = new Array(); | ||
templates["sections"]["stubs"] = new Array(); | templates["sections"]["stubs"] = new Array(); | ||
templates["sections"]["stubs"]["title"] = "Stubs"; | templates["sections"]["stubs"]["title"] = "Stubs"; | ||
− | templates["sections"]["stubs"]["items"] = new Array("{{ | + | templates["sections"]["stubs"]["items"] = new Array("{{Stub}}", "{{Sectionstub}}"); |
templates["sections"]["notices"] = new Array(); | templates["sections"]["notices"] = new Array(); | ||
templates["sections"]["notices"]["title"] = "Notices"; | templates["sections"]["notices"]["title"] = "Notices"; | ||
− | templates["sections"]["notices"]["items"] = new Array("{{Citation needed}}", "{{ | + | templates["sections"]["notices"]["items"] = new Array("{{Citation needed}}", "{{Refimprove}}", "{{Update Needed}}", "{{Cleanup}}", "{{Verify}}", "{{NonCanon}}"); |
templates["sections"]["misc"] = new Array(); | templates["sections"]["misc"] = new Array(); | ||
templates["sections"]["misc"]["title"] = "Miscellaneous"; | templates["sections"]["misc"]["title"] = "Miscellaneous"; | ||
− | templates["sections"]["misc"]["items"] = new Array("{{ | + | templates["sections"]["misc"]["items"] = new Array("{{Disambig}}", "{{Emoticon| :) }}", "{{Quote|Write quote here}}", "{{Yearlist}}", "|{{PAGENAME}}"); |
/*********************************************************** | /*********************************************************** | ||
− | * | + | * Extra toolbar options |
* | * | ||
− | * | + | * Description: Adds extra buttons to the editing toolbar. |
***********************************************************/ | ***********************************************************/ | ||
if (mwCustomEditButtons) { | if (mwCustomEditButtons) { | ||
mwCustomEditButtons.push({ | mwCustomEditButtons.push({ | ||
− | " | + | "imageId": "mw-editbutton-br", |
− | + | "imageFile": "http://www.sarna.net/images/Button_enter.png", | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | "imageFile": "http://sarna.net | ||
"speedTip": "Line break", | "speedTip": "Line break", | ||
"tagOpen": "<br />", | "tagOpen": "<br />", | ||
Line 61: | Line 56: | ||
mwCustomEditButtons.push({ | mwCustomEditButtons.push({ | ||
− | "imageFile": "http://sarna.net | + | "imageFile": "http://www.sarna.net/images/Button_sup_letter.png", |
"speedTip": "Superscript", | "speedTip": "Superscript", | ||
"tagOpen": "<sup>", | "tagOpen": "<sup>", | ||
Line 69: | Line 64: | ||
mwCustomEditButtons.push({ | mwCustomEditButtons.push({ | ||
− | "imageFile": "http://sarna.net | + | "imageFile": "http://www.sarna.net/images/Button_sub_letter.png", |
"speedTip": "Subscript", | "speedTip": "Subscript", | ||
"tagOpen": "<sub>", | "tagOpen": "<sub>", | ||
Line 77: | Line 72: | ||
mwCustomEditButtons.push({ | mwCustomEditButtons.push({ | ||
− | "imageFile": "http://sarna.net | + | "imageFile": "http://www.sarna.net/images/Button_small_2.png", |
"speedTip": "Small text", | "speedTip": "Small text", | ||
"tagOpen": "<small>", | "tagOpen": "<small>", | ||
"tagClose": "</small>", | "tagClose": "</small>", | ||
"sampleText": "Small text" | "sampleText": "Small text" | ||
+ | }); | ||
+ | |||
+ | mwCustomEditButtons.push({ | ||
+ | "imageFile": "http://www.sarna.net/images/Button_redirect.png", | ||
+ | "speedTip": "Redirect", | ||
+ | "tagOpen": "#REDIRECT[[", | ||
+ | "tagClose": "]]", | ||
+ | "sampleText": "Target page name" | ||
}); | }); | ||
mwCustomEditButtons.push({ | mwCustomEditButtons.push({ | ||
− | "imageFile": "http://sarna.net | + | "imageFile": "http://www.sarna.net/images/Button_gallery.png", |
"speedTip": "Insert a picture gallery", | "speedTip": "Insert a picture gallery", | ||
"tagOpen": "\n<gallery>\n", | "tagOpen": "\n<gallery>\n", | ||
Line 93: | Line 96: | ||
mwCustomEditButtons.push({ | mwCustomEditButtons.push({ | ||
− | "imageFile": "http://sarna.net | + | "imageFile": "http://www.sarna.net/images/Button_insert_table.png", |
"speedTip": "Insert a table", | "speedTip": "Insert a table", | ||
"tagOpen": '{| class="wikitable" border="1"\n|', | "tagOpen": '{| class="wikitable" border="1"\n|', | ||
Line 99: | Line 102: | ||
"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" | "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({ | mwCustomEditButtons.push({ | ||
− | "imageFile": "http://sarna.net | + | "imageId": "mw-editbutton-ref", |
− | "speedTip": "Insert a reference", | + | "imageFile": "http://www.sarna.net/images/Button_reflink.png", |
+ | "speedTip": "Insert a reference (requires a reference footer)", | ||
"tagOpen": "<ref>", | "tagOpen": "<ref>", | ||
"tagClose": "</ref>", | "tagClose": "</ref>", | ||
Line 108: | Line 112: | ||
}); | }); | ||
− | if ( | + | mwCustomEditButtons.push({ |
− | addOnloadHook( | + | "imageId": "mw-editbutton-references", |
+ | "imageFile": "http://www.sarna.net/images/Button_referencesR.png", | ||
+ | "speedTip": "Insert the reference footer", | ||
+ | "tagOpen": "<references />", | ||
+ | "tagClose": "", | ||
+ | "sampleText": "" | ||
+ | }); | ||
+ | |||
+ | if (window.jQuery) { | ||
+ | var menus = new Array(symbols, templates); | ||
+ | |||
+ | addOnloadHook(function(){ | ||
+ | insertToolbarExtras(menus); | ||
+ | }); | ||
} | } | ||
} | } | ||
− | function | + | /****************************************************** |
− | var menus = | + | * insertToolbarExtras() |
+ | * | ||
+ | * Description: Creates a <div> placed above the edit | ||
+ | * form and fills it with toolbar menus. | ||
+ | * Requires jQuery JavaScript library. | ||
+ | * | ||
+ | * @author ebakunin | ||
+ | * @param menus (array) | ||
+ | ******************************************************/ | ||
+ | function insertToolbarExtras(menus) | ||
+ | { | ||
+ | var code = '<div id="toolbar-menu-header">'; | ||
+ | for (var i=0; i < menus.length; i++) { | ||
+ | code += insertToolbarHeader(menus[i]); | ||
+ | } | ||
+ | code += '</div>'; | ||
− | |||
for (var i=0; i < menus.length; i++) { | for (var i=0; i < menus.length; i++) { | ||
code += insertToolbarMenu(menus[i]); | code += insertToolbarMenu(menus[i]); | ||
} | } | ||
− | + | ||
+ | jQuery("#editform").prepend(code); | ||
} | } | ||
+ | /********************************************************* | ||
+ | * insertToolbarHeader() | ||
+ | * | ||
+ | * Description: Inserts the name of the toolbar extra | ||
+ | * section. Clicking on the header shows/hides the | ||
+ | * related section. Requires jQuery JavaScript library. | ||
+ | * | ||
+ | * @author ebakunin | ||
+ | * @param menu (array) | ||
+ | *********************************************************/ | ||
+ | function insertToolbarHeader(menu) | ||
+ | { | ||
+ | return "<span onclick=\"jQuery('#" + menu['id'] + "').slideToggle('fast')\">" + menu['header'] + "</span>"; | ||
+ | } | ||
− | + | /**************************************************** | |
− | /******************************************************** | + | * insertToolbarMenu() |
− | * | + | * |
+ | * Description: Creates a hidden <div> and fills it | ||
+ | * with insertable characters. | ||
+ | * Requires jQuery JavaScript library. | ||
* | * | ||
− | * | + | * @author ebakunin |
− | * | + | * @param list (array) |
− | function insertToolbarMenu(list) { | + | ****************************************************/ |
− | var insert = '<div>'; | + | function insertToolbarMenu(list) |
+ | { | ||
+ | var insert = '<div id="' + list["id"] + '" class="toolbar-menu">'; | ||
for (var i in list['sections']) { | for (var i in list['sections']) { | ||
Line 145: | Line 196: | ||
return insert; | return insert; | ||
− | } | + | } |
− | /*********************************************************** | + | /******************************************************** |
− | * | + | * wrapToolbarCharacter() |
+ | * | ||
+ | * Description: Places an <a> tag around a character to | ||
+ | * call insertTags() from the "CharInsert" extension. | ||
* | * | ||
− | * | + | * @author ebakunin |
− | * | + | * @param char (string) |
− | function wrapToolbarCharacter(char) { | + | ********************************************************/ |
+ | function wrapToolbarCharacter(char) | ||
+ | { | ||
return (char == " " || char == " ") | return (char == " " || char == " ") | ||
? ' ' | ? ' ' | ||
− | : '<a title="Click on the character or tag to insert it into the edit window" href="javascript:insertTags(\'' + char + '\',\'\',\'\') | + | : '<a title="Click on the character or tag to insert it into the edit window" href="javascript:insertTags(\'' + char + '\',\'\',\'\')">' + char + '</a> '; |
− | } | + | } |
//</source> | //</source> |
Latest revision as of 23:57, 18 November 2010
/* Any JavaScript here will be loaded for all users on all edit pages. */
//<source lang="javascript">
/******** GLOBAL VARIABLES ********/
/*** Symbol information list ***/
var symbols = new Array();
symbols["id"] = "symbols_box";
symbols["header"] = "Insert a character";
symbols["sections"] = new Array();
symbols["sections"]["nonstandard"] = new Array();
symbols["sections"]["nonstandard"]["title"] = "Symbols";
symbols["sections"]["nonstandard"]["items"] = new Array("–", "—", " ", "¡", "¿", "†", "‡", "§", "Ø", "ø", " ", "·", "…", " ", "←", "→", "↑", "↓", " ", "½", "⅓", "⅔", "¼", "¾", "⅛", "⅜", "⅝", "⅞");
symbols["sections"]["vowels"] = new Array();
symbols["sections"]["vowels"]["title"] = "Vowels"
symbols["sections"]["vowels"]["items"] = new Array("Á", "á", "À", "à", "Ã", "ã", " ", "É", "é", "È", "è", "Ẽ", "ẽ", " ", "Í", "í", "Ì", "ì", "Ĩ", "ĩ", " ", "Ó", "ó", "Ò", "ò", "Õ", "õ", " ", "Ú", "ú", "Ù", "ù", "Ũ", "ũ");
symbols["sections"]["consonants"] = new Array();
symbols["sections"]["consonants"]["title"] = "Consonants"
symbols["sections"]["consonants"]["items"] = new Array("Ć", "ć", "Ç", "ç", " ", "Ģ", "ģ", " ", "Ķ", "ķ", " ", "Ĺ", "ĺ", "Ļ", "ļ", " ", "Ń", "ń", "Ñ", "ñ", "Ņ", "ņ", " ", "Ŕ", "ŕ", "Ŗ", "ŗ", " ", "Ś", "ś", "Ş", "ş", " ", "Ţ", "ţ", " ", "Ý", "ý", "Ỹ", "ỹ", " ", "Ź", "ź", " ", "ß", "Đ", "đ");
/*** Template information list ***/
var templates = new Array();
templates["id"] = "templates_box";
templates["header"] = "Insert a template";
templates["sections"] = new Array();
templates["sections"]["stubs"] = new Array();
templates["sections"]["stubs"]["title"] = "Stubs";
templates["sections"]["stubs"]["items"] = new Array("{{Stub}}", "{{Sectionstub}}");
templates["sections"]["notices"] = new Array();
templates["sections"]["notices"]["title"] = "Notices";
templates["sections"]["notices"]["items"] = new Array("{{Citation needed}}", "{{Refimprove}}", "{{Update Needed}}", "{{Cleanup}}", "{{Verify}}", "{{NonCanon}}");
templates["sections"]["misc"] = new Array();
templates["sections"]["misc"]["title"] = "Miscellaneous";
templates["sections"]["misc"]["items"] = new Array("{{Disambig}}", "{{Emoticon| :) }}", "{{Quote|Write quote here}}", "{{Yearlist}}", "|{{PAGENAME}}");
/***********************************************************
* Extra toolbar options
*
* Description: Adds extra buttons to the editing toolbar.
***********************************************************/
if (mwCustomEditButtons) {
mwCustomEditButtons.push({
"imageId": "mw-editbutton-br",
"imageFile": "http://www.sarna.net/images/Button_enter.png",
"speedTip": "Line break",
"tagOpen": "<br />",
"tagClose": "",
"sampleText": ""
});
mwCustomEditButtons.push({
"imageFile": "http://www.sarna.net/images/Button_sup_letter.png",
"speedTip": "Superscript",
"tagOpen": "<sup>",
"tagClose": "</sup>",
"sampleText": "Superscript text"
});
mwCustomEditButtons.push({
"imageFile": "http://www.sarna.net/images/Button_sub_letter.png",
"speedTip": "Subscript",
"tagOpen": "<sub>",
"tagClose": "</sub>",
"sampleText": "Subscript text"
});
mwCustomEditButtons.push({
"imageFile": "http://www.sarna.net/images/Button_small_2.png",
"speedTip": "Small text",
"tagOpen": "<small>",
"tagClose": "</small>",
"sampleText": "Small text"
});
mwCustomEditButtons.push({
"imageFile": "http://www.sarna.net/images/Button_redirect.png",
"speedTip": "Redirect",
"tagOpen": "#REDIRECT[[",
"tagClose": "]]",
"sampleText": "Target page name"
});
mwCustomEditButtons.push({
"imageFile": "http://www.sarna.net/images/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://www.sarna.net/images/Button_insert_table.png",
"speedTip": "Insert a table",
"tagOpen": '{| class="wikitable" border="1"\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({
"imageId": "mw-editbutton-ref",
"imageFile": "http://www.sarna.net/images/Button_reflink.png",
"speedTip": "Insert a reference (requires a reference footer)",
"tagOpen": "<ref>",
"tagClose": "</ref>",
"sampleText": "Insert footnote text here"
});
mwCustomEditButtons.push({
"imageId": "mw-editbutton-references",
"imageFile": "http://www.sarna.net/images/Button_referencesR.png",
"speedTip": "Insert the reference footer",
"tagOpen": "<references />",
"tagClose": "",
"sampleText": ""
});
if (window.jQuery) {
var menus = new Array(symbols, templates);
addOnloadHook(function(){
insertToolbarExtras(menus);
});
}
}
/******************************************************
* insertToolbarExtras()
*
* Description: Creates a <div> placed above the edit
* form and fills it with toolbar menus.
* Requires jQuery JavaScript library.
*
* @author ebakunin
* @param menus (array)
******************************************************/
function insertToolbarExtras(menus)
{
var code = '<div id="toolbar-menu-header">';
for (var i=0; i < menus.length; i++) {
code += insertToolbarHeader(menus[i]);
}
code += '</div>';
for (var i=0; i < menus.length; i++) {
code += insertToolbarMenu(menus[i]);
}
jQuery("#editform").prepend(code);
}
/*********************************************************
* insertToolbarHeader()
*
* Description: Inserts the name of the toolbar extra
* section. Clicking on the header shows/hides the
* related section. Requires jQuery JavaScript library.
*
* @author ebakunin
* @param menu (array)
*********************************************************/
function insertToolbarHeader(menu)
{
return "<span onclick=\"jQuery('#" + menu['id'] + "').slideToggle('fast')\">" + menu['header'] + "</span>";
}
/****************************************************
* insertToolbarMenu()
*
* Description: Creates a hidden <div> and fills it
* with insertable characters.
* Requires jQuery JavaScript library.
*
* @author ebakunin
* @param list (array)
****************************************************/
function insertToolbarMenu(list)
{
var insert = '<div id="' + list["id"] + '" class="toolbar-menu">';
for (var i in list['sections']) {
insert += "<strong>" + list['sections'][i]['title'] + "</strong>: ";
for (var j=0; j < list['sections'][i]['items'].length; j++) {
insert += wrapToolbarCharacter(list['sections'][i]['items'][j]);
}
insert += "<br />";
}
insert += "</div>";
return insert;
}
/********************************************************
* wrapToolbarCharacter()
*
* Description: Places an <a> tag around a character to
* call insertTags() from the "CharInsert" extension.
*
* @author ebakunin
* @param char (string)
********************************************************/
function wrapToolbarCharacter(char)
{
return (char == " " || char == " ")
? ' '
: '<a title="Click on the character or tag to insert it into the edit window" href="javascript:insertTags(\'' + char + '\',\'\',\'\')">' + char + '</a> ';
}
//</source>