jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/344782 )

Change subject: Defer rendering of visual diff until tab is selected
......................................................................


Defer rendering of visual diff until tab is selected

Bug: T161355
Change-Id: I718a92f4c9f8c3a48e359da898ede7dccebcec5e
---
M modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
1 file changed, 22 insertions(+), 6 deletions(-)

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



diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js 
b/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
index 8df5de4..249b223 100644
--- a/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
+++ b/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
@@ -124,11 +124,11 @@
 ve.ui.MWSaveDialog.prototype.setDiffAndReview = function ( wikitextDiff, 
visualDiff ) {
        this.$reviewVisualDiff.empty();
        if ( visualDiff ) {
-               this.diffElement = new ve.ui.DiffElement( visualDiff );
-               this.diffElement.$document.addClass( 'mw-body-content' );
-               // TODO: Remove when fixed upstream in Parsoid (T58756)
-               this.diffElement.$element.find( 'a[rel="mw:ExtLink"]' 
).addClass( 'external' );
-               this.$reviewVisualDiff.append( this.diffElement.$element );
+               if ( this.diffElement ) {
+                       this.diffElement.destroy();
+                       this.diffElement = null;
+               }
+               this.visualDiff = visualDiff;
                this.reviewModeButtonSelect.getItemFromData( 'visual' 
).setDisabled( false );
        } else {
                // TODO: Support visual diffs in source mode (epic)
@@ -184,6 +184,10 @@
        this.$reviewWikitextDiff.empty();
        this.$previewViewer.empty();
        this.hasDiff = false;
+       if ( this.diffElement ) {
+               this.diffElement.destroy();
+               this.diffElement = null;
+       }
 };
 
 /**
@@ -590,9 +594,17 @@
        var isVisual = this.reviewModeButtonSelect.getSelectedItem().getData() 
=== 'visual';
        this.$reviewVisualDiff.toggleClass( 'oo-ui-element-hidden', !isVisual );
        this.$reviewWikitextDiff.toggleClass( 'oo-ui-element-hidden', isVisual 
);
-       this.updateSize();
        if ( isVisual ) {
+               if ( !this.diffElement ) {
+                       this.diffElement = new ve.ui.DiffElement( 
this.visualDiff );
+                       this.diffElement.$document.addClass( 'mw-body-content' 
);
+                       // TODO: Remove when fixed upstream in Parsoid (T58756)
+                       this.diffElement.$element.find( 'a[rel="mw:ExtLink"]' 
).addClass( 'external' );
+                       this.$reviewVisualDiff.append( 
this.diffElement.$element );
+               }
                this.diffElement.positionDescriptions();
+               this.updateSize();
+       } else {
                this.updateSize();
        }
 };
@@ -663,6 +675,10 @@
 ve.ui.MWSaveDialog.prototype.getTeardownProcess = function ( data ) {
        return ve.ui.MWSaveDialog.super.prototype.getTeardownProcess.call( 
this, data )
                .next( function () {
+                       if ( this.diffElement ) {
+                               this.diffElement.destroy();
+                               this.diffElement = null;
+                       }
                        this.emit( 'close' );
                }, this );
 };

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I718a92f4c9f8c3a48e359da898ede7dccebcec5e
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: 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