MediaWiki:Guidedtour-tour-CitationsEducator.js

// Guided Tour for learning wikicode by making a series of edits in a user sandbox, as an interactive interlude in Wikipedia:Training/For_educators

// 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 training for educators',

'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: 'CitationsEducator',

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=CitationsEducator&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_educators/Citing_sources' ) + '?tour=CitationsEducator&step=1'

} , {

name: 'Okay!',

action: 'next',

} ],

allowAutomaticOkay: false

}, {

//3

title: 'Click Edit',

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=CitationsEducator&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=CitationsEducator&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=CitationsEducator&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=CitationsEducator&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=CitationsEducator&step=4&action=edit'

} , {

name: 'It worked!',

action: 'externalLink',

url: mw.util.getUrl( 'Project:Training/For_educators/Citing_sources_2') + '?tour=CitationsEducator&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 ) ) ;