tooltip showing who likes an event

This commit is contained in:
Kyle Drake 2014-05-02 01:46:18 -07:00
parent b96730b83f
commit f681e6c704
8 changed files with 24 additions and 7 deletions

2
app.rb
View file

@ -862,7 +862,7 @@ post '/event/:event_id/toggle_like' do |event_id|
content_type :json content_type :json
event = Event[id: event_id] event = Event[id: event_id]
liked_response = event.toggle_site_like(current_site) ? 'liked' : 'unliked' 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 end
post '/event/:event_id/comment' do |event_id| post '/event/:event_id/comment' do |event_id|

View file

@ -8,6 +8,10 @@ class Event < Sequel::Model
one_to_many :likes one_to_many :likes
one_to_many :comments one_to_many :comments
def liking_site_names
likes.collect {|like| like.actioning_site.username }
end
def add_site_comment(site, message) def add_site_comment(site, message)
add_comment actioning_site_id: site.id, message: message add_comment actioning_site_id: site.id, message: message
end end

View file

@ -1,3 +1,4 @@
class Like < Sequel::Model class Like < Sequel::Model
many_to_one :event many_to_one :event
many_to_one :actioning_site, class: :Site
end end

View file

@ -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 'base-Media'; // Styling for base media elements
@import 'typography'; // Styling for base typographical elements @import 'typography'; // Styling for base typographical elements
@import 'base-Form'; // Styling for base form elements @import 'base-Form'; // Styling for base form elements
.tooltip-inner {
white-space:pre-wrap;
}

View file

@ -176,6 +176,9 @@ textarea {
overflow: auto; overflow: auto;
vertical-align: top; } vertical-align: top; }
.tooltip-inner {
white-space: pre-wrap; }
table { table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; } border-spacing: 0; }

View file

@ -18,5 +18,6 @@ Like.prototype.toggleLike = function() {
self.link.text(linkText) self.link.text(linkText)
} }
self.link.attr('data-original-title', res.liking_site_names.join('<br>'))
}) })
} }

View file

@ -1,6 +1,6 @@
<div id="event_<%= event.id %>_actions" class="actions"> <div id="event_<%= event.id %>_actions" class="actions">
<% if current_site %> <% if current_site %>
<a href="#" id="like" onclick="new Like(<%= event.id %>, '<%= csrf_token %>').toggleLike(); return false"><%= event.site_likes?(current_site) ? 'Unlike' : 'Like' %><%= event.likes_dataset.count > 0 ? " (#{event.likes_dataset.count})" : '' %></a> <a href="#" id="like" data-placement="bottom" data-toggle="tooltip" data-original-title="<%= event.liking_site_names.join('<br>') %>" onclick="new Like(<%= event.id %>, '<%= csrf_token %>').toggleLike(); return false"><%= event.site_likes?(current_site) ? 'Unlike' : 'Like' %><%= event.likes_dataset.count > 0 ? " (#{event.likes_dataset.count})" : '' %></a>
<% else %> <% else %>
<% event_like_count = event.likes_dataset.count %> <% event_like_count = event.likes_dataset.count %>
<% if event_like_count > 0 %> <% if event_like_count > 0 %>

View file

@ -54,5 +54,9 @@
<script src="/assets/scripts/underscore-min.js"></script> <script src="/assets/scripts/underscore-min.js"></script>
<script src="/assets/scripts/nav.min.js"></script> <script src="/assets/scripts/nav.min.js"></script>
<script src="/js/bootstrap.min.js"></script> <script src="/js/bootstrap.min.js"></script>
<script>
$("a#like").tooltip({html: true})
</script>
</body> </body>
</html> </html>