[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 /*! 2 * Animate patrol links to use asynchronous API requests to 3 * patrol pages, rather than navigating to a different URI. 4 * 5 * @since 1.21 6 * @author Marius Hoch <[email protected]> 7 */ 8 ( function ( mw, $ ) { 9 if ( !mw.user.tokens.exists( 'patrolToken' ) ) { 10 // Current user has no patrol right, or an old cached version of user.tokens 11 // that didn't have patrolToken yet. 12 return; 13 } 14 $( function () { 15 var $patrolLinks = $( '.patrollink a' ); 16 $patrolLinks.on( 'click', function ( e ) { 17 var $spinner, href, rcid, apiRequest; 18 19 // Start preloading the notification module (normally loaded by mw.notify()) 20 mw.loader.load( ['mediawiki.notification'], null, true ); 21 22 // Hide the link and create a spinner to show it inside the brackets. 23 $spinner = $.createSpinner( { 24 size: 'small', 25 type: 'inline' 26 } ); 27 $( this ).hide().after( $spinner ); 28 29 href = $( this ).attr( 'href' ); 30 rcid = mw.util.getParamValue( 'rcid', href ); 31 apiRequest = new mw.Api(); 32 33 apiRequest.postWithToken( 'patrol', { 34 action: 'patrol', 35 rcid: rcid 36 } ) 37 .done( function ( data ) { 38 // Remove all patrollinks from the page (including any spinners inside). 39 $patrolLinks.closest( '.patrollink' ).remove(); 40 if ( data.patrol !== undefined ) { 41 // Success 42 var title = new mw.Title( data.patrol.title ); 43 mw.notify( mw.msg( 'markedaspatrollednotify', title.toText() ) ); 44 } else { 45 // This should never happen as errors should trigger fail 46 mw.notify( mw.msg( 'markedaspatrollederrornotify' ) ); 47 } 48 } ) 49 .fail( function ( error ) { 50 $spinner.remove(); 51 // Restore the patrol link. This allows the user to try again 52 // (or open it in a new window, bypassing this ajax module). 53 $patrolLinks.show(); 54 if ( error === 'noautopatrol' ) { 55 // Can't patrol own 56 mw.notify( mw.msg( 'markedaspatrollederror-noautopatrol' ) ); 57 } else { 58 mw.notify( mw.msg( 'markedaspatrollederrornotify' ) ); 59 } 60 } ); 61 62 e.preventDefault(); 63 } ); 64 } ); 65 }( mediaWiki, jQuery ) );
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |