User:Arjunaraoc/common.js

/** * Tutorial script: QuickRC ("Quick Recent Changes") * * A tutorial user script which adds a link to the toolbox to show a pop-up * dialog with up to 25 recent edits. * * Demonstrates: * - Use of the API * - Use of jQuery * - Use of ResourceLoader and some of the default modules that come with it * - Use of localization * * (Be bold and improve it!) * * Authors: * Erik Moeller, 2011, public domain * Brion Vibber, 2012, public domain */

messages = { 'en': { 'quickchanges-title': 'Hello there!', 'quickchanges-greeting': 'Welcome, $1!', 'quickchanges-intro': 'The following pages have been recently modified:', 'quickchanges-link': 'Quick changelog', 'quickchanges-tooltip': 'Show a quick overview of changes' },   'fr': { 'quickchanges-title': 'Bonjour !', 'quickchanges-greeting': 'Bienvenue, $1!', 'quickchanges-intro': 'Ces pages ont été modifiées récemment :', 'quickchanges-link': 'Modifications récentes' // Leave tooltip out to demonstrate fallback behavior } };

mw.messages.set(messages['en']); var lang = mw.config.get('wgUserLanguage'); if (lang && lang != 'en' && lang in messages) { mw.messages.set(messages[lang]); }

// Import the jQuery dialog plugin before starting the rest of this script mw.loader.using(['jquery.ui'], function {

function renderQuickRCDialog( pageLinks ) { var $dialog = $( ' ' ) .html(				' ' +				mw.message('quickchanges-greeting', mw.user.getName).escaped +				' ' +				mw.message('quickchanges-intro').escaped +				' ' +				pageLinks.join( ' ' ) + ''			) .dialog({				autoOpen: true,				title: mw.message('quickchanges-title').plain,				width: '70%',				modal: true			}); }

function quickRC { var myPageLinks = []; var myTitles = [];

// Fetch recent changes from the API by one of jQuery's AJAX functions jQuery.getJSON(			mw.util.wikiScript( 'api' ),			{				'format': 'json',				'action': 'query',				'list': 'recentchanges',				'rclimit' : 25			},			function( data ) {

// Build a unique array of links, using the mw.html library to format them. $.each ( data.query.recentchanges, function( index , rc ) {					// Don't link to this title if we've seen this title already					if ( $.inArray( rc.title, myTitles ) === -1 ) {						myPageLinks.push( mw.html.element(								'a', { href: mw.util.getUrl( rc.title ) }, rc.title							) );					}

myTitles.push( rc.title ); } ) ;

renderQuickRCDialog( myPageLinks ); }		);	}

$(document).ready( function {

// Add a link to the toolbox var link = mw.util.addPortletLink(			'p-tb',			'#',			mw.message('quickchanges-link').plain,			't-prettylinkwidget',			mw.message('quickchanges-tooltip').plain,			'/',			'#t-whatlinkshere'		);

// Create a jQuery object for this link so that we get // to use jQuery awesomeness like .click for binding functions to events // and methods like e.preventDefault; $(link).click( function( e ) {			// Avoid the browser going to '#'			e.preventDefault;

// Initiate quickRC! quickRC; });

});

}); var customizeToolbar = function {	$('#wpTextbox1').wikiEditor('addToToolbar', { section: 'advanced', group: 'format', tools: { "strikethrough": { label: 'Strike', type: 'button', icon: '//upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png', action: { type: 'encapsulate', options: { pre: " ", post: " " }			}		}	} });	/* Your code goes here */ }; /* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar … */ if ( mw.toolbar ) {	mw.loader.using( 'user.options', function { // This can be the string "0" if the user disabled the preference (T54542) if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) { $.when(				mw.loader.using( 'ext.wikiEditor' ), $.ready			).then( customizeToolbar ); }	} ); } // Add the customizations to LiquidThreads' edit toolbar, if available mw.hook( 'ext.lqt.textareaCreated' ).add( customizeToolbar );