Add Spotify to mediamessage.js WITHOUT breaking prawnsalad's changes
authorLouis T <LouisT@ltdev.im>
Sun, 23 Mar 2014 23:06:08 +0000 (19:06 -0400)
committerLouis T <LouisT@ltdev.im>
Sun, 23 Mar 2014 23:06:08 +0000 (19:06 -0400)
client/src/views/mediamessage.js

index 93907b1fa0336d39861dcd124d093a8c74245ee9..f7f09d4c1198f64711c6d251bd031adc021fb59d 100644 (file)
@@ -166,10 +166,31 @@ _kiwi.view.MediaMessage = Backbone.View.extend({
     }
     }, {
 
+    /**
+     * Add a media message type to append HTML after a matching URL
+     * match() should return true if it wants to handle this URL
+     * buildHtml() should return the HTML string to append after the URL in the message
+     */
+    addType: function(match, buildHtml) {
+        if (typeof match !== 'function' || typeof buildHtml !== 'function')
+            return;
+
+        this.types = this.types || [];
+        this.types.push({match: match, buildHtml: buildHtml});
+    },
+
+
     // Build the closed media HTML from a URL
     buildHtml: function (url) {
         var html = '', matches;
 
+        _.each(this.types || [], function(type) {
+            if (!type.match(url))
+                return;
+
+            html += type.buildHtml(url);
+        });
+
         // Is it an image?
         if (url.match(/(\.jpe?g|\.gif|\.bmp|\.png)\??$/i)) {
             html += '<span class="media image" data-type="image" data-url="' + url + '" title="Open Image"><a class="open"><i class="icon-chevron-right"></i></a></span>';