MediaWiki:Guidedtour-tour-CitationsStudent.js

// Guided Tour for learning wikicode by making a series of edits in a user sandbox, as an interactive interlude in Wikipedia:Training/For_students // see also Guidedtour-tour-BeBoldStudent.js ( function ( window, document, $, mw, gt ) { //automatic api:edit function to send yourself messages function sendMessage( targetPage, msgPage, linkTo ) {	var api = new mw.Api;	api.get( { 'action' : 'query', 'titles' : msgPage, 'prop'  : 'revisions', 'meta'  : 'tokens', 'type'  : 'csrf', 'rvprop' : 'content', 'indexpageids' : 1 } ).done( function (result) { result = result.query; var page = result.pages[result.pageids[0]]; var text = page.revisions[0]['*']; api.post( {			'action' : 'edit',			'title' : targetPage,			'appendtext' : "\n" + text,			'summary' : 'automatic post as part of the sandbox guided tour',			'token' : result.tokens.csrftoken		} ).done( function {			window.location.href = linkTo;		} ); } ); } // Fail gracefully post-save but not postedit var postEditButtons = []; if ( mw.config.get( 'wgAction' ) === 'view' && !gt.isPostEdit ) {       postEditButtons.push( { name: 'Click here to go back and make an edit', onclick: function { window.location.href = new mw.Uri.extend( { action: 'edit' } ).toString; }       } ); } // Fail gracefully post-save but not postedit for visual editor var postEditButtonsVisual = []; if ( mw.config.get( 'wgAction' ) === 'view' && !gt.isPostEdit ) {        postEditButtonsVisual.push( { name: 'Go Back', onclick: function { window.location.href = window.location.href + "&veaction=edit"; }       } ); } gt.defineTour( { name: 'CitationsStudent', shouldLog: true, steps: [ { //1               title: 'Now let\'s try citations.', description: '', onShow: gt.getPageAsDescription, overlay: true, closeOnClickOutside: false, buttons: [ { name: 'Go to your sandbox', onclick: function {  if(!mw.config.get('wgUserName')){  alert( "Please login." );   return;   } sendMessage( 'User:' + mw.config.get( 'wgUserName' ) + '/citations', 'Project:Training/tour/citations_preload', mw.util.getUrl( 'Special:MyPage/citations' ) + '?tour=CitationsStudent&step=2'); } } ],               allowAutomaticOkay: false }, {                //2                title: '[citation needed]', description: 'Project:Training/tour/citations2', onShow: gt.getPageAsDescription, attachTo: '#content.mw-body', position: 'bottom', overlay: false, closeOnClickOutside: false, buttons: [ { name: ' ← ', action: 'externalLink', url: mw.util.getUrl( 'Project:Training/For_students/Citing_sources' ) + '?tour=CitationsStudent&step=1' }, {		       	    name: 'Okay!', action: 'next', } ],               allowAutomaticOkay: false }, {                //3                title: 'Click Edit Source', description: '', attachTo: '#ca-edit', position: 'bottom', onShow: gt.getPageAsDescription, overlay: false, closeOnClickOutside: false, allowAutomaticOkay: false, buttons: [ { name: ' ← ', action: 'externalLink', url: mw.util.getUrl( 'Special:MyPage/citations' ) + '?tour=CitationsStudent&step=2' } ],               shouldSkip: function { return gt.hasQuery( { action: 'edit' } ); }       },  {                //4                title: 'Inserting a reference', description: 'Project:Training/tour/citations4', onShow: gt.getPageAsDescription, attachTo: '#wpTextbox1', position: 'bottomLeft', overlay: false, closeOnClickOutside: false, buttons: [ { name: ' ← ', action: 'externalLink', url: mw.util.getUrl( 'Special:MyPage/citations' ) + '?tour=CitationsStudent&step=3' }, {               	    name: 'I added the citation.', action: 'next', } ],               allowAutomaticOkay: false }, {                //5                title: 'Displaying references', description: 'Project:Training/tour/citations5', onShow: gt.getPageAsDescription, attachTo: '#wpTextbox1', position: 'bottomLeft', overlay: false, closeOnClickOutside: false, buttons: [ { name: ' ← ', action: 'externalLink', url: mw.util.getUrl( 'Special:MyPage/citations' ) + '?tour=CitationsStudent&step=4&action=edit' }, {               	    name: 'I added the References section.', action: 'next', } ],               allowAutomaticOkay: false }, {                //6                title: 'Add an edit summary, and Save', description: '', attachTo: '#wpSave', position: 'bottom', autoFocus: 'yes', onShow: gt.getPageAsDescription, overlay: false, closeOnClickOutside: false, allowAutomaticOkay: false, buttons: [ { name: ' ← ', action: 'externalLink', url: mw.util.getUrl( 'Special:MyPage/citations' ) + '?tour=CitationsStudent&step=5&action=edit' } ],               shouldSkip: function { return gt.isPostEdit; },               buttons: postEditButtons }, {               //7                title: 'Did it work?', description: 'Project:Training/tour/citations7', onShow: gt.getPageAsDescription, overlay: false, attachTo: '#content.mw-body', position: 'bottom', closeOnClickOutside: false, allowAutomaticOkay: false, buttons: [ { name: ' ← I want to try again.', action: 'externalLink', url: mw.util.getUrl( 'Special:MyPage/citations' ) + '?tour=CitationsStudent&step=4&action=edit' }, {               		name: 'It worked!', action: 'externalLink', url: mw.util.getUrl( 'Project:Training/For_students/Citing_sources_2') + '?tour=CitationsStudent&step=8' } ],               allowAutomaticOkay: false }, {               //8                title: 'Nice work!', description: 'Project:Training/tour/citations8', onShow: gt.getPageAsDescription, overlay: false, closeOnClickOutside: false, buttons: [ { name: 'Bye for now!', action: 'end' } ],               allowAutomaticOkay: false }] } ); } (window, document, jQuery, mediaWiki, mediaWiki.guidedTour ) ) ;