diff options
Diffstat (limited to 'extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js')
-rw-r--r-- | extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js b/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js new file mode 100644 index 00000000..a8db7218 --- /dev/null +++ b/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js @@ -0,0 +1,37 @@ +( function ( $, mw ) { + var api = new mw.Api(); + $( document ).on( 'click', '.fancycaptcha-reload', function () { + var $this = $( this ), $captchaImage; + + $this.addClass( 'fancycaptcha-reload-loading' ); + + $captchaImage = $( '.fancycaptcha-image' ); + + // AJAX request to get captcha index key + api.post( { + action: 'fancycaptchareload', + format: 'xml' + }, { + dataType: 'xml' + } ) + .done( function ( xmldata ) { + var imgSrc, captchaIndex; + captchaIndex = $( xmldata ).find( 'fancycaptchareload' ).attr( 'index' ); + if ( typeof captchaIndex === 'string' ) { + // replace index key with a new one for captcha image + imgSrc = $captchaImage.attr( 'src' ) + .replace( /(wpCaptchaId=)\w+/, '$1' + captchaIndex ); + $captchaImage.attr( 'src', imgSrc ); + + // replace index key with a new one for hidden tag + $( '#wpCaptchaId' ).val( captchaIndex ); + $( '#wpCaptchaWord' ).val( '' ).focus(); + } + } ) + .always( function () { + $this.removeClass( 'fancycaptcha-reload-loading' ); + } ); + + return false; + } ); +} )( jQuery, mediaWiki ); |