Difference between revisions of "MediaWiki:Common.js"
From Eco-Bible 1
| Line 95: | Line 95: | ||
/* EDIT BUTTONS **************************************************************** */ | /* EDIT BUTTONS **************************************************************** */ | ||
| + | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | ||
| + | 'sections': { | ||
| + | 'emoticons': { | ||
| + | 'type': 'toolbar', // Can also be 'booklet' | ||
| + | 'label': 'Emoticons' | ||
| + | // or 'labelMsg': 'section-emoticons-label' for a localized label | ||
| + | } | ||
| + | } | ||
| + | } ); | ||
| + | |||
| + | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | ||
| + | 'section': 'emoticons', | ||
| + | 'groups': { | ||
| + | 'faces': { | ||
| + | 'label': 'Faces' // or use labelMsg for a localized label, see above | ||
| + | } | ||
| + | } | ||
| + | } ); | ||
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | ||
| Line 113: | Line 131: | ||
} | } | ||
} ); | } ); | ||
| + | |||
| + | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | ||
| + | 'sections': { | ||
| + | 'info': { | ||
| + | 'type': 'booklet', | ||
| + | 'label': 'Info' | ||
| + | } | ||
| + | } | ||
| + | } ); | ||
| + | |||
| + | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { | ||
| + | 'section': 'info', | ||
| + | 'pages': { | ||
| + | 'colors': { | ||
| + | 'layout': 'table', | ||
| + | 'label': 'Colors', | ||
| + | 'headings': [ | ||
| + | { text: 'Name' }, // or use textMsg for localization, see also above | ||
| + | { text: 'Temperature' }, | ||
| + | { text: 'Swatch' } | ||
| + | ], | ||
| + | 'rows': [ | ||
| + | { | ||
| + | 'name': { text: 'Red' }, | ||
| + | 'temp': { text: 'Warm' }, | ||
| + | 'swatch': { html: '<div style="width:10px;height:10px;background-color:red;">' } | ||
| + | }, | ||
| + | { | ||
| + | 'name': { text: 'Blue' }, | ||
| + | 'temp': { text: 'Cold' }, | ||
| + | 'swatch': { html: '<div style="width:10px;height:10px;background-color:blue;">' } | ||
| + | }, | ||
| + | { | ||
| + | 'name': { text: 'Silver' }, | ||
| + | 'temp': { text: 'Neutral' }, | ||
| + | 'swatch': { html: '<div style="width:10px;height:10px;background-color:silver;">' } | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | } ); | ||
| + | |||
| + | |||
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ | /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ | ||
Revision as of 17:54, 5 August 2016
/* Any JavaScript here will be loaded for all users on every page load. */
/** Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainer on Wikipedia: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = "hide";
var expandCaption = "show";
function hasClass( element, className ) {
var Classes = element.className.split( " " );
for ( var i = 0; i < Classes.length; i++ ) {
if ( Classes[i] == className ) {
return ( true );
}
}
return ( false );
}
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.getElementsByTagName( "tr" );
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons()
{
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = document.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if ( hasClass( Tables[i], "collapsible" ) ) {
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.style.styleFloat = "right";
Button.style.cssFloat = "right";
Button.style.fontWeight = "normal";
Button.style.textAlign = "right";
Button.style.width = "6em";
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
/* only add button and increment count if there is a header row to work with */
if (Header) {
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
collapseTable( i );
}
}
}
addOnloadHook( createCollapseButtons );
/* EDIT BUTTONS **************************************************************** */
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'sections': {
'emoticons': {
'type': 'toolbar', // Can also be 'booklet'
'label': 'Emoticons'
// or 'labelMsg': 'section-emoticons-label' for a localized label
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'emoticons',
'groups': {
'faces': {
'label': 'Faces' // or use labelMsg for a localized label, see above
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'emoticons',
'group': 'faces',
'tools': {
'smile': {
label: 'Smile!', // or use labelMsg for a localized label, see above
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Gnome-face-smile.svg/22px-Gnome-face-smile.svg.png',
action: {
type: 'encapsulate',
options: {
pre: ":)" // text to be inserted
}
}
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'sections': {
'info': {
'type': 'booklet',
'label': 'Info'
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'info',
'pages': {
'colors': {
'layout': 'table',
'label': 'Colors',
'headings': [
{ text: 'Name' }, // or use textMsg for localization, see also above
{ text: 'Temperature' },
{ text: 'Swatch' }
],
'rows': [
{
'name': { text: 'Red' },
'temp': { text: 'Warm' },
'swatch': { html: '<div style="width:10px;height:10px;background-color:red;">' }
},
{
'name': { text: 'Blue' },
'temp': { text: 'Cold' },
'swatch': { html: '<div style="width:10px;height:10px;background-color:blue;">' }
},
{
'name': { text: 'Silver' },
'temp': { text: 'Neutral' },
'swatch': { html: '<div style="width:10px;height:10px;background-color:silver;">' }
}
]
}
}
} );
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
mw.loader.using( 'user.options', 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.toolbar' ), $.ready
).then( customizeToolbar );
}
} );
}
// Add the customizations to LiquidThreads' edit toolbar, if available
mw.hook( 'ext.lqt.textareaCreated' ).add( customizeToolbar );