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

Change subject: demo: Switch mode back to VE when changing language
......................................................................


demo: Switch mode back to VE when changing language

Change-Id: I6cc703fcc85aff174b79822d716802062f100c96
---
M demos/ve/demo.js
1 file changed, 29 insertions(+), 18 deletions(-)

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



diff --git a/demos/ve/demo.js b/demos/ve/demo.js
index 86d937d..f245b9b 100644
--- a/demos/ve/demo.js
+++ b/demos/ve/demo.js
@@ -180,25 +180,25 @@
                        label: 'Page',
                        input: pageDropdown
                } ),
-               modeSelect = new OO.ui.ButtonSelectWidget().addItems( [
-                       new OO.ui.ButtonOptionWidget( { data: 've', label: 'VE' 
} ),
-                       new OO.ui.ButtonOptionWidget( { data: 'edit', label: 
'Edit HTML' } ),
-                       new OO.ui.ButtonOptionWidget( { data: 'read', label: 
'Read' } )
-               ] ),
                removeButton = new OO.ui.ButtonWidget( {
                        $: this.$,
                        icon: 'remove',
                        label: 'Remove surface'
                } );
 
-       modeSelect.selectItem( modeSelect.getItemFromData( 've' ) );
+       this.modeSelect = new OO.ui.ButtonSelectWidget().addItems( [
+               new OO.ui.ButtonOptionWidget( { data: 've', label: 'VE' } ),
+               new OO.ui.ButtonOptionWidget( { data: 'edit', label: 'Edit 
HTML' } ),
+               new OO.ui.ButtonOptionWidget( { data: 'read', label: 'Read' } )
+       ] );
+       this.modeSelect.selectItem( this.modeSelect.getItemFromData( 've' ) );
 
        this.target = target;
        this.surface = null;
        this.lang = lang;
        this.dir = dir;
        this.$surfaceWrapper = this.$( '<div>' );
-       this.lastMode = null;
+       this.mode = null;
        this.pageMenu = pageDropdown.getMenu();
        this.sourceTextInput = new OO.ui.TextInputWidget( {
                $: this.$,
@@ -213,9 +213,9 @@
        this.pageMenu.on( 'select', function ( item ) {
                var page = item.getData();
                container.change( 've', page );
-               modeSelect.selectItem( modeSelect.getItemFromData( 've' ) );
+               container.modeSelect.selectItem( 
container.modeSelect.getItemFromData( 've' ) );
        } );
-       modeSelect.on( 'select', function ( item ) {
+       this.modeSelect.on( 'select', function ( item ) {
                container.change( item.getData() );
        } );
        removeButton.on( 'click', this.destroy.bind( this ) );
@@ -226,7 +226,7 @@
                                pageLabel.$element,
                                pageDropdown.$element,
                                this.$( '<span 
class="ve-demo-toolbar-divider">&nbsp;</span>' ),
-                               modeSelect.$element,
+                               this.modeSelect.$element,
                                this.$( '<span 
class="ve-demo-toolbar-divider">&nbsp;</span>' ),
                                removeButton.$element
                        )
@@ -273,13 +273,20 @@
  *
  * @param {string} mode Mode to switch to: 've', 'edit or 'read'
  * @param {string} [page] Page to load
+ * @return {jQuery.Promise} Promise which resolves when change is complete
  */
 ve.demo.SurfaceContainer.prototype.change = function ( mode, page ) {
        var model, doc, html, closePromise,
                container = this,
                currentDir = 'ltr';
 
-       switch ( this.lastMode ) {
+       if ( mode === this.mode && !page ) {
+               return $.Deferred().resolve().promise();
+       }
+
+       this.modeSelect.selectItem( this.modeSelect.getItemFromData( mode ) );
+
+       switch ( this.mode ) {
                case 've':
                        closePromise = this.$surfaceWrapper.slideUp().promise();
                        if ( !page ) {
@@ -311,7 +318,7 @@
                        break;
        }
 
-       closePromise.done( function () {
+       return closePromise.done( function () {
                switch ( mode ) {
                        case 've':
                                if ( page ) {
@@ -331,7 +338,7 @@
                                container.$readView.html( html ).css( 
'direction', currentDir ).slideDown();
                                break;
                }
-               container.lastMode = mode;
+               container.mode = mode;
        } );
 };
 
@@ -401,14 +408,18 @@
  * @param {string} dir Directionality
  */
 ve.demo.SurfaceContainer.prototype.reload = function ( lang, dir ) {
+       var container = this;
+
        this.lang = lang;
        this.dir = dir;
 
-       this.loadHtml( ve.properInnerHtml(
-               ve.dm.converter.getDomFromModel(
-                       this.surface.getModel().getDocument()
-               ).body
-       ) );
+       this.change( 've' ).done( function () {
+               container.loadHtml( ve.properInnerHtml(
+                       ve.dm.converter.getDomFromModel(
+                               container.surface.getModel().getDocument()
+                       ).body
+               ) );
+       } );
 };
 
 /**

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I6cc703fcc85aff174b79822d716802062f100c96
Gerrit-PatchSet: 5
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to