User:Jeblad/ref toolbar/script.js
< User:Jeblad | ref toolbar
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.
// Code to build ref-toolbars
// © John Erling Blad, Creative Commons by Attribution 3.0
mw.loader.using( ['mediawiki.util'], function () {
$(function() {
"use strict";
var conf = mw.config.get([
'wgNamespaceNumber',
'wgContentNamespaces',
'wgAction'
]);
if (conf.wgContentNamespaces.indexOf(conf.wgNamespaceNumber) === -1) {
return;
}
if ( conf.wgAction !== "view" ) {
return;
}
mw.hook( 'wikipage.content' ).add(function( $content ) {
var moveLink = function() {
var $prev = $(this).prev('sup.reference');
if ($prev.length === 0) return;
var $children = $(this).children();
$prev.append($children);
$(this).remove();
};
var $refs = mw.util.$content.find('sup.reference');
$refs.each(moveLink);
var wrapLinks = function() {
var $children = $(this).children();
$children.wrapAll('<div class="ref-toolbar"/>');
var html = '<a href="#" class="ref-handle">[' + ($children.length === 1 ? '†' : '‡') + ']</a>';
$(html).prependTo($(this));
};
$refs = mw.util.$content.find('sup.reference');
$refs.each(wrapLinks);
var showToolbar = function() {
$(this).next('.ref-toolbar').animate({width: 'show'});
return false;
};
$refs.children('.ref-handle').click(showToolbar);
var showSelf = function() {
//$(this).animate({width: 'show'});
};
var hideSelf = function() {
$(this).animate({width: 'hide'});
};
$refs.children('.ref-toolbar').hover(showSelf, hideSelf);
});
});
});