diff --git a/app.rb b/app.rb index 2763df42..f522edaa 100644 --- a/app.rb +++ b/app.rb @@ -862,7 +862,7 @@ post '/event/:event_id/toggle_like' do |event_id| content_type :json event = Event[id: event_id] liked_response = event.toggle_site_like(current_site) ? 'liked' : 'unliked' - {result: liked_response, event_like_count: event.likes_dataset.count}.to_json + {result: liked_response, event_like_count: event.likes_dataset.count, liking_site_names: event.liking_site_names}.to_json end post '/event/:event_id/comment' do |event_id| diff --git a/models/event.rb b/models/event.rb index c5294931..274ad004 100644 --- a/models/event.rb +++ b/models/event.rb @@ -7,23 +7,27 @@ class Event < Sequel::Model many_to_one :profile_comment one_to_many :likes one_to_many :comments - + + def liking_site_names + likes.collect {|like| like.actioning_site.username } + end + def add_site_comment(site, message) add_comment actioning_site_id: site.id, message: message end - + def site_likes?(site) likes_dataset.filter(actioning_site_id: site.id).count > 0 end - + def site_like(site) add_like actioning_site_id: site.id end - + def site_unlike(site) likes_dataset.filter(actioning_site_id: site.id).delete end - + def toggle_site_like(site) if site_likes? site site_unlike site diff --git a/models/like.rb b/models/like.rb index 2d5815a5..b2a5c005 100644 --- a/models/like.rb +++ b/models/like.rb @@ -1,3 +1,4 @@ class Like < Sequel::Model many_to_one :event + many_to_one :actioning_site, class: :Site end \ No newline at end of file diff --git a/public/assets/css/_base-sass/_basic.scss b/public/assets/css/_base-sass/_basic.scss index e4053e6e..d4dcd6dd 100644 --- a/public/assets/css/_base-sass/_basic.scss +++ b/public/assets/css/_base-sass/_basic.scss @@ -22,3 +22,7 @@ hr{border-top:1px solid #ddd; display:block; height:1px; margin:$spacing*6 0} @import 'base-Media'; // Styling for base media elements @import 'typography'; // Styling for base typographical elements @import 'base-Form'; // Styling for base form elements + +.tooltip-inner { + white-space:pre-wrap; +} \ No newline at end of file diff --git a/public/assets/css/neo.css b/public/assets/css/neo.css index 7ff43bf7..97f1eb7e 100644 --- a/public/assets/css/neo.css +++ b/public/assets/css/neo.css @@ -176,6 +176,9 @@ textarea { overflow: auto; vertical-align: top; } +.tooltip-inner { + white-space: pre-wrap; } + table { border-collapse: collapse; border-spacing: 0; } diff --git a/public/assets/scripts/news/like.js b/public/assets/scripts/news/like.js index cc8569ae..dd7b2624 100644 --- a/public/assets/scripts/news/like.js +++ b/public/assets/scripts/news/like.js @@ -18,5 +18,6 @@ Like.prototype.toggleLike = function() { self.link.text(linkText) } + self.link.attr('data-original-title', res.liking_site_names.join('
')) }) } \ No newline at end of file diff --git a/views/_news_actions.erb b/views/_news_actions.erb index ae9881c3..b18e2238 100644 --- a/views/_news_actions.erb +++ b/views/_news_actions.erb @@ -1,6 +1,6 @@
<% if current_site %> - <%= event.site_likes?(current_site) ? 'Unlike' : 'Like' %><%= event.likes_dataset.count > 0 ? " (#{event.likes_dataset.count})" : '' %> + <%= event.site_likes?(current_site) ? 'Unlike' : 'Like' %><%= event.likes_dataset.count > 0 ? " (#{event.likes_dataset.count})" : '' %> <% else %> <% event_like_count = event.likes_dataset.count %> <% if event_like_count > 0 %> diff --git a/views/layout.erb b/views/layout.erb index b5e863f1..a534fb65 100644 --- a/views/layout.erb +++ b/views/layout.erb @@ -54,5 +54,9 @@ + +