[MediaWiki-commits] [Gerrit] Support other types of 'empty' document placeholders - change (VisualEditor/VisualEditor)

2015-07-29 Thread Esanders (Code Review)
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)

2015-07-29 Thread jenkins-bot (Code Review)
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