User:XXN:na/wikilinker.js
< User:XXN:na
Revision as of 17:44, 4 November 2016 by
Note: After saving, 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: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Clear the cache in Tools → Preferences
// Wiki Linker // Add links for selected text // based on User:XXN:na/WPwikilinker.js // Toolbar buttons var addOldToolbarButton = function() { var $toolbar = $( '#gadget-toolbar' ); if ( !$toolbar.length ) { $toolbar = $( '#wikiEditor-ui-toolbar' ); } $( '<div>' ) .addClass( 'tool tool-button wikiEditor-toolbar-spritedButton' ) .attr( 'id', 'mw-editbutton-gadget-wikilinker' ) .attr( 'alt', 'Wiki Linker' ) .attr( 'title', 'Wiki Linker — add links for selected text' ) .css( 'background-image', 'url(//upload.wikimedia.org/wikipedia/commons/a/ad/Wikilinker_toolbar.png) ' ) .appendTo( $toolbar ) .on( 'click', WikiLinker ); }; var addNewToolbarButton = function() { $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'section': 'main', 'group': 'format', 'tools': { 'wikilinker': { label: 'Wiki Linker — add links for selected text', type: 'button', icon: '//upload.wikimedia.org/wikipedia/commons/b/bd/Wikilinker.png', action: { type: 'callback', execute: function() { WikiLinker(); } } } } } ); }; if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) { mw.loader.using( [ 'user.options', 'jquery.textSelection' ], function () { if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) { if ( mw.user.options.get( 'showtoolbar' ) === 1 ) { $.when( mw.loader.using( 'ext.wikiEditor.toolbar' ), $.ready ).then( addNewToolbarButton ); } } else { mw.loader.using( 'mediawiki.action.edit', function() { $( addOldToolbarButton ); } ); } } ); } function WikiLinker() { var xmlhttp; var CantWork = 'Select some text'; var requestTokens = 0; var $wpTextbox1 = $( '#wpTextbox1' ); var txt = $wpTextbox1.textSelection( 'getSelection' ); var startEndPos = $( '#wpTextbox1' ).textSelection( 'getCaretPosition', { startAndEnd: true } ), startPos = startEndPos[0], endPos = startEndPos[1]; if ( txt === '' ) { mw.notify( CantWork ); return; } if ( startEndPos[0] !== startPos || startEndPos[1] !== endPos ) { $wpTextbox1.textSelection( 'setSelection', { start: startPos, end: endPos } ); } processText( txt ); function processText ( txt ) { var preparedText = txt .substr( 0, 100 ) .replace(',', ']], [[' ); } /* function GetXmlHttpObject() { if ( window.XMLHttpRequest ) { // code for IE7+, Firefox, Chrome, Opera, Safari return new XMLHttpRequest(); } if ( window.ActiveXObject ) { // code for IE6, IE5 return new ActiveXObject( 'Microsoft.XMLHTTP' ); } return null; } */ $( '#wpTextbox1' ) .textSelection( 'encapsulateSelection', { peri: txt, replace: true } ) .textSelection( 'scrollToCaretPosition' ) .focus(); } }