summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/ConfirmEdit/FancyCaptcha/resources/ext.confirmEdit.fancyCaptcha.js
diff options
context:
space:
mode:
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.js33
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 ) );