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