Esanders has uploaded a new change for review.

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

Change subject: Follow-up I553e31: Don't show error for non-rendered GCNs
......................................................................

Follow-up I553e31: Don't show error for non-rendered GCNs

To avoid all issues with generatedContextValid meaning 'true'
when it is undefined or null, invert it to '..Invalid' which is
only true when we know we have a GCN which has rendered and failed
validation.

Also always perform this check, even on first render as the node
may load in an error state.

Bug: T114527
Change-Id: Ia08d8e7b74e37edc5e73b2ed8adc8ece90764ada
---
M src/ce/nodes/ve.ce.GeneratedContentNode.js
M src/ce/ve.ce.FocusableNode.js
2 files changed, 4 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/99/243499/1

diff --git a/src/ce/nodes/ve.ce.GeneratedContentNode.js 
b/src/ce/nodes/ve.ce.GeneratedContentNode.js
index 3bb5cb3..444eb65 100644
--- a/src/ce/nodes/ve.ce.GeneratedContentNode.js
+++ b/src/ce/nodes/ve.ce.GeneratedContentNode.js
@@ -15,7 +15,7 @@
 ve.ce.GeneratedContentNode = function VeCeGeneratedContentNode() {
        // Properties
        this.generatingPromise = null;
-       this.generatedContentsValid = false;
+       this.generatedContentsInvalid = null;
        this.generatedContentsFirstRender = true;
 
        // Events
@@ -145,11 +145,11 @@
                this.emit( 'teardown' );
        }
        $newElements = $( this.getRenderedDomElements( ve.copyDomElements( 
generatedContents ) ) );
+       this.generatedContentsInvalid = !this.validateGeneratedContents( $( 
generatedContents ) );
        // Render if this is the first time rendering, regardless of whether 
there is an error; otherwise only
        // render if there is no error
-       if ( this.generatedContentsFirstRender || 
this.validateGeneratedContents( $( generatedContents ) ) ) {
+       if ( this.generatedContentsFirstRender || 
!this.generatedContentsInvalid ) {
                this.generatedContentsFirstRender = false;
-               this.generatedContentsValid = true;
                if ( !this.$element[ 0 ].parentNode ) {
                        // this.$element hasn't been attached yet, so just 
overwrite it
                        this.$element = $newElements;
@@ -159,8 +159,6 @@
                        this.$element.remove();
                        this.$element = $newElements;
                }
-       } else {
-               this.generatedContentsValid = false;
        }
 
        // Update focusable and resizable elements if necessary
diff --git a/src/ce/ve.ce.FocusableNode.js b/src/ce/ve.ce.FocusableNode.js
index 293ea2f..bc59eca 100644
--- a/src/ce/ve.ce.FocusableNode.js
+++ b/src/ce/ve.ce.FocusableNode.js
@@ -80,8 +80,7 @@
  * @return {jQuery} A highlight element
  */
 ve.ce.FocusableNode.prototype.createHighlight = function () {
-       // For GCNs check this.generatedContentsValid; for non-GCNs it is 
undefined (and therefore falsey)
-       var extraClasses = ( this.generatedContentsValid === undefined || 
this.generatedContentsValid ) ? '' : ' ve-ce-focusableNode-highlight-error';
+       var extraClasses = this.generatedContentsInvalid ? ' 
ve-ce-focusableNode-highlight-error' : '';
        return $( '<div>' )
                .addClass( 've-ce-focusableNode-highlight' + extraClasses )
                .prop( {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia08d8e7b74e37edc5e73b2ed8adc8ece90764ada
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <esand...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to