Esanders has uploaded a new change for review.

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

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

Switch back to VE when changing language in demo

Change-Id: I6cc703fcc85aff174b79822d716802062f100c96
---
M demos/ve/demo.js
M lib/oojs-ui/oojs-ui.js
2 files changed, 30 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/63/189463/1

diff --git a/demos/ve/demo.js b/demos/ve/demo.js
index 86d937d..bcb33c0 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 ) {
+               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
+               ) );
+       } );
 };
 
 /**
diff --git a/lib/oojs-ui/oojs-ui.js b/lib/oojs-ui/oojs-ui.js
index 3cc067e..2fad7f9 100644
--- a/lib/oojs-ui/oojs-ui.js
+++ b/lib/oojs-ui/oojs-ui.js
@@ -11239,7 +11239,7 @@
                        // Set inline height property to 0 to measure scroll 
height
                        .css( 'height', 0 );
 
-               this.$clone[ 0 ].style.display = 'block';
+               this.$clone.removeClass( 'oo-ui-element-hidden' );
 
                this.valCache = this.$input.val();
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6cc703fcc85aff174b79822d716802062f100c96
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

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

Reply via email to