MediaWiki:Gadget/Friendly/friendlytabs.js

From OpenWetWare
Revision as of 18:20, 26 July 2009 by Bill Flanagan (talk | contribs) (New page: // If FriendlyConfig aint exist. if( typeof( FriendlyConfig ) == 'undefined' ) { FriendlyConfig = {}; } /** FriendlyConfig.idsToRename ( array ) An array of hashes that defines the ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
    FriendlyConfig = {};
}

/**
 FriendlyConfig.idsToRename ( array )
 An array of hashes that defines the ids of the tabs to be renamed and what they should be renamed to.
 */
if( typeof( FriendlyConfig.idsToRename ) == 'undefined' ) {
    FriendlyConfig.idsToRename = [
        { id: 'ca-nstab-main', name: 'Main', mainPageOnly: true },
        { id: 'ca-main', name: 'Main', mainPageOnly: true },
        { id: 'ca-nstab-help', name: 'Help' },
        { id: 'ca-history', name: 'History' },
        { id: 'ca-nstab-special', name: 'Special' },
        { id: 'ca-special', name: 'Special' },
        { id: 'ca-nstab-project', name: 'Project' },
        { id: 'ca-project', name: 'Project' },
        { id: 'ca-nstab-user', name: 'User' },
        { id: 'ca-user', name: 'User' },
        { id: 'ca-edit', name: 'Edit' },
        { id: 'ca-viewsource', name: 'Source' },
        { id: 'ca-talk', name: 'Talk' },
        { id: 'ca-undelete', name: 'Undelete' },
        { id: 'ca-addsection', name: '+' }
    ];
}

function friendlyFindTabCaption(tab) {
    while (tab.nodeType != 3) { //Until we find a text node
        tab = tab.firstChild;
    }
    return tab.parentNode;
}

function friendlytabs() {
    for(i = 0; i < FriendlyConfig.idsToRename.length; i++) {
        if(document.getElementById(FriendlyConfig.idsToRename[i].id)) {
            if(typeof( FriendlyConfig.idsToRename[i].mainPageOnly ) == 'boolean' && FriendlyConfig.idsToRename[i].mainPageOnly  ) {
                if( wgPageName == 'Main_Page' ) {
                    friendlyFindTabCaption( document.getElementById( FriendlyConfig.idsToRename[i].id ) ).innerHTML = FriendlyConfig.idsToRename[i].name;
                }
            } else {
                friendlyFindTabCaption( document.getElementById( FriendlyConfig.idsToRename[i].id ) ).innerHTML = FriendlyConfig.idsToRename[i].name;
            }
        }
    }
}
 
addOnloadHook(friendlytabs);