Skip to content

Instantly share code, notes, and snippets.

<li class="no-requests">You have no new requests</li>
<% current_user.pending_received_contact_requests.each do |user| %>
<%= render partial: "layouts/"\
"navigation/"\
"header/"\
"dropdowns/"\
"contact_requests/"\
"request",
locals: { user: user } %>
<% end %>
def nav_contact_requests_partial_path
# if contact requests exist
if current_user.pending_received_contact_requests.present?
'layouts/navigation/header/dropdowns/contact_requests/requests'
else # contact requests do not exist
'layouts/navigation/header/dropdowns/contact_requests/no_requests'
end
end
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-user-o" aria-hidden="true">
<span id="unresponded-contact-requests"></span>
</i>
</a>
<ul class="dropdown dropdown-menu" role="menu">
<%= render nav_contact_requests_partial_path %>
</ul><!-- dropdown-menu -->
<li class="contact-request" data-user-name="<%= sender.name %>">
<div class="sixty-percent">
<span class="contact-name"><%= sender.name %></span>
</div>
<div class="forty-percent">
<span class="accept-request">
<%= link_to "Accept",
contact_path(id: sender.id),
remote: true,
method: "put" %>
class ContactRequestBroadcastJob < ApplicationJob
queue_as :default
def perform(contact_request)
sender = User.find(contact_request.user_id)
receiver = User.find(contact_request.contact_id)
ActionCable.server.broadcast(
"notifications_#{receiver.id}",
notification: 'contact-request-received',
class NotificationChannel < ApplicationCable::Channel
def subscribed
stream_from "notifications_#{current_user.id}"
end
def unsubscribed
stop_all_streams
end
def contact_request_response(data)
<form class="send-group-message">
<input name="conversation_id"
type="hidden"
value="<%= conversation.id %>">
<input name="user_id" type="hidden" value="<%= current_user.id %>">
<textarea name="content"
rows="2"
class="form-control"
placeholder="Type a message..."></textarea>
<input type="submit" class="btn btn-success send-message">
<div class="conversation-details">
<%= link_to :back do %>
<i class="fa fa-arrow-left back-to-chats-main" aria-hidden="true"></i>
<% end %>
<div class="conversation-name">
<%= conversation.name %>
</div>
</div>
<% @is_messenger = true %>
<%= render 'messengers/group_conversation/details',
conversation: conversation %>
<%= render 'group/conversations/conversation/messages_list',
conversation: conversation %>
<%= render 'messengers/group_conversation/new_message_form',
conversation: conversation %>