Robmoen has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/99773


Change subject: Added handling for captcha support on saveError
......................................................................

Added handling for captcha support on saveError

Copied _showCaptcha method and template bit from editorNew/EditorOverlay
this functionality would be best if abstracted for both editing overlays
to use.

Appreciate any feedback on how this would be best accomplished.

Change-Id: I3a09351b4f7c96e39b48a4ffdb4309b9bf494d2d
---
M javascripts/modules/editor/VisualEditorOverlay.js
M templates/modules/editor/VisualEditorOverlay.html
2 files changed, 35 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/73/99773/1

diff --git a/javascripts/modules/editor/VisualEditorOverlay.js 
b/javascripts/modules/editor/VisualEditorOverlay.js
index ccd8f66..8f255d8 100644
--- a/javascripts/modules/editor/VisualEditorOverlay.js
+++ b/javascripts/modules/editor/VisualEditorOverlay.js
@@ -13,7 +13,9 @@
                        saveMsg: mw.msg( 'mobile-frontend-editor-save' ),
                        keepEditingMsg: mw.msg( 
'mobile-frontend-editor-keep-editing' ),
                        summaryMsg: mw.msg( 
'mobile-frontend-editor-summary-placeholder' ),
-                       licenseMsg: mw.msg( 'mobile-frontend-editor-license' )
+                       licenseMsg: mw.msg( 'mobile-frontend-editor-license' ),
+                       captchaMsg: mw.msg( 
'mobile-frontend-account-create-captcha-placeholder' ),
+                       captchaTryAgainMsg: mw.msg( 
'mobile-frontend-editor-captcha-try-again' )
                },
                initialize: function( options ) {
                        var self = this;
@@ -34,7 +36,7 @@
                                saveErrorAbuseFilter: 'onSaveError',
                                saveErrorBlocked: 'onSaveError',
                                saveErrorNewUser: 'onSaveError',
-                               saveErrorCaptcha: 'onSaveError',
+                               saveErrorCaptcha: 'onSaveErrorCaptcha',
                                saveErrorUnknown: 'onSaveError',
                                surfaceReady: 'onSurfaceReady',
                                loadError: 'onLoadError',
@@ -67,13 +69,17 @@
                        } );
                },
                save: function() {
-                       var summary = this.$( '.save-panel input' ).val();
+                       var summary = this.$( '.save-panel input' ).val(),
+                               options = { summary: summary };
 
                        this.$spinner.show();
                        // Stop the confirmation message from being thrown when 
you hit save.
                        this.canHide = true;
                        this.$( '.surface, .summary-area' ).hide();
-                       this.target.save( this.docToSave, { 'summary': summary 
} );
+                       // Intentional Lcase ve save api properties
+                       options.captchaid = this.captchaId;
+                       options.captchaword = this.$( '.captcha-word' ).val();
+                       this.target.save( this.docToSave, options );
                },
                showSpinner: function () {
                        this.$spinner.show();
@@ -116,6 +122,9 @@
                onSaveError: function () {
                        this.reportError( mw.msg( 
'mobile-frontend-editor-error' ) );
                },
+               onSaveErrorCaptcha: function ( editApi ) {
+                       this._showCaptcha( editApi.captcha.url );
+               },
                // FIXME: Code duplication with EditorOverlay.js, Needs 
abstraction
                hide: function() {
                        var confirmMessage = mw.msg( 
'mobile-frontend-editor-cancel-confirm' );
@@ -130,6 +139,22 @@
                        // and we want display: table for headers
                        this.$( '.hideable' ).addClass( 'hidden' );
                        this.$( className ).removeClass( 'hidden' );
+               },
+               _showCaptcha: function( url ) {
+                       var self = this, $input = this.$( '.captcha-word' );
+
+                       if ( this.captchaShown ) {
+                               $input.val( '' );
+                               $input.attr( 'placeholder', 
this.options.captchaTryAgainMsg );
+                               setTimeout( function() {
+                                       $input.attr( 'placeholder', 
self.options.captchaMsg );
+                               }, 2000 );
+                       }
+
+                       this.$( '.captcha-panel img' ).attr( 'src', url );
+                       this._showHidden( '.save-header, .captcha-panel' );
+
+                       this.captchaShown = true;
                }
        } );
 
diff --git a/templates/modules/editor/VisualEditorOverlay.html 
b/templates/modules/editor/VisualEditorOverlay.html
index 0d495b0..7176aa7 100644
--- a/templates/modules/editor/VisualEditorOverlay.html
+++ b/templates/modules/editor/VisualEditorOverlay.html
@@ -35,5 +35,11 @@
        <input class="summary" placeholder="{{summaryMsg}}" />
        <p class="license">{{{licenseMsg}}}</p>
 </div>
+<div class="captcha-panel panel hideable hidden">
+       <div class="inputs-box">
+               <img src="">
+               <input class="captcha-word" placeholder="{{captchaMsg}}" />
+       </div>
+</div>
 <div class="spinner loading"></div>
 <div class="surface"></div>

-- 
To view, visit https://gerrit.wikimedia.org/r/99773
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3a09351b4f7c96e39b48a4ffdb4309b9bf494d2d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Robmoen <rm...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to