MediaWiki:Guidedtour-tour-outreachbebold.js

// Guided Tour for learning wikicode by making a series of edits in a user sandbox, as an interactive interlude in https://outreachdashboard.wmflabs.org/training/editing-wikipedia/editing-basics // Forked from MediaWiki:Guidedtour-tour-wikiedbebold.js ( function ( gt ) {

//automatic api:edit function to send yourself messages mw.loader.using( 'mediawiki.Title', function {

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 sandbox guided tour', 'token' : result.tokens.csrftoken } ).done( function { window.location.href = linkTo; } );	} ); }

var tour;

tour = new gt.TourBuilder( {   name: 'outreachbebold' } );

tour.firstStep( {	name: 'welcome',	title: 'Welcome to your sandbox!',   description: 'Project:Wiki_Ed/tour/be_bold1',    onShow: gt.getPageAsDescription,	buttons: [ {        name: ' ← ',        action: 'externalLink',        url: 'https://outreachdashboard.wmflabs.org/training/editing-wikipedia/editing-basics/be-bold-tutorial'            }, {	    name: 'Okay!',	    onclick: function {	if(!mw.config.get('wgUserName')){  alert( "Please login." );  return;   }	    						sendMessage(	'User:' + mw.config.get( 'wgUserName' ) + '/be_bold', 'Project:Training/tour/be_bold_preload', mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=outreachbebold&step=editButton&vehidebetadialog=1');							}   } ],    overlay: true,	closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false } ) .next( 'editButton' );

tour.step( {	name: 'editButton',	title: 'Edit button',   description: 'Project:Wiki_Ed/tour/be_bold2',    attachTo: '#ca-ve-edit',    position: 'bottom',    onShow: gt.getPageAsDescription,    overlay: false,    closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false, } ) .listenForMwHooks( 've.activationComplete' ) .transition( function { if ( gt.isEditing ) { return 'anyEdit'; } } ) .next( 'anyEdit' );

tour.step( {	name: 'anyEdit',	title: 'Make an edit!',	description: 'Project:Wiki_Ed/tour/be_bold2-1',	onShow: gt.getPageAsDescription,	attachTo: '.ve-ui-toolbar-saveButton', 	position: 'bottomLeft',	buttons: [ {	   name: 'Onward!',        onclick: function { mw.libs.guiders.hideAll; }     } ],	overlay: false,	closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false } ) .listenForMwHooks( 've.toolbarSaveButton.stateChanged' ) .transition( function { if ( gt.isEditing ) { return 'saveAnyEdit'; } } ) .next( 'saveAnyEdit' );

tour.step( {	name: 'saveAnyEdit',	title: 'Explore a bit, make a change, then save the page.',	description: 'Project:Wiki_Ed/tour/be_bold2-2',	onShow: gt.getPageAsDescription,	attachTo: '.ve-ui-toolbar-saveButton', 	position: 'bottomLeft',	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .listenForMwHooks( 've.deactivationComplete' ) .transition( function { if ( gt.isPostEdit ) { return 'afterFirstEdit'; } } ) .next( 'afterFirstEdit' );

tour.step( {	name: 'afterFirstEdit',	title: 'How was that?',   description: 'Project:Wiki_Ed/tour/be_bold2-3',    onShow: gt.getPageAsDescription,	buttons: [ {        name: 'Try again.',        action: 'externalLink',        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=outreachbebold&step=editButton&vehidebetadialog=1'    }, {	    name: 'Move on.',        action: 'externalLink',        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=outreachbebold&step=editBoldness&vehidebetadialog=1'    } ],    overlay: true,	closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false } ) .next( 'editBoldness' );

tour.step( {	name: 'editBoldness',	title: 'Now try another edit.',   description: 'Project:Wiki_Ed/tour/be_bold2-4',    attachTo: '#ca-ve-edit',    position: 'bottom',    onShow: gt.getPageAsDescription,    overlay: false,    closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false, } ) .listenForMwHooks( 've.activationComplete' ) .transition( function { if ( gt.isEditing ) { return 'boldness'; } } ) .next( 'boldness' );

tour.step( {	name: 'boldness',	title: 'Boldness',	description: 'Project:Wiki_Ed/tour/be_bold3',	onShow: gt.getPageAsDescription,	attachTo: '#content', 	position: 'bottomLeft',	buttons: [ {		name: 'I bolded the text.',		onclick: function { mw.libs.guiders.next; } 	} ],	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .listenForMwHooks( 've.deactivationComplete' ) .transition( function { if ( gt.isPostEdit ) { return 'looksGood'; } } ) .back( 'editBoldness' ) .next( 'editSummary' );

tour.step( {	name: 'editSummary',	title: 'Edit summary, and Save',	onShow: gt.getPageAsDescription,	description: 'Project:Wiki_Ed/tour/be_bold4',	attachTo: '.ve-ui-toolbar-saveButton',	position: 'bottomLeft',	autoFocus: 'yes',	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .listenForMwHooks( 've.deactivationComplete' ) .transition( function { if ( gt.isPostEdit ) { return 'looksGood'; } } ) .next( 'looksGood' );

tour.step( {	name: 'looksGood',	title: 'How was that?',   description: 'Project:Wiki_Ed/tour/be_bold5',    onShow: gt.getPageAsDescription,	buttons: [ {        name: 'Try again.',        action: 'externalLink',        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=outreachbebold&step=editButton&vehidebetadialog=1'    }, {	    name: 'Move on.',        onclick: function { mw.libs.guiders.next; }     } ],    overlay: true,	closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false } ) .next( 'editButtonCitation' );

tour.step( {	name: 'editButtonCitation',	title: 'Now let\'s add a citation!',   description: 'Project:Wiki_Ed/tour/be_bold6',    attachTo: '#ca-ve-edit',    position: 'bottom',    onShow: gt.getPageAsDescription,    overlay: false,    closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false, } ) .listenForMwHooks( 've.activationComplete' ) .transition( function { if ( gt.isEditing ) { return 'positionCursor'; } } ) .next( 'positionCursor' );

tour.step( {	name: 'positionCursor',	title: 'First, click the end of the sentence',	description: 'Project:Wiki_Ed/tour/be_bold7',	onShow: gt.getPageAsDescription,	attachTo: '#content', 	position: 'bottomLeft',	buttons: [ {		name: 'I positioned the cursor.',		onclick: function { mw.libs.guiders.next; } 	} ],	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .next( 'citeButton' );

tour.step( {	name: 'citeButton',	title: 'Now click the "Cite" button',	description: '',	attachTo: '.oo-ui-tool-name-citoid',	position: 'right',	buttons: [ {		name: 'I clicked Cite.',		onclick: function { mw.libs.guiders.next; } 	} ],	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .next( 'insertCitation' );

tour.step( {	name: 'insertCitation',	title: 'Insert a citation',	description: 'Project:Wiki_Ed/tour/be_bold8',	onShow: gt.getPageAsDescription,	attachTo: '.oo-ui-tool-name-citoid',	position: 'right',	buttons: [ {		name: 'I inserted the citation.',		onclick: function { mw.libs.guiders.next; } 	} ],	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .next( 'saveCitation' );

tour.step( {	name: 'saveCitation',	title: 'Save again.',	onShow: gt.getPageAsDescription,	description: 'Project:Wiki_Ed/tour/be_bold9',	attachTo: '.ve-ui-toolbar-saveButton',	position: 'bottomLeft',	autoFocus: 'yes',	overlay: false,	closeOnClickOutside: false,   allowAutomaticOkay: false,    allowAutomaticNext: false } ) .listenForMwHooks( 've.deactivationComplete' ) .transition( function { if ( gt.isPostEdit ) { return 'returnToTraining'; } } ) .next( 'returnToTraining' );

tour.step( {	name: 'returnToTraining',	title: 'That\'s it!',   description: 'Project:Wiki_Ed/tour/be_bold10',    onShow: gt.getPageAsDescription,	buttons: [ {        name: 'Try it again.',        action: 'externalLink',        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=outreachbebold&step=editButton&vehidebetadialog=1'    }, {	    name: 'Return to training.',        action: 'externalLink',        url: 'https://outreachdashboard.wmflabs.org/training/editing-wikipedia/editing-basics/be-bold-tutorial'            } ],    overlay: true,	closeOnClickOutside: false,    allowAutomaticOkay: false,    allowAutomaticNext: false } );

} ); } ( mediaWiki.guidedTour ) );