jenkins-bot has submitted this change and it was merged.

Change subject: Setup A/B test for editing / performance
......................................................................


Setup A/B test for editing / performance

Does reloading page via JavaScript after edit encourage more editing?
Theoretically, re-rendering a page via JavaScript is quicker, but this
can vary depending on internet connection, size of page and various other
factors.

It is possible a slower editing experience might deter users from editing
further but we have no data to say one way or another.

This buckets our users into 2 groups
Bucket A: After editing the page will be reloaded via HTTP request
Bucket B: After editing the page will be re-rendered via JavaScript.

The purpose of the A/B test is to see if there are significantly more
edits under one bucket that another, or if there is no noticeable change
in behaviour.

Changes:
* Purposely remove the class from toast messages to ensure both test
conditions are the same.

Change-Id: I36208c0d6964685953a6bb2fc32eb7d15fe70834
---
M javascripts/modules/editor/EditorOverlayBase.js
M javascripts/modules/editor/editor.js
M less/common/toast.less
3 files changed, 29 insertions(+), 25 deletions(-)

Approvals:
  JGonera: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/javascripts/modules/editor/EditorOverlayBase.js 
b/javascripts/modules/editor/EditorOverlayBase.js
index 19cedf0..f169972 100644
--- a/javascripts/modules/editor/EditorOverlayBase.js
+++ b/javascripts/modules/editor/EditorOverlayBase.js
@@ -4,6 +4,7 @@
                schema = M.require( 'loggingSchemas/mobileWebEditing' ),
                toast = M.require( 'toast' ),
                user = M.require( 'user' ),
+               isTestA = M.isTestA,
                EditorOverlayBase;
 
        /**
@@ -79,27 +80,36 @@
                onSave: function() {
                        this.log( 'success' );
                        var title = this.options.title,
-                               extraToastClasses = '', msg;
+                               msg;
 
                        // FIXME: use generic method for following 3 lines
                        M.pageApi.invalidatePage( title );
+
+                       if ( this.isNewPage ) {
+                               msg = 'mobile-frontend-editor-success-new-page';
+                       } else if ( this.isNewEditor ) {
+                               msg = 
'mobile-frontend-editor-success-landmark-1';
+                       } else {
+                               msg = 'mobile-frontend-editor-success';
+                       }
+                       msg = mw.msg( msg );
+
+                       // FIXME: Remove when A/B test has run its course.
+                       // Does reloading page via JavaScript after edit 
encourage more editing?
+                       if ( isTestA ) {
+                               M.settings.saveUserSetting( 
'mobile-pending-toast', msg );
+                               window.location = mw.util.getUrl( title );
+                               return;
+                       }
+
                        new Page( { title: title, el: $( '#content_wrapper' ) } 
).on( 'ready', M.reloadPage ).
                                on( 'error', function() {
                                        // Force refresh when something goes 
wrong (see bug 62175 for example)
                                        window.location = mw.util.getUrl( title 
);
                                } );
 
-                       if ( this.isNewPage ) {
-                               msg = 'mobile-frontend-editor-success-new-page';
-                       } else if ( this.isNewEditor ) {
-                               extraToastClasses = 'landmark';
-                               msg = 
'mobile-frontend-editor-success-landmark-1';
-                       } else {
-                               msg = 'mobile-frontend-editor-success';
-                       }
-
                        // show a toast notification
-                       toast.show( mw.msg( msg ), extraToastClasses );
+                       toast.show( msg );
 
                        // Set a cookie for 30 days indicating that this user 
has edited from
                        // the mobile interface.
diff --git a/javascripts/modules/editor/editor.js 
b/javascripts/modules/editor/editor.js
index f01fa01..01e68f5 100644
--- a/javascripts/modules/editor/editor.js
+++ b/javascripts/modules/editor/editor.js
@@ -14,6 +14,8 @@
                isVisualEditorEnabled = M.isWideScreen() && veConfig,
                LoadingOverlay = M.require( 'LoadingOverlay' ),
                CtaDrawer = M.require( 'CtaDrawer' ),
+               toast = M.require( 'toast' ),
+               pendingToast = M.settings.getUserSetting( 
'mobile-pending-toast' ),
                drawer = new CtaDrawer( {
                        queryParams: {
                                campaign: 'mobile_editPageActionCta',
@@ -22,6 +24,12 @@
                        content: mw.msg( 'mobile-frontend-editor-cta' )
                } );
 
+       if ( pendingToast ) {
+               // delete the pending toast
+               M.settings.saveUserSetting( 'mobile-pending-toast', '' );
+               toast.show( pendingToast );
+       }
+
        function addEditButton( section, container ) {
                return $( '<a class="edit-page">' ).
                        attr( 'href', '#editor/' + section ).
diff --git a/less/common/toast.less b/less/common/toast.less
index e419729..be77b66 100644
--- a/less/common/toast.less
+++ b/less/common/toast.less
@@ -107,18 +107,4 @@
                width: 75%;
                border: none; // FIXME: this is needed because a global .error 
adds border
        }
-
-       // Toast notification landmark
-       //
-       // Add the landmark class when something special has happened.
-       //
-       // Markup:
-       // <div class="toast visible landmark">
-       //  It's your birthday!
-       // </div>
-       //
-       // Styleguide 3.3.
-       &.landmark {
-               color: #F7F737;
-       }
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I36208c0d6964685953a6bb2fc32eb7d15fe70834
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: Awjrichards <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: Jdlrobson <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to