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 <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to