Merge pull request #54 from beatriceo/hangup

Romain added hangup
This commit is contained in:
Beatrice Olivera 2018-09-04 14:54:12 +01:00 committed by GitHub
commit ba17995f7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 51 additions and 4 deletions

View File

@ -0,0 +1,12 @@
.hand {
position: absolute;
bottom: 20px;
z-index: 10000000000;
left: 48%;
font-size: 26px;
cursor: pointer;
}
.call-container {
// position: relative;
}

View File

@ -2,3 +2,4 @@
@import "alert";
@import "navbar";
@import "banner";
@import "hand";

View File

@ -66,6 +66,7 @@
img {
width: 3em;
padding: 0.2em;
border-radius: 50%;
}
}

View File

@ -5,5 +5,13 @@ class ChatRoomsChannel < ApplicationCable::Channel
def unsubscribed
# Any cleanup needed when channel is unsubscribed
puts "I am now destroyed"
# redirect_to root_path
# ActionCable.server.broadcast('notifications', {
# head: 302, # redirection code, just to make it clear what you're doing
# path: chat_room_path(chat_room), # you'll need to use url_helpers, so include them in your file
# body: { caller: other_caller.id }
# }
# redirect_to root_path
end
end

View File

@ -14,6 +14,13 @@ class ChatRoomsController < ApplicationController
ActionCable.server.broadcast "chat_room_#{params[:room]}", session_params
end
def destroy
# chat_room = ChatRoom.find(params[:id])
# chat_room.destroy
ActionCable.server.broadcast "chat_room_#{params[:id]}", { hangUp: true }
head :ok
end
private
def session_params

View File

@ -19,10 +19,26 @@ App['chatroom' + chatroomId] = App.cable.subscriptions.create({
connected: () => {
},
received: data => {
console.log(data)
if (data.hangUp) {
document.location.pathname = '/contacts'
}
},
disconnected: () => {
document.location.pathname = '/contacts'
}
})
const hangUpIcon = document.querySelector('.fa-hand-paper')
hangUpIcon.addEventListener('click', event => {
fetch(`/chat_rooms/${chatroomId}`, {
method: 'DELETE',
headers: {
'X-CSRF-Token': document.querySelector('meta[name=csrf-token]').content
}
})
document.location.pathname = '/contacts'
})
// Testing ActionCable
const testBtn = document.getElementById('test-btn')
testBtn.addEventListener('click', event => {

View File

@ -10,6 +10,8 @@ class User < ApplicationRecord
has_many :chat_rooms, through: :chat_room_participations
has_many :requests
validates :email, uniqueness: true
mount_uploader :photo, PhotoUploader
def contacts

View File

@ -6,8 +6,10 @@
<div class="call-container">
<div id="remote-video-container">
<div id="video_overlays">
<video id="local-video" autoplay muted></video>
</div>
<i class="far fa-hand-paper hand"></i>
</div>
</div>
@ -16,5 +18,3 @@
<%= javascript_pack_tag 'chatrooms' %>
<%= javascript_pack_tag 'webrtc' %>

View File

@ -27,7 +27,7 @@ Rails.application.routes.draw do
post '/chat_rooms/chat_room_sessions', to: 'chat_rooms#create'
resources :chat_rooms, only: [ :show ] do
resources :chat_rooms, only: [ :show, :destroy ] do
# testing action cable
post '/cable_testing', to: 'pages#cable_testing'
end