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