Bartosz Dziewoński has uploaded a new change for review.

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

Change subject: mediawiki.jqueryMsg: Extend mw.Message with new #parseDom method
......................................................................

mediawiki.jqueryMsg: Extend mw.Message with new #parseDom method

Unlike #parse, this one returns a jQuery set of DOM nodes and not a
HTML string, for two benefits:

* Allows to skip unnecessary HTML serialization and reconstruction
  when we just want to insert the message contents somewhere.

  Old way:
    $( '#foo' ).html( mw.message( 'foo' ).parse() );
  New way:
    $( '#foo' ).append( mw.message( 'foo' ).parseDom() );

  This is roughly equivalent to the old alternative:
    $( '#foo' ).msg( 'foo' );
  But that way can't be used if you start with a mw.Message object, or
  don't yet know where the elements will be inserted.

* Allows to preserve the event handlers when a function is passed as
  message parameter.

    mw.messages.set( 'foo', '[$1 Click me!]' );
    $( '#foo' ).append( mw.message( 'foo', function () {
      console.log( 'Button clicked!' );
    } ).parseDom() );

Change-Id: Ia09131c2ffc1d149ca6b1c32dcd918a539c3a719
---
M resources/src/mediawiki/mediawiki.jqueryMsg.js
1 file changed, 16 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/65/251165/1

diff --git a/resources/src/mediawiki/mediawiki.jqueryMsg.js 
b/resources/src/mediawiki/mediawiki.jqueryMsg.js
index bf0884b..c5733fe 100644
--- a/resources/src/mediawiki/mediawiki.jqueryMsg.js
+++ b/resources/src/mediawiki/mediawiki.jqueryMsg.js
@@ -1270,4 +1270,20 @@
                return messageFunction( this.key, this.parameters );
        };
 
+       /**
+        * Parse the message to DOM nodes, rather than HTML string like #parse.
+        *
+        * This method is only available when jqueryMsg is loaded.
+        *
+        * @method parseDom
+        * @member mw.Message
+        * @return {jQuery}
+        */
+       mw.Message.prototype.parseDom = ( function () {
+               var reusableParent = $( '<div>' );
+               return function () {
+                       return reusableParent.msg( this.key, this.parameters 
).contents().detach();
+               };
+       } )();
+
 }( mediaWiki, jQuery ) );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia09131c2ffc1d149ca6b1c32dcd918a539c3a719
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <matma....@gmail.com>

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

Reply via email to