[MediaWiki-commits] [Gerrit] Support other types of 'empty' document placeholders - change (VisualEditor/VisualEditor)
Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/227736 Change subject: Support other types of 'empty' document placeholders .. Support other types of 'empty' document placeholders Currently we assueme an empty document is p/p, but it could be h2/h2 or pre/pre, so clone the first node for the placeholder rendering. Bug: T106582 Change-Id: Idd38b7d53d4f04d8612f5eafe34740f047c648ca --- M src/ui/ve.ui.Surface.js 1 file changed, 25 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor refs/changes/36/227736/1 diff --git a/src/ui/ve.ui.Surface.js b/src/ui/ve.ui.Surface.js index 7d2aef1..56e3b74 100644 --- a/src/ui/ve.ui.Surface.js +++ b/src/ui/ve.ui.Surface.js @@ -315,7 +315,7 @@ */ ve.ui.Surface.prototype.onDocumentTransact = function () { if ( this.placeholder ) { - this.$placeholder.toggleClass( 'oo-ui-element-hidden', this.getModel().getDocument().data.hasContent() ); + this.updatePlaceholder(); } }; @@ -327,17 +327,36 @@ ve.ui.Surface.prototype.setPlaceholder = function ( placeholder ) { this.placeholder = placeholder; if ( this.placeholder ) { - this.$placeholder - .toggleClass( 'oo-ui-element-hidden', this.getModel().getDocument().data.hasContent() ) - // Requires a paragraph to match margins - .empty().append( $( 'p' ).text( this.placeholder ) ) - .prependTo( this.$element ); + this.$placeholder.prependTo( this.$element ); + this.updatePlaceholder(); } else { this.$placeholder.detach(); } }; /** + * Update placeholder rendering + */ +ve.ui.Surface.prototype.updatePlaceholder = function () { + var firstNode, $wrapper, + hasContent = this.getModel().getDocument().data.hasContent(); + + this.$placeholder.toggleClass( 'oo-ui-element-hidden', hasContent ); + if ( !hasContent ) { + firstNode = this.getView().documentView.documentNode.getNodeFromOffset( 1 ); + if ( firstNode ) { + $wrapper = firstNode.$element.clone(); + if ( ve.debug ) { + $wrapper.removeAttr( 'style' ); + } + } else { + $wrapper = $( 'p' ); + } + this.$placeholder.empty().append( $wrapper.text( this.placeholder ) ); + } +}; + +/** * Execute an action or command. * * @method -- To view, visit https://gerrit.wikimedia.org/r/227736 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idd38b7d53d4f04d8612f5eafe34740f047c648ca 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
[MediaWiki-commits] [Gerrit] Support other types of 'empty' document placeholders - change (VisualEditor/VisualEditor)
jenkins-bot has submitted this change and it was merged. Change subject: Support other types of 'empty' document placeholders .. Support other types of 'empty' document placeholders Currently we assume an empty document is p/p, but it could be h2/h2 or pre/pre, so clone the first node for the placeholder rendering. Bug: T106582 Change-Id: Idd38b7d53d4f04d8612f5eafe34740f047c648ca --- M src/ui/ve.ui.Surface.js 1 file changed, 25 insertions(+), 6 deletions(-) Approvals: Alex Monk: Looks good to me, approved jenkins-bot: Verified diff --git a/src/ui/ve.ui.Surface.js b/src/ui/ve.ui.Surface.js index 7d2aef1..56e3b74 100644 --- a/src/ui/ve.ui.Surface.js +++ b/src/ui/ve.ui.Surface.js @@ -315,7 +315,7 @@ */ ve.ui.Surface.prototype.onDocumentTransact = function () { if ( this.placeholder ) { - this.$placeholder.toggleClass( 'oo-ui-element-hidden', this.getModel().getDocument().data.hasContent() ); + this.updatePlaceholder(); } }; @@ -327,17 +327,36 @@ ve.ui.Surface.prototype.setPlaceholder = function ( placeholder ) { this.placeholder = placeholder; if ( this.placeholder ) { - this.$placeholder - .toggleClass( 'oo-ui-element-hidden', this.getModel().getDocument().data.hasContent() ) - // Requires a paragraph to match margins - .empty().append( $( 'p' ).text( this.placeholder ) ) - .prependTo( this.$element ); + this.$placeholder.prependTo( this.$element ); + this.updatePlaceholder(); } else { this.$placeholder.detach(); } }; /** + * Update placeholder rendering + */ +ve.ui.Surface.prototype.updatePlaceholder = function () { + var firstNode, $wrapper, + hasContent = this.getModel().getDocument().data.hasContent(); + + this.$placeholder.toggleClass( 'oo-ui-element-hidden', hasContent ); + if ( !hasContent ) { + firstNode = this.getView().documentView.documentNode.getNodeFromOffset( 1 ); + if ( firstNode ) { + $wrapper = firstNode.$element.clone(); + if ( ve.debug ) { + $wrapper.removeAttr( 'style' ); + } + } else { + $wrapper = $( 'p' ); + } + this.$placeholder.empty().append( $wrapper.text( this.placeholder ) ); + } +}; + +/** * Execute an action or command. * * @method -- To view, visit https://gerrit.wikimedia.org/r/227736 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Idd38b7d53d4f04d8612f5eafe34740f047c648ca Gerrit-PatchSet: 2 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders esand...@wikimedia.org Gerrit-Reviewer: Alex Monk kren...@gmail.com Gerrit-Reviewer: jenkins-bot ___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits