2016-10-18 12:34:19 -04:00
|
|
|
import Active from '../Active'
|
|
|
|
import GlobalUI from '../GlobalUI'
|
|
|
|
|
|
|
|
import {
|
|
|
|
REQUEST_LIVE_MAPS,
|
|
|
|
JOIN_MAP,
|
|
|
|
LEAVE_MAP,
|
|
|
|
CHECK_FOR_CALL,
|
|
|
|
ACCEPT_CALL,
|
|
|
|
DENY_CALL,
|
|
|
|
DENY_INVITE,
|
|
|
|
INVITE_TO_JOIN,
|
|
|
|
INVITE_A_CALL,
|
|
|
|
JOIN_CALL,
|
|
|
|
LEAVE_CALL,
|
|
|
|
SEND_MAPPER_INFO,
|
|
|
|
SEND_COORDS,
|
|
|
|
CREATE_MESSAGE,
|
|
|
|
DRAG_TOPIC,
|
|
|
|
CREATE_TOPIC,
|
|
|
|
UPDATE_TOPIC,
|
|
|
|
REMOVE_TOPIC,
|
|
|
|
DELETE_TOPIC,
|
|
|
|
CREATE_SYNAPSE,
|
|
|
|
UPDATE_SYNAPSE,
|
|
|
|
REMOVE_SYNAPSE,
|
|
|
|
DELETE_SYNAPSE,
|
|
|
|
UPDATE_MAP
|
|
|
|
} from './events'
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const requestLiveMaps = self => () => {
|
|
|
|
self.socket.emit(REQUEST_LIVE_MAPS)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const joinMap = self => () => {
|
|
|
|
self.socket.emit(JOIN_MAP, {
|
2016-10-18 12:34:19 -04:00
|
|
|
userid: Active.Mapper.id,
|
|
|
|
username: Active.Mapper.get('name'),
|
|
|
|
userimage: Active.Mapper.get('image'),
|
|
|
|
mapid: Active.Map.id,
|
|
|
|
map: Active.Map.attributes
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const leaveMap = self => () => {
|
|
|
|
self.socket.emit(LEAVE_MAP)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const checkForCall = self => () => {
|
|
|
|
self.socket.emit(CHECK_FOR_CALL, { room: self.room.room, mapid: Active.Map.id })
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const sendMapperInfo = self => userid => {
|
2016-10-18 12:34:19 -04:00
|
|
|
// send this new mapper back your details, and the awareness that you've loaded the map
|
|
|
|
var update = {
|
|
|
|
userToNotify: userid,
|
|
|
|
username: Active.Mapper.get('name'),
|
|
|
|
userimage: Active.Mapper.get('image'),
|
|
|
|
userid: Active.Mapper.id,
|
|
|
|
userinconversation: self.inConversation,
|
|
|
|
mapid: Active.Map.id
|
|
|
|
}
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(SEND_MAPPER_INFO, update)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const joinCall = self => () => {
|
2016-10-18 12:34:19 -04:00
|
|
|
self.webrtc.off('readyToCall')
|
|
|
|
self.webrtc.once('readyToCall', function () {
|
|
|
|
self.videoInitialized = true
|
|
|
|
self.readyToCall = true
|
|
|
|
self.localVideo.view.manuallyPositioned = false
|
|
|
|
self.positionVideos()
|
|
|
|
self.localVideo.view.$container.show()
|
|
|
|
if (self.localVideo) {
|
|
|
|
$('#wrapper').append(self.localVideo.view.$container)
|
|
|
|
}
|
|
|
|
self.room.join()
|
|
|
|
})
|
|
|
|
self.inConversation = true
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(JOIN_CALL, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
id: Active.Mapper.id
|
|
|
|
})
|
|
|
|
self.webrtc.startLocalVideo()
|
|
|
|
GlobalUI.clearNotify()
|
|
|
|
self.room.chat.mapperJoinedCall(Active.Mapper.id)
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const leaveCall = self => () => {
|
|
|
|
self.socket.emit(LEAVE_CALL, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
id: Active.Mapper.id
|
|
|
|
})
|
|
|
|
|
|
|
|
self.room.chat.mapperLeftCall(Active.Mapper.id)
|
|
|
|
self.room.leaveVideoOnly()
|
|
|
|
self.inConversation = false
|
|
|
|
self.localVideo.view.$container.hide()
|
|
|
|
|
|
|
|
// if there's only two people in the room, and we're leaving
|
|
|
|
// we should shut down the call locally
|
|
|
|
if (self.countOthersInConversation() === 1) {
|
|
|
|
self.callEnded()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const acceptCall = self => userid => {
|
2016-10-18 12:34:19 -04:00
|
|
|
self.room.chat.sound.stop(self.soundId)
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(ACCEPT_CALL, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
invited: Active.Mapper.id,
|
|
|
|
inviter: userid
|
|
|
|
})
|
|
|
|
$.post('/maps/' + Active.Map.id + '/events/conversation')
|
|
|
|
self.joinCall()
|
|
|
|
GlobalUI.clearNotify()
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const denyCall = self => userid => {
|
2016-10-18 12:34:19 -04:00
|
|
|
self.room.chat.sound.stop(self.soundId)
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(DENY_CALL, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
invited: Active.Mapper.id,
|
|
|
|
inviter: userid
|
|
|
|
})
|
|
|
|
GlobalUI.clearNotify()
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const denyInvite = self => userid => {
|
2016-10-18 12:34:19 -04:00
|
|
|
self.room.chat.sound.stop(self.soundId)
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(DENY_INVITE, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
invited: Active.Mapper.id,
|
|
|
|
inviter: userid
|
|
|
|
})
|
|
|
|
GlobalUI.clearNotify()
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const inviteACall = self => userid => {
|
|
|
|
self.socket.emit(INVITE_A_CALL, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
inviter: Active.Mapper.id,
|
|
|
|
invited: userid
|
|
|
|
})
|
|
|
|
self.room.chat.invitationPending(userid)
|
|
|
|
GlobalUI.clearNotify()
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const inviteToJoin = self => userid => {
|
|
|
|
self.socket.emit(INVITE_TO_JOIN, {
|
2016-10-18 12:34:19 -04:00
|
|
|
mapid: Active.Map.id,
|
|
|
|
inviter: Active.Mapper.id,
|
|
|
|
invited: userid
|
|
|
|
})
|
|
|
|
self.room.chat.invitationPending(userid)
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const sendCoords = self => coords => {
|
2016-10-18 12:34:19 -04:00
|
|
|
var map = Active.Map
|
|
|
|
var mapper = Active.Mapper
|
|
|
|
if (map.authorizeToEdit(mapper)) {
|
|
|
|
var update = {
|
|
|
|
usercoords: coords,
|
|
|
|
userid: Active.Mapper.id,
|
|
|
|
mapid: Active.Map.id
|
|
|
|
}
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(SEND_COORDS, update)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const dragTopic = self => positions => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
|
|
|
positions.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(DRAG_TOPIC, positions)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const updateTopic = self => topic => {
|
2016-10-18 12:34:19 -04:00
|
|
|
var data = {
|
|
|
|
topicId: topic.id
|
|
|
|
}
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(UPDATE_TOPIC, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const updateSynapse = self => synapse => {
|
2016-10-18 12:34:19 -04:00
|
|
|
var data = {
|
|
|
|
synapseId: synapse.id
|
|
|
|
}
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(UPDATE_SYNAPSE, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const updateMap = self => map => {
|
2016-10-18 12:34:19 -04:00
|
|
|
var data = {
|
|
|
|
mapId: map.id
|
|
|
|
}
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(UPDATE_MAP, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const createMessage = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
var message = data.attributes
|
|
|
|
message.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(CREATE_MESSAGE, message)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const createTopic = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
|
|
|
data.mapperid = Active.Mapper.id
|
|
|
|
data.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(CREATE_TOPIC, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const deleteTopic = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(DELETE_TOPIC, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const removeTopic = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
|
|
|
data.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(REMOVE_TOPIC, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const createSynapse = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
|
|
|
data.mapperid = Active.Mapper.id
|
|
|
|
data.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(CREATE_SYNAPSE, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const deleteSynapse = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
|
|
|
data.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(DELETE_SYNAPSE, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-18 12:56:30 -04:00
|
|
|
export const removeSynapse = self => data => {
|
2016-10-18 12:34:19 -04:00
|
|
|
if (Active.Map) {
|
|
|
|
data.mapid = Active.Map.id
|
2016-10-18 12:56:30 -04:00
|
|
|
self.socket.emit(REMOVE_SYNAPSE, data)
|
2016-10-18 12:34:19 -04:00
|
|
|
}
|
|
|
|
}
|