User:DarkMatterMan4500/Easy-link.js

From Test Wiki
Jump to navigation Jump 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.
// Install this version with:
// <code><nowiki>		{{subst:Iusc|User:DannyS712/Easy-link.js}}																		</nowiki></code>
// or with
// <code><nowiki>		importScript( 'User:DannyS712/Easy-link.js' ); // Backlink: [[User:DannyS712/Easy-link.js]] 					</nowiki></code> 
//
// If forking this script, please note my contributions / give me credit
//<nowiki>
$(function (){
var copy_link_config = {
	name: '[[User:DannyS712/Easy-link.js|Easy-link.js]]',
	version: 1.4,
	debug: false
};
mw.loader.using( 'mediawiki.util', function () {
    $(document).ready( function () { 
    	mw.util.addPortletLink ( 'p-tb', '', 'Easy link', 'ca-copy-link', 'Copy and format the current link');
    	$('#ca-copy-link').on('click', function( e ) {
    		e.preventDefault();
        	copy_link();
    	} );
    } );
} );
function copy_link(){
	var current_url = window.location.href;
	if (copy_link_config.debug) console.log( current_url );
	var new_url = current_url.replace( /https?:\/\/.*?.org\/wiki\//i, '');
	new_url = new_url.replace( /_/g, ' ');
	new_url = decodeURI( new_url );
	
	var colonNeeded = '';
	if ( mw.config.get('wgNamespaceNumber') === 6 || mw.config.get('wgNamespaceNumber') === 14 ) {
		colonNeeded = ':';
	}
	new_url = '[[' + colonNeeded + new_url + ']]';
	if (copy_link_config.debug) console.log( new_url );
	var ignore_this = document.createElement("input");
	document.createElement("input");
    document.body.appendChild(ignore_this);
    ignore_this.setAttribute('value', new_url);
    ignore_this.select();
    document.execCommand("copy");
    document.body.removeChild(ignore_this);
}
});
//</nowiki>