MediaWiki:Guidedtour-tour-BeBoldStudent.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// Guided Tour for learning wikicode by making a series of edits in a user sandbox, as an interactive interlude in Wikipedia:Training/For_students
 
( function ( window, document, $, mw, 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;
		} );
	} );
}
 
// 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: 'BeBoldStudent',
        shouldLog: true,
        steps: [ {
                //1
                title: 'Let\'s practice editing.',
                description: 'Project:Training/tour/be_bold1',
                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' ) + '/be_bold', 'Project:Training/tour/be_bold_preload' , mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=2'); }
                } ],
                allowAutomaticOkay: false
 
        },  {
                //2
                title: 'Welcome to your sandbox!',
                description: 'Project:Training/tour/be_bold2',
                onShow: gt.getPageAsDescription,
                attachTo: '#content.mw-body',
                position: 'bottom',
                overlay: false,
                closeOnClickOutside: false,
				buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Project:Training/For_students/Getting_started_1' ) + '?tour=BeBoldStudent&step=1'          
                } , {
						name: 'Okay!',
                        action: 'next',
                } ],
                allowAutomaticOkay: false
 
        },  {
                //3
                title: 'Edit button',
                description: 'Project:Training/tour/be_bold3',
                attachTo: '#ca-edit',
                position: 'bottom',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=2'          
                } ],
                shouldSkip: function() {
                        return gt.hasQuery( { action: 'edit' } );
                }
 
        },  {
                //4
                title: 'Boldness',
                description: 'Project:Training/tour/be_bold4',
                onShow: gt.getPageAsDescription,
                attachTo: '#wpTextbox1', 
                position: 'bottomLeft',
                overlay: false,
                closeOnClickOutside: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=3'          
                } , {
						name: 'I added the wikicode.',
                        action: 'next',
                        } ],
                allowAutomaticOkay: false
 
},  {
                //5
                title: 'Edit summary, and Save',
                description: 'Project:Training/tour/be_bold5',
				attachTo: '#wpSave',
                position: 'bottom',
                autoFocus: 'yes',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=4&action=edit'          
                } ],
                shouldSkip: function() {
                        return gt.isPostEdit();
                },
				buttons: postEditButtons
 
} , {
                //6
                title: 'Nice work!',
                description: 'Project:Training/tour/be_bold6',
                onShow: gt.getPageAsDescription,
                overlay: false,
                attachTo: '#ca-edit',
                position: 'bottom',
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=5&action=edit'          
                } ],
                shouldSkip: function() {
                        return gt.hasQuery( { action: 'edit' } );
                }
 
} , {
                //7
                title: 'Try adding some wikilinks.',
                description: 'Project:Training/tour/be_bold7',
                attachTo: '#wpTextbox1', 
                position: 'bottomLeft',
                autoFocus: 'yes',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
				buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=6'          
                } , {
						name: 'I added the wikilink code.',
                        action: 'next',
                        } ],
                allowAutomaticOkay: false
 
} , {
                //8
                title: 'Edit summary, and Save (again)',
                description: 'Project:Training/tour/be_bold8',
				attachTo: '#wpSave',
                position: 'bottom',
                autoFocus: 'yes',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=7&action=edit'          
                } ],
                shouldSkip: function() {
                        return gt.isPostEdit();
                },
                buttons: postEditButtons
 
} , {
                //9
                title: 'You made a link...',
                description: 'Project:Training/tour/be_bold9',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=8&action=edit'          
                }  ],
                        shouldSkip: function() {
							return !gt.isPage( mw.Title.newFromText( 'User:' + mw.config.get( 'wgUserName' ) + '/be_bold' ).toString()  );
                        }
 
} , {
				//10
                title: 'Whoops!',
                description: 'Project:Training/tour/wrong_page',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: 'Try again',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=7&action=edit'          
                } , {
						name: 'Skip this exercise',
						action: 'end',
						url: mw.util.getUrl( 'Project:Training/For_students/Continue' )
                } ],
                        shouldSkip: function() {
							return gt.isPage( 'Emphasis_(typography)' );
                        }
 
} , {
                //11
                title: 'Hmm...',
                description: 'Project:Training/tour/be_bold10',
                autoFocus: 'yes',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
				buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=9'          
                } , {
						name: 'Let\'s fix the link.',
                        action: 'externalLink',
                         url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=12&action=edit'
                        } ],
                allowAutomaticOkay: false
 
} , {
                //12
                title: 'This time, make it link to [[boldness]]',
                description: 'Project:Training/tour/be_bold11',
                onShow: gt.getPageAsDescription,
                attachTo: '#wpTextbox1', 
                position: 'bottomLeft',
                overlay: false,
                closeOnClickOutside: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=11'          
                } , {
                        name: 'I added the piped link!',
                        action: 'next',
                        } ],
                allowAutomaticOkay: false
 
} , {
				//13
                title: 'Don\'t forget the edit summary!',
                description: ' ',
				attachTo: '#wpSave',
                position: 'bottom',
                autoFocus: 'yes',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=12&action=edit'          
                } ],
                shouldSkip: function() {
                        return gt.isPostEdit();
                },
				buttons: postEditButtons
 
} , {	
				//14
                title: 'Okay, try the link now.',
                description: 'Project:Training/tour/be_bold13',
                attachTo: '#content.mw-body',
                position: 'bottom',
                autoFocus: 'yes',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Bold' ) + '?tour=BeBoldStudent&step=13'          
                } ],
                        shouldSkip: function() {
                        return gt.isPage( 'Boldness' );
                        }
 
} , {
                //15
                title: 'Boldness!',
                description: 'Project:Training/tour/be_bold14',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
                allowAutomaticOkay: false,
                buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=14&action=edit'          
                } , {
                        name: 'You\'ve got a message!',
                        onclick: function()  {  if(!mw.config.get('wgUserName')){  alert( "Please login." );   return;   } sendMessage( 'User talk:' + mw.config.get( 'wgUserName' ), 'Project:Training/tour/barnstar' , mw.util.getUrl( 'Special:MyTalk' ) + '?tour=BeBoldStudent&step=16'); }
                } ]
} , {
                //16
                title: 'Your new message is at the bottom of the page.',
                description: 'Project:Training/tour/be_bold15',
                onShow: gt.getPageAsDescription,
                attachTo: '#p-personal',
                position: 'bottom',
                overlay: false,
                closeOnClickOutside: false,
				buttons: [ {
                        name: '<small>←</small>',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Special:MyPage/be_bold' ) + '?tour=BeBoldStudent&step=15'          
                } , {
                        name: 'Continue the training.',
                        action: 'externalLink',
                        url: mw.util.getUrl( 'Project:Training/For_students/Continue' ) + '?tour=BeBoldStudent&step=17'
                } ],
                allowAutomaticOkay: false
 
 } , {
                //17
                title: 'Those are the basics.',
                description: 'Project:Training/tour/be_bold16',
                onShow: gt.getPageAsDescription,
                overlay: false,
                closeOnClickOutside: false,
				buttons: [ {
						name: 'Congratulations to me!',
                        action: 'end'
                } ],
                allowAutomaticOkay: false
 
}]
 
} );
} );
} (window, document, jQuery, mediaWiki, mediaWiki.guidedTour ) ) ;
Retrieved from "https://en.wikipedia.org/w/index.php?title=MediaWiki:Guidedtour-tour-BeBoldStudent.js&oldid=1034621386"