diff options
Diffstat (limited to 'www/wiki/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js')
-rw-r--r-- | www/wiki/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/www/wiki/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js b/www/wiki/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js new file mode 100644 index 00000000..689c88ec --- /dev/null +++ b/www/wiki/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js @@ -0,0 +1,33 @@ +( function ( $, mw ) { + $( document ).on( 'click', '.fancycaptcha-reload', function () { + var $this = $( this ), + $root = $this.closest( '.fancycaptcha-captcha-container' ), + $captchaImage = $root.find( '.fancycaptcha-image' ); + + $this.addClass( 'fancycaptcha-reload-loading' ); + + // AJAX request to get captcha index key + new mw.Api().post( { action: 'fancycaptchareload' } ).done( function ( data ) { + var captchaIndex = data.fancycaptchareload.index, + imgSrc; + 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 + $( '#mw-input-captchaId' ).val( captchaIndex ); + $( '#mw-input-captchaWord' ).val( '' ).focus(); + + // now do the same with a selector that works for pre-1.27 login forms + $root.find( '[name="wpCaptchaId"]' ).val( captchaIndex ); + $root.find( '[name="wpCaptchaWord"]' ).val( '' ).focus(); + } + } ) + .always( function () { + $this.removeClass( 'fancycaptcha-reload-loading' ); + } ); + + return false; + } ); +}( jQuery, mediaWiki ) ); |