MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
(added "More needed" button) |
No edit summary |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 29: | Line 29: | ||
"imageFile": "images/f/fb/Button_creation.png", | "imageFile": "images/f/fb/Button_creation.png", | ||
"speedTip": "Creation", | "speedTip": "Creation", | ||
"tagOpen": "{{Creation\n| title = ", | "tagOpen": "{{Creation\n" + | ||
"tagClose": "\n| image = \n| caption = \n| server = \n| map revision = \n| warp = \n| coordinates = \n| lead = \n| contributors = \n| started = \n| completed = \n}}", | "| title = ", | ||
"tagClose": "\n" + | |||
"| image = \n" + | |||
"| caption = \n" + | |||
"| server = \n" + | |||
"| map revision = \n" + | |||
"| warp = \n" + | |||
"| coordinates = \n" + | |||
"| lead = \n" + | |||
"| contributors = \n" + | |||
"| started = \n" + | |||
"| completed = \n" + | |||
"}}", | |||
"sampleText": "" | |||
}); | |||
mwCustomEditButtons.push({ | |||
"width": 32, | |||
"imageFile": "images/2/29/Button_user.png", | |||
"speedTip": "User", | |||
"tagOpen": "{{User\n" + | |||
"| username = ", | |||
"tagClose": "\n" + | |||
"| image = \n" + | |||
"| caption = \n" + | |||
"| favorite server = \n" + | |||
"| authority = \n" + | |||
"| joined = \n" + | |||
"| left = \n" + | |||
"| creative banned = \n" + | |||
"| survival banned = \n" + | |||
"| chaos banned = \n" + | |||
"}}", | |||
"sampleText": "" | "sampleText": "" | ||
}); | }); | ||
Line 42: | Line 73: | ||
}); | }); | ||
} | } | ||
/** Collapsible tables ********************************************************* | |||
* | |||
* Description: Allows tables to be collapsed, showing only the header. See | |||
* Wikipedia:NavFrame. | |||
* Maintainers: wikipedia:User:R. Koot | |||
*/ | |||
var autoCollapse = 2; | |||
var collapseCaption = 'hide'; | |||
var expandCaption = 'show'; | |||
window.collapseTable = function ( tableIndex ) { | |||
var Button = document.getElementById( 'collapseButton' + tableIndex ); | |||
var Table = document.getElementById( 'collapsibleTable' + tableIndex ); | |||
if ( !Table || !Button ) { | |||
return false; | |||
} | |||
var Rows = Table.rows; | |||
var i; | |||
if ( Button.firstChild.data === collapseCaption ) { | |||
for ( i = 1; i < Rows.length; i++ ) { | |||
Rows[i].style.display = 'none'; | |||
} | |||
Button.firstChild.data = expandCaption; | |||
} else { | |||
for ( 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 = {}; | |||
var Tables = document.getElementsByTagName( 'table' ); | |||
var i; | |||
function handleButtonLink( index, e ) { | |||
window.collapseTable( index ); | |||
e.preventDefault(); | |||
} | |||
for ( i = 0; i < Tables.length; i++ ) { | |||
if ( $( Tables[i] ).hasClass( 'collapsible' ) ) { | |||
/* only add button and increment count if there is a header row to work with */ | |||
var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0]; | |||
if ( !HeaderRow ) continue; | |||
var Header = HeaderRow.getElementsByTagName( 'th' )[0]; | |||
if ( !Header ) continue; | |||
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.className = 'collapseButton'; /* Styles are declared in Common.css */ | |||
ButtonLink.style.color = Header.style.color; | |||
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex ); | |||
ButtonLink.setAttribute( 'href', '#' ); | |||
$( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) ); | |||
ButtonLink.appendChild( ButtonText ); | |||
Button.appendChild( document.createTextNode( '[' ) ); | |||
Button.appendChild( ButtonLink ); | |||
Button.appendChild( document.createTextNode( ']' ) ); | |||
Header.insertBefore( Button, Header.firstChild ); | |||
tableIndex++; | |||
} | |||
} | |||
for ( i = 0; i < tableIndex; i++ ) { | |||
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) { | |||
window.collapseTable( i ); | |||
} | |||
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) { | |||
var element = NavigationBoxes[i]; | |||
while ((element = element.parentNode)) { | |||
if ( $( element ).hasClass( 'outercollapse' ) ) { | |||
window.collapseTable ( i ); | |||
break; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
$( createCollapseButtons ); |
Latest revision as of 04:47, 9 August 2013
/* Any JavaScript here will be loaded for all users on every page load. */ if(wgAction == 'edit' || wgAction == 'submit') { function mwInsertEditButton(parent, item) { var image = document.createElement('img'); image.width = item.width || 23; image.height = 22; image.className = 'mw-toolbar-editbutton'; if (item.imageId) { image.id = item.imageId; } image.src = item.imageFile; image.border = 0; image.alt = item.speedTip; image.title = item.speedTip; image.style.cursor = 'pointer'; image.onclick = function() { insertTags(item.tagOpen, item.tagClose, item.sampleText); // click tracking if ((typeof $j != 'undefined') && (typeof $j.trackAction != 'undefined')) { $j.trackAction('oldedit.' + item.speedTip.replace(/ /g, "-")); } return false; }; parent.appendChild(image); return true; } mwCustomEditButtons.push({ "width": 51, "imageFile": "images/f/fb/Button_creation.png", "speedTip": "Creation", "tagOpen": "{{Creation\n" + "| title = ", "tagClose": "\n" + "| image = \n" + "| caption = \n" + "| server = \n" + "| map revision = \n" + "| warp = \n" + "| coordinates = \n" + "| lead = \n" + "| contributors = \n" + "| started = \n" + "| completed = \n" + "}}", "sampleText": "" }); mwCustomEditButtons.push({ "width": 32, "imageFile": "images/2/29/Button_user.png", "speedTip": "User", "tagOpen": "{{User\n" + "| username = ", "tagClose": "\n" + "| image = \n" + "| caption = \n" + "| favorite server = \n" + "| authority = \n" + "| joined = \n" + "| left = \n" + "| creative banned = \n" + "| survival banned = \n" + "| chaos banned = \n" + "}}", "sampleText": "" }); mwCustomEditButtons.push({ "width": 75, "imageFile": "images/8/8d/Button_more_needed.png", "speedTip": "More needed", "tagOpen": "{{More needed}}", "tagClose": "", "sampleText": "" }); } /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * Wikipedia:NavFrame. * Maintainers: wikipedia:User:R. Koot */ var autoCollapse = 2; var collapseCaption = 'hide'; var expandCaption = 'show'; window.collapseTable = function ( tableIndex ) { var Button = document.getElementById( 'collapseButton' + tableIndex ); var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; var i; if ( Button.firstChild.data === collapseCaption ) { for ( i = 1; i < Rows.length; i++ ) { Rows[i].style.display = 'none'; } Button.firstChild.data = expandCaption; } else { for ( 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 = {}; var Tables = document.getElementsByTagName( 'table' ); var i; function handleButtonLink( index, e ) { window.collapseTable( index ); e.preventDefault(); } for ( i = 0; i < Tables.length; i++ ) { if ( $( Tables[i] ).hasClass( 'collapsible' ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0]; if ( !HeaderRow ) continue; var Header = HeaderRow.getElementsByTagName( 'th' )[0]; if ( !Header ) continue; 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.className = 'collapseButton'; /* Styles are declared in Common.css */ ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex ); ButtonLink.setAttribute( 'href', '#' ); $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( '[' ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( ']' ) ); Header.insertBefore( Button, Header.firstChild ); tableIndex++; } } for ( i = 0; i < tableIndex; i++ ) { if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) { window.collapseTable( i ); } else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) { var element = NavigationBoxes[i]; while ((element = element.parentNode)) { if ( $( element ).hasClass( 'outercollapse' ) ) { window.collapseTable ( i ); break; } } } } } $( createCollapseButtons );