Jump to content

MediaWiki:Common.js: Difference between revisions

Add 'Personal Sandbox' to Tools menu in left sidebar. Personal Sandbox will only show up after logged into wiki.
(replaced hardcoding of familysearch.org)
(Add 'Personal Sandbox' to Tools menu in left sidebar. Personal Sandbox will only show up after logged into wiki.)
Line 3: Line 3:
     var css = document.createElement('link');
     var css = document.createElement('link');
     css.rel = 'stylesheet';
     css.rel = 'stylesheet';
     css.href = '//familysearch.org/hf/hf.css';
     css.href = window.location.protocol + '//' + window.location.host + '/hf/hf.css';
     var head = document.querySelector('head');
     var head = document.querySelector('head');
     head.insertBefore(css, head.childNodes[0]);
     head.insertBefore(css, head.childNodes[0]);
Line 14: Line 14:
     var meta = document.createElement('meta');
     var meta = document.createElement('meta');
     meta.name = 'hf_base_url';
     meta.name = 'hf_base_url';
     meta.content = 'https://familysearch.org';
     meta.content = window.location.protocol + '//' + window.location.host;
     var head = document.querySelector('head');
     var head = document.querySelector('head');
     head.insertBefore(meta, head.childNodes[0]);
     head.insertBefore(meta, head.childNodes[0]);
Line 23: Line 23:
     fs.type = 'text/javascript';
     fs.type = 'text/javascript';
     fs.async = true;
     fs.async = true;
     var base_url = "https://familysearch.org";
     var base_url = window.location.protocol + '//' + window.location.host;
     fs.src = 'https://familysearch.org/hf/hf.js' + (base_url === "" ? "" : "?base_url=" + base_url);
     fs.src = window.location.protocol + '//' + window.location.host + '/hf/hf.js' + (base_url === "" ? "" : "?base_url=" + base_url);
     var s = document.getElementsByTagName('script')[0];
     var s = document.getElementsByTagName('script')[0];
     s.parentNode.insertBefore(fs, s);
     s.parentNode.insertBefore(fs, s);
Line 269: Line 269:


mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
/* The following adds 'Sandbox' link to the Tools menu in left Sidebar.*/
/* begin sandbox code */
function ModifySidebar( action, section, name, link ) {
try {
switch ( section ) {
case 'languages':
var target = 'p-lang';
break;
case 'toolbox':
var target = 'p-tb';
break;
case 'navigation':
var target = 'p-navigation';
break;
default:
var target = 'p-' + section;
break;
}
if ( action == 'add' ) {
var node = document.getElementById( target )
  .getElementsByTagName( 'div' )[0]
  .getElementsByTagName( 'ul' )[0];
var aNode = document.createElement( 'a' );
var liNode = document.createElement( 'li' );
aNode.appendChild( document.createTextNode( name ) );
aNode.setAttribute( 'href', link );
liNode.appendChild( aNode );
liNode.className = 'plainlinks';
node.appendChild( liNode );
}
if ( action == 'remove' ) {
var list = document.getElementById( target )
  .getElementsByTagName( 'div' )[0]
  .getElementsByTagName( 'ul' )[0];
var listelements = list.getElementsByTagName( 'li' );
for ( var i = 0; i < listelements.length; i++ ) {
if (
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
)
{
list.removeChild( listelements[i] );
}
}
}
} catch( e ) {
// let's just ignore what's happened
return;
}
}
function CustomizeModificationsOfSidebar() {
// adds [[Special:MyPage/Sandbox]] to Tools menu in sidebar
ModifySidebar( 'add', 'toolbox', 'Personal Sandbox', '/wiki/en/Special:MyPage/Sandbox' );
// example code below that removes [[Special:Upload]] from toolbox
//ModifySidebar( 'remove', 'toolbox', 'Upload file', '/wiki/Special:Upload' );
}
if ( mw.config.get('wgUserGroups') && mw.config.get('wgUserGroups').indexOf( 'bureaucrat' ) !== -1 ) {
jQuery( CustomizeModificationsOfSidebar ); }
/* end sandbox code */
2,664

edits