User:Thomas.tarak.mathew/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 * * (Be bold and improve it!) * * Authors: * Erik Moeller, 2011, public domain * */ // Import the jQuery dialog plugin before starting the rest of this script mw.loader.using(['jquery.ui.dialog'], function {	function renderQuickRCDialog( pageLinks ) {		var $dialog = $( ' ' )			.html( ' Welcome, ' + mw.user.name + '! The following pages have been recently modified: ' + pageLinks.join( ' ' ) + '' )			.dialog({ autoOpen: true, title: 'Hello there!', 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.wikiGetlink( rc.title ) }, rc.title							) );					}					myTitles.push( rc.title );				} ) ; renderQuickRCDialog( myPageLinks ); }		);	}	$(document).ready( function { //Adding lang links to the page

var langs; var api = new mw.Api; api.get( {			action: 'query',			rawcontinue: '',			prop: 'langlinks',			lllimit: '10',			titles: $('h1').text		} ) .done( function ( data ) {			console.log( 'API result:', data );			$.each(data.query.pages, function(key, value) { langs = "This article is also available as "; $.each(value.langlinks, function(i, val) {					langs += " " + val["*"] + ", ";				}); if('query-continue' in data){ langs += " and many more"; /*href='"+value.title+"_langs'*/ }			console.log( langs ); langs += " "; $('#bodyContent').prepend(langs); if($('#extralangs').length > 0){ $('#extralangs').click(function{					$(document).scrollTop($('#p-lang').offset.top);				}); }			});		} )		.fail( function ( error ) {			console.log( 'API failed :(', error ); langs = " This article is only available in this language"; $('#bodyContent').prepend(langs); } );

// Add a link to the toolbox var link = mw.util.addPortletLink(			'p-tb',			'#',			'Quick changelog',			't-prettylinkwidget',			'Show a quick overview of changes',			null,			'#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;		}); }); });