Skip to content

Commit

Permalink
Fixes embed plugins and history formatting
Browse files Browse the repository at this point in the history
Signed-off-by: Akash Manohar J <akash@akash.im>
  • Loading branch information
HashNuke committed Mar 15, 2012
1 parent 1c64ec5 commit 7848019
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 28 deletions.
19 changes: 13 additions & 6 deletions app/assets/javascripts/backbone/kandan.js.coffee
Expand Up @@ -21,11 +21,7 @@ window.Kandan =
channels.fetch({success: ()=>

chat_area = new Kandan.Views.ChatArea({channels: channels})
$('.container').html(chat_area.render().el)

chatbox = new Kandan.Views.Chatbox()
$('.container').append(chatbox.render().el)
$('#channels').tabs()

# TODO move broadcast subscription to a helper
# TODO change this to use the broadcaster from the settings
Expand All @@ -41,14 +37,25 @@ window.Kandan =

active_users = new Kandan.Collections.ActiveUsers()
active_users.fetch({
success: ()->
# TODO fix because the current user doesnt get the first event
success: ()=>
# NOTE fix because the current user doesn't get the first event
active_users.add([$(document).data('current_user')])
$(document).data("active_users", active_users.toJSON())

# NOTE init plugins so that modifiers are registered
Kandan.Plugins.init_all()

$(".container").html(chat_area.render().el)
chatbox = new Kandan.Views.Chatbox()
$(".container").append(chatbox.render().el)
$('#channels').tabs()

# NOTE render widgets only after the chat area is rendered
Kandan.Widgets.init_all()
})



})


Expand Down
11 changes: 4 additions & 7 deletions app/assets/javascripts/backbone/plugins/image_embed.js.coffee
@@ -1,11 +1,8 @@
class Kandan.Plugins.ImageEmbed
@regex: /^http.*\.(jpg|jpeg|gif|png)/i
@image_template: _.template('<a target="_blank" href="<%= image_url %>"><img class="image-embed" src="<%= image_url %>" height="200" width="200" /></a>')



@init: ()->
Kandan.Modifiers.register @regex, (message, state)=>
message.content = @image_template({ image_url: message.content })
console.log message.content
return Kandan.Helpers.Activities.build_from_message_template(message)

Kandan.Plugins.register "Kandan.Plugins.ImageEmbed"

# Kandan.Plugins.register "Kandan.Plugins.ImageEmbed"
13 changes: 6 additions & 7 deletions app/assets/javascripts/backbone/plugins/link.js.coffee
@@ -1,12 +1,11 @@
class Kandan.Plugins.LinkEmbed

@regex: /http:\S*/g
@link_template: _.template('<a target="_blank" href="<%- url %>"><%- url %></a>')
@link_regex: /(http:\S*)/g

@init: ()->
Kandan.Modifiers.register @regex, (message, state)=>
message.content = message.content
.replace(@regex, @link_template({ url: "$1" }))
return Kandan.Helpers.Activities.build_from_message_template(message)
# Kandan.Modifiers.register @regex, (message, state)=>
# message.content = message.content
# .replace(@regex, '<a target="_blank" href="$1">$1</a>')
# return Kandan.Helpers.Activities.build_from_message_template(message)

Kandan.Plugins.register "Kandan.Plugins.LinkEmbed"
# Kandan.Plugins.register "Kandan.Plugins.LinkEmbed"
44 changes: 36 additions & 8 deletions app/assets/javascripts/backbone/plugins/youtube_embed.js.coffee
@@ -1,18 +1,46 @@
class Kandan.Plugins.YoutubeEmbed
class Kandan.Plugins.Embeds

@regex: /^http(s)?:\/\/www.youtube.com\/watch/i
@youtube_id_pattern: /\Wv=([\w|\-]*)/
@youtube_regex: /^http(s)?:\/\/www.youtube.com\/watch/i
@link_regex: /(http?:\S*)/g
@image_regex: /^http.*\.(jpg|jpeg|gif|png)/i

@youtube_id_regex: /\Wv=([\w|\-]*)/


@youtube_embed_template: _.template('<div class="youtube-preview"><a target="_blank" class="youtube-preview-link" href="<%= video_url %>"><img class="youtube-preview-image" src="<%= thumb_url %>" /></a></div>')

@image_template: _.template('<a target="_blank" href="<%= image_url %>"><img class="image-embed" src="<%= image_url %>" height="200" width="200" /></a>')

@youtube_embed_template: _.template('<div class="youtube-preview"><a target="_blank" class="youtube-preview-link" href="<%= video_url %>"><img class="youtube-preview-image" src="<% thumb_url %>" /></a></div>')

@init: ()->
Kandan.Modifiers.register @regex, (message, state)=>
video_id = message.content.match(@youtube_id_pattern)[1]
@register_youtube_modifier()
@register_image_modifier()
@register_link_modifier()



@register_image_modifier: ()->
Kandan.Modifiers.register @image_regex, (message, state)=>
message.content = @image_template({ image_url: message.content })
console.log message.content
return Kandan.Helpers.Activities.build_from_message_template(message)


@register_youtube_modifier: ()->
Kandan.Modifiers.register @youtube_regex, (message, state)=>
video_id = message.content.match(@youtube_id_regex)[1]
thumb_url = "http://img.youtube.com/vi/#{ video_id }/0.jpg"
message.content = @youtube_embed_template({
video_url: message.content,
image_url: thumb_url
thumb_url: thumb_url
})
return Kandan.Helpers.Activities.build_from_message_template(message)

Kandan.Plugins.register "Kandan.Plugins.YoutubeEmbed"

@register_link_modifier: ()->
Kandan.Modifiers.register @link_regex, (message, state)=>
message.content = message.content
.replace(@link_regex, '<a target="_blank" href="$1">$1</a>')
return Kandan.Helpers.Activities.build_from_message_template(message)

Kandan.Plugins.register "Kandan.Plugins.Embeds"

0 comments on commit 7848019

Please sign in to comment.