metamaps--metamaps/app/views/notifications/index.html.erb
Connor Turland 876c61a18e Better experience of notifications. (#1066)
* all the good changes

* follows

* dont send duplicates

* remove follow_type for now

* dont add all the extra stuff we're not implementing yet

* refactor

* lots of fixes

* notifications improvements

* bad merge
2017-02-11 09:06:01 -05:00

80 lines
3.9 KiB
Text

<% content_for :title, 'Notifications | Metamaps' %>
<% content_for :mobile_title, 'Notifications' %>
<div id="yield">
<div class="centerContent notificationsPage">
<header class="page-header">
<h2 class="title">Notifications</h4>
</header>
<ul class="notifications">
<% blacklist = [MAP_ACCESS_REQUEST, MAP_ACCESS_APPROVED, MAP_INVITE_TO_EDIT] %>
<% notifications = @notifications.to_a.delete_if{|n| blacklist.include?(n.notification_code) && (n.notified_object.nil? || n.notified_object.map.nil?) }%>
<% notifications.each do |notification| %>
<% receipt = @receipts.find_by(notification_id: notification.id) %>
<li class="notification <%= receipt.is_read? ? 'read' : 'unread' %>" id="notification-<%= notification.id %>">
<%= link_to notification_path(notification.id) do %>
<div class="notification-actor">
<%= image_tag notification.sender.image(:thirtytwo) %>
</div>
<div class="notification-body">
<div class="in-bold"><%= notification.sender.name %></div>
<%
case notification.notification_code
when MAP_ACCESS_APPROVED %>
<% map = notification.notified_object.map %>
granted your request to edit map <span class="in-bold"><%= map.name %></span>
<% when MAP_ACCESS_REQUEST %>
<% map = notification.notified_object.map %>
wants permission to map with you on <span class="in-bold"><%= map.name %></span>
<% if !notification.notified_object.answered %>
&nbsp;&nbsp;<div class="action">Offer a response</div>
<% end %>
<% when MAP_INVITE_TO_EDIT %>
<% map = notification.notified_object.map %>
gave you edit access to map <span class="in-bold"><%= map.name %></span>
<% when TOPIC_ADDED_TO_MAP %>
<% topic = notification.notified_object.eventable
map = notification.notified_object.map %>
added topic <span class="in-bold"><%= topic.name %></span> to map <span class="in-bold"><%= map.name %></span>
<% when TOPIC_CONNECTED_1 %>
<% topic1 = notification.notified_object.topic1
topic2 = notification.notified_object.topic2 %>
connected <span class="in-bold"><%= topic1.name %></span> to <span class="in-bold"><%= topic2.name %></span>
<% when TOPIC_CONNECTED_2 %>
<% topic1 = notification.notified_object.topic1
topic2 = notification.notified_object.topic2 %>
connected <span class="in-bold"><%= topic2.name %></span> to <span class="in-bold"><%= topic1.name %></span>
<% when MESSAGE_FROM_DEVS %>
<%= notification.subject %>
<% end %>
</div>
<% end %>
<div class="notification-read-unread">
<% if receipt.is_read? %>
<%= link_to 'mark as unread', mark_unread_notification_path(notification.id), remote: true, method: :put %>
<% else %>
<%= link_to 'mark as read', mark_read_notification_path(notification.id), remote: true, method: :put %>
<% end %>
</div>
<div class="notification-date">
<%= notification.created_at.strftime("%b %d") %>
</div>
<div class="clearfloat"></div>
</li>
<% end %>
<% if notifications.count == 0 %>
<div class="emptyInbox">
You have no notifications. More time for dancing.
</div>
<% end %>
</ul>
</div>
<% if @notifications.total_pages > 1 %>
<div class="centerContent withPadding pagination">
<%= paginate @notifications %>
</div>
<% end %>
</div>
<%= render partial: 'notifications/header' %>