Merge branch 'merging-html5-with-master' of https://github.com/antobinary/bigbluebutton into meteor-client-whiteboard
This commit is contained in:
commit
02678f9c32
@ -57,6 +57,9 @@ Handlebars.registerHelper "colourToHex", (value) =>
|
||||
Handlebars.registerHelper 'equals', (a, b) -> # equals operator was dropped in Meteor's migration from Handlebars to Spacebars
|
||||
a is b
|
||||
|
||||
Handlebars.registerHelper "getCurrentMeeting", ->
|
||||
Meteor.Meetings.findOne()
|
||||
|
||||
Handlebars.registerHelper "getCurrentSlide", ->
|
||||
currentPresentation = Meteor.Presentations.findOne({"presentation.current": true})
|
||||
presentationId = currentPresentation?.presentation?.id
|
||||
@ -89,19 +92,38 @@ Handlebars.registerHelper "isCurrentUser", (id) ->
|
||||
Handlebars.registerHelper "meetingIsRecording", ->
|
||||
Meteor.Meetings.findOne()?.recorded # Should only ever have one meeting, so we dont need any filter and can trust result #1
|
||||
|
||||
Handlebars.registerHelper "isCurrentUserMuted", ->
|
||||
getInSession "isMuted"
|
||||
|
||||
Handlebars.registerHelper "isCurrentUserRaisingHand", ->
|
||||
user = Meteor.Users.findOne({userId:getInSession("userId")})
|
||||
user?.user?.raise_hand
|
||||
|
||||
Handlebars.registerHelper "isCurrentUserSharingAudio", ->
|
||||
user = Meteor.Users.findOne({userId:getInSession("userId")})
|
||||
user?.user?.voiceUser?.joined
|
||||
|
||||
Handlebars.registerHelper "isCurrentUserSharingVideo", ->
|
||||
user = Meteor.Users.findOne({userId:getInSession("userId")})
|
||||
user?.user?.webcam_stream?.length isnt 0
|
||||
|
||||
Handlebars.registerHelper "isCurrentUserTalking", ->
|
||||
user = Meteor.Users.findOne({userId:getInSession("userId")})
|
||||
user?.user?.voiceUser?.talking
|
||||
|
||||
Handlebars.registerHelper "isUserSharingAudio", (u) ->
|
||||
if u?
|
||||
user = Meteor.Users.findOne({userId:u.userid})
|
||||
user.user.voiceUser?.joined
|
||||
user?.user?.voiceUser?.joined
|
||||
else return false
|
||||
|
||||
Handlebars.registerHelper "isUserSharingVideo", (u) ->
|
||||
u.webcam_stream.length isnt 0
|
||||
u.webcam_stream?.length isnt 0
|
||||
|
||||
Handlebars.registerHelper "isUserTalking", (u) ->
|
||||
if u?
|
||||
user = Meteor.Users.findOne({userId:u.userid})
|
||||
user.user.voiceUser?.talking
|
||||
user.user?.voiceUser?.talking
|
||||
else return false
|
||||
|
||||
Handlebars.registerHelper "isUserMuted", (u) ->
|
||||
@ -171,6 +193,7 @@ Meteor.methods
|
||||
# format: meetingId, userId, requesterId, mutedBoolean
|
||||
# TODO: insert the requesterId - the user who requested the muting of userId (might be a moderator)
|
||||
Meteor.call('publishMuteRequest', u.meetingId, u.userId, u.userId, not u.user.voiceUser.muted)
|
||||
setInSession "isMuted", not u.user.voiceUser.muted
|
||||
|
||||
@toggleNavbar = ->
|
||||
setInSession "display_navbar", !getInSession "display_navbar"
|
||||
@ -190,7 +213,8 @@ Meteor.methods
|
||||
else
|
||||
# create voice call params
|
||||
username = "#{getInSession("userId")}-bbbID-#{getUsersName()}"
|
||||
# voiceBridge = "70827"
|
||||
# voicePin = Meteor.Meetings.findOne()?.voiceConf
|
||||
# voiceBridge = if voicePin? then voicePin else "0"
|
||||
voiceBridge = "70827"
|
||||
server = null
|
||||
joinCallback = (message) ->
|
||||
|
@ -4,7 +4,8 @@ Template.footer.helpers
|
||||
year = "YEAR" #info.getBuildYear()
|
||||
month = "MONTH" #info.getBuildMonth()
|
||||
day = "DAY" #info.getBuildDay()
|
||||
version = "VERSION_XXXX" #info.getBuildVersion()
|
||||
# version = "VERSION_XXXX" #info.getBuildVersion()
|
||||
version = getInSession "bbbServerVersion"
|
||||
copyrightYear = (new Date()).getFullYear()
|
||||
link = "<a href='http://bigbluebutton.org/' target='_blank'>http://bigbluebutton.org</a>"
|
||||
foot = "(c) #{copyrightYear} BigBlueButton Inc. [build #{version}-#{year}-#{month}-#{day}] - For more information visit #{link}"
|
||||
@ -27,17 +28,21 @@ Template.header.events
|
||||
# "click .settingsIcon": (event) ->
|
||||
# alert "settings"
|
||||
"click .raiseHand": (event) ->
|
||||
Meteor.call('userRaiseHand', getInSession("meetingId"), @id)
|
||||
Meteor.call('userRaiseHand', getInSession("meetingId"), getInSession("userId"))
|
||||
"click .lowerHand": (event) ->
|
||||
# loweredBy = @id # TODO! this must be the userid of the person lowering the hand - instructor/student
|
||||
loweredBy = getInSession("userId")
|
||||
Meteor.call('userLowerHand', getInSession("meetingId"), @id, loweredBy)
|
||||
Meteor.call('userLowerHand', getInSession("meetingId"), getInSession("userId"), loweredBy)
|
||||
"click .whiteboardIcon": (event) ->
|
||||
toggleWhiteBoard()
|
||||
|
||||
Template.recordingStatus.rendered = ->
|
||||
$('button[rel=tooltip]').tooltip()
|
||||
|
||||
Template.main.helpers
|
||||
setTitle: ->
|
||||
document.title = "BigBlueButton HTML5"
|
||||
|
||||
Template.makeButton.rendered = ->
|
||||
$('button[rel=tooltip]').tooltip()
|
||||
|
||||
@ -70,3 +75,4 @@ Meteor.startup ->
|
||||
setInSession "isSharingAudio", false
|
||||
setInSession "inChatWith", 'PUBLIC_CHAT'
|
||||
setInSession "messageFontSize", 12
|
||||
setInSession "isMuted", false
|
||||
|
@ -5,76 +5,71 @@
|
||||
</template>
|
||||
|
||||
<template name="header">
|
||||
{{#if getInSession "display_navbar"}}
|
||||
<div id="navbar" class="myNavbar gradientBar navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
{{#with getCurrentUser}}
|
||||
<div class="navbarUserButtons navbarSection">
|
||||
<!-- display/hide users list toggle -->
|
||||
{{#if getInSession "display_navbar"}}
|
||||
<div id="navbar" class="myNavbar gradientBar navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="navbarUserButtons navbarSection">
|
||||
<!-- display/hide users list toggle -->
|
||||
{{#if getInSession "display_usersList"}}
|
||||
{{> makeButton id=userId btn_class="navbarIconToggleActive usersListIcon navbarButton" i_class="user" _id=_id rel="tooltip" data_placement="bottom" title="Hide List of Users"}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive usersListIcon navbarButton" i_class="user" rel="tooltip" data_placement="bottom" title="Hide List of Users"}}
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="usersListIcon navbarButton" i_class="user" _id=_id rel="tooltip" data_placement="bottom" title="Show List of Users"}}
|
||||
{{> makeButton btn_class="usersListIcon navbarButton" i_class="user" rel="tooltip" data_placement="bottom" title="Show List of Users"}}
|
||||
{{/if}}
|
||||
|
||||
<!-- display/hide whiteboard toggle -->
|
||||
{{#if getInSession "display_whiteboard"}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive whiteboardIcon navbarButton" i_class="pencil" _id=_id rel="tooltip" data_placement="bottom" title="Hide Whiteboard"}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive whiteboardIcon navbarButton" i_class="pencil" rel="tooltip" data_placement="bottom" title="Hide Whiteboard"}}
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="whiteboardIcon navbarButton" i_class="pencil" _id=_id rel="tooltip" data_placement="bottom" title="Show Whiteboard"}}
|
||||
{{> makeButton btn_class="whiteboardIcon navbarButton" i_class="pencil" rel="tooltip" data_placement="bottom" title="Show Whiteboard"}}
|
||||
{{/if}}
|
||||
|
||||
<!-- display/hide chat bar toggle -->
|
||||
{{#if getInSession "display_chatbar"}}
|
||||
{{> makeButton id=userId btn_class="navbarIconToggleActive chatBarIcon navbarButton" i_class="comment" _id=_id rel="tooltip" data_placement="bottom" title="Hide Message Pane"}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive chatBarIcon navbarButton" i_class="comment" rel="tooltip" data_placement="bottom" title="Hide Message Pane"}}
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="chatBarIcon navbarButton" i_class="comment" _id=_id rel="tooltip" data_placement="bottom" title="Show Message Pane"}}
|
||||
{{> makeButton btn_class="chatBarIcon navbarButton" i_class="comment" rel="tooltip" data_placement="bottom" title="Show Message Pane"}}
|
||||
{{/if}}
|
||||
|
||||
<!-- display/hide webcam streams toggle -->
|
||||
{{#if isUserSharingVideo user}}
|
||||
{{> makeButton id=userId btn_class="navbarIconToggleActive videoFeedIcon navbarButton" i_class="stop" sharingVideo=true _id=_id rel="tooltip" data_placement="bottom" title="Hide Webcams"}}
|
||||
{{#if isCurrentUserSharingVideo}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive videoFeedIcon navbarButton" i_class="stop" sharingVideo=true rel="tooltip" data_placement="bottom" title="Hide Webcams"}}
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="videoFeedIcon navbarButton" i_class="facetime-video" sharingVideo=false _id=_id rel="tooltip" data_placement="bottom" title="Show Webcams"}}
|
||||
{{> makeButton btn_class="videoFeedIcon navbarButton" i_class="facetime-video" sharingVideo=false rel="tooltip" data_placement="bottom" title="Show Webcams"}}
|
||||
{{/if}}
|
||||
|
||||
<!-- Join/hang up audio call -->
|
||||
{{#if isUserSharingAudio user}}
|
||||
{{> makeButton id=userId btn_class="navbarIconToggleActive audioFeedIcon navbarButton" i_class="volume-off" sharingAudio=true _id=_id rel="tooltip" data_placement="bottom" title="Leave Audio Call"}}
|
||||
{{#if isCurrentUserSharingAudio}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive audioFeedIcon navbarButton" i_class="volume-off" sharingAudio=true rel="tooltip" data_placement="bottom" title="Leave Audio Call"}}
|
||||
|
||||
{{#if isCurrentUserMuted}}
|
||||
{{> makeButton btn_class="muteIcon navbarButton" i_class="volume-off" sharingAudio=true rel="tooltip" data_placement="bottom" title="Unmute"}}
|
||||
{{else}}
|
||||
{{#if isCurrentUserTalking}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive muteIcon navbarButton" i_class="volume-up" sharingAudio=true rel="tooltip" data_placement="bottom" title="Mute"}}
|
||||
{{else}}
|
||||
{{> makeButton btn_class="navbarIconToggleActive muteIcon navbarButton" i_class="volume-down" sharingAudio=true rel="tooltip" data_placement="bottom" title="Mute"}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="audioFeedIcon navbarButton" i_class="headphones" sharingAudio=false _id=_id rel="tooltip" data_placement="bottom" title="Join Audio Call"}}
|
||||
{{> makeButton btn_class="audioFeedIcon navbarButton" i_class="headphones" sharingAudio=false rel="tooltip" data_placement="bottom" title="Join Audio Call"}}
|
||||
{{/if}}
|
||||
|
||||
<!-- Mute/unmute user -->
|
||||
{{#if isUserSharingAudio user}}
|
||||
<!-- Should use much more noticeable icons than just bootstraps volume-up & volume-down to differentiate talking but it is good for now -->
|
||||
{{#if isUserMuted user}}
|
||||
{{> makeButton id=userid btn_class="muteIcon navbarButton" i_class="volume-off" sharingAudio=true _id=_id rel="tooltip" data_placement="bottom" title="Unmute"}}
|
||||
{{else}}
|
||||
{{#if isUserTalking user}}
|
||||
{{> makeButton id=userid btn_class="navbarIconToggleActive muteIcon navbarButton" i_class="volume-up" sharingAudio=true _id=_id rel="tooltip" data_placement="bottom" title="Mute"}}
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="navbarIconToggleActive muteIcon navbarButton" i_class="volume-down" sharingAudio=true _id=_id rel="tooltip" data_placement="bottom" title="Mute"}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if user.raise_hand}}
|
||||
{{> makeButton id=userId btn_class="lowerHand navbarIconToggleActive navbarButton" i_class="hand-up" rel="tooltip" data_placement="bottom" title="Lower your hand"}}
|
||||
{{#if isCurrentUserRaisingHand}}
|
||||
{{> makeButton btn_class="lowerHand navbarIconToggleActive navbarButton" i_class="hand-up" rel="tooltip" data_placement="bottom" title="Lower your hand"}}
|
||||
{{else}}
|
||||
{{> makeButton id=userId btn_class="raiseHand navbarButton" i_class="hand-up" rel="tooltip" data_placement="bottom" title="Raise your hand"}}
|
||||
{{> makeButton btn_class="raiseHand navbarButton" i_class="hand-up" rel="tooltip" data_placement="bottom" title="Raise your hand"}}
|
||||
{{/if}}
|
||||
|
||||
{{> recordingStatus}}
|
||||
</div>
|
||||
<div class="navbarTitle navbarSection"><span>{{getMeetingName}}</span></div>
|
||||
<div class="navbarSettingsButtons navbarSection">
|
||||
</div>
|
||||
<div class="navbarTitle navbarSection"><span>{{getMeetingName}}</span></div>
|
||||
<div class="navbarSettingsButtons navbarSection">
|
||||
<!-- {{> makeButton id="userId" btn_class="settingsIcon navbarButton" i_class="cog" rel="tooltip" data_placement="bottom" title="Settings"}} -->
|
||||
{{> makeButton id="userId" btn_class="signOutIcon navbarButton" i_class="log-out" rel="tooltip" data_placement="bottom" title="Logout"}}
|
||||
{{> makeButton id="" btn_class="hideNavbarIcon navbarButton" i_class="chevron-up" rel="tooltip" data_placement="bottom" title="Hide Navbar"}}
|
||||
</div>
|
||||
{{/with}}
|
||||
</div>
|
||||
{{else}}
|
||||
{{> makeButton btn_class="signOutIcon navbarButton" i_class="log-out" rel="tooltip" data_placement="bottom" title="Logout"}}
|
||||
{{> makeButton btn_class="hideNavbarIcon navbarButton" i_class="chevron-up" rel="tooltip" data_placement="bottom" title="Hide Navbar"}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div id="navbar" class="myNavbarMinimized navbar-default navbar-static-top" role="navigation">
|
||||
<!-- User wants to hide navbar. The button for bringing the navbar back needs to still be available. Perhaps it should appear/disappear in the future on hover? Something to add later. -->
|
||||
{{> makeButton btn_class="hideNavbarIcon navbarMinimizedButton" i_class="chevron-down" rel="tooltip" data_placement="bottom" title="Display Navbar"}}
|
||||
@ -83,7 +78,7 @@
|
||||
</template>
|
||||
|
||||
<template name="main">
|
||||
<head><title>BigBlueButton Meteor</title></head>
|
||||
{{setTitle}}
|
||||
<body>
|
||||
<div id="main" class="mainContainer row-fluid">
|
||||
<div>{{> header}}</div>
|
||||
@ -99,9 +94,13 @@
|
||||
|
||||
<template name="recordingStatus">
|
||||
<!-- Recording status of the meeting -->
|
||||
{{#if meetingIsRecording}}
|
||||
<button class="recordingStatus recordingStatusTrue" rel="tooltip" data-placement="bottom" title="This Meeting is Being Recorded"><span class="glyphicon glyphicon-record"></span> Recording</button>
|
||||
{{else}}
|
||||
<button class="recordingStatus recordingStatusFalse" rel="tooltip" data-placement="bottom" title="This Meeting is Not Being Recorded"><span class="glyphicon glyphicon-record"></span></button>
|
||||
{{/if}}
|
||||
{{#with getCurrentMeeting}}
|
||||
{{#if intendedForRecording}}
|
||||
{{#if currentlyBeingRecorded}}
|
||||
<button class="recordingStatus recordingStatusTrue" rel="tooltip" data-placement="bottom" title="This Meeting is Being Recorded"><span class="glyphicon glyphicon-record"></span> Recording</button>
|
||||
{{else}}
|
||||
<button class="recordingStatus recordingStatusFalse" rel="tooltip" data-placement="bottom" title="This Meeting is Not Currently Being Recorded"><span class="glyphicon glyphicon-record"></span></button>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/with}}
|
||||
</template>
|
||||
|
@ -8,9 +8,10 @@
|
||||
border: 1px solid #ccc;
|
||||
float: left;
|
||||
min-height:500px;
|
||||
min-width:300px;
|
||||
/*min-width:300px;*/
|
||||
overflow: hidden;
|
||||
width: 25%;
|
||||
margin-right: 0.5%;
|
||||
}
|
||||
.chat li{
|
||||
border-bottom: 1px dotted #B3A9A9;
|
||||
|
@ -5,6 +5,7 @@ body {
|
||||
color: #666666;
|
||||
height:100%;
|
||||
left:0;
|
||||
min-width: 768px;
|
||||
position:absolute;
|
||||
right:0;
|
||||
top:0;
|
||||
|
@ -1,8 +1,8 @@
|
||||
#users {
|
||||
margin-left: 0.5%;
|
||||
min-width:230px;
|
||||
/*min-width:230px;*/
|
||||
padding-bottom: 10px;
|
||||
width: 12%;
|
||||
width: 20%;
|
||||
}
|
||||
#user-contents {
|
||||
padding-bottom: 10px;
|
||||
|
@ -2,7 +2,7 @@
|
||||
margin-left: 0.5%;
|
||||
margin-right: 0.5%;
|
||||
padding: 5px;
|
||||
width:61%;
|
||||
width:53%;
|
||||
}
|
||||
|
||||
#whiteboard-paper {
|
||||
|
@ -1,11 +1,16 @@
|
||||
Meteor.methods
|
||||
addMeetingToCollection: (meetingId, name, recorded) ->
|
||||
console.log "trying to add to Meetings:#{meetingId}|#{name} Meetings.size before:#{Meteor.Meetings.find().count()}"
|
||||
|
||||
addMeetingToCollection: (meetingId, name, intendedForRecording, voiceConf, duration) ->
|
||||
#check if the meeting is already in the collection
|
||||
unless Meteor.Meetings.findOne({meetingId: meetingId})?
|
||||
id = Meteor.Meetings.insert(meetingId: meetingId, meetingName: name, recorded: recorded)
|
||||
console.log "added meeting _id=[#{id}]:meetingId=[#{meetingId}]:name=[#{name}].
|
||||
currentlyBeingRecorded = false # defaut value
|
||||
id = Meteor.Meetings.insert(
|
||||
meetingId: meetingId,
|
||||
meetingName: name,
|
||||
intendedForRecording: intendedForRecording,
|
||||
currentlyBeingRecorded: currentlyBeingRecorded,
|
||||
voiceConf: voiceConf,
|
||||
duration: duration)
|
||||
console.log "added meeting _id=[#{id}]:meetingId=[#{meetingId}]:name=[#{name}]:duration=[#{duration}]:voiceConf=[#{voiceConf}].
|
||||
Meetings.size is now #{Meteor.Meetings.find().count()}"
|
||||
|
||||
removeMeetingFromCollection: (meetingId) ->
|
||||
|
@ -35,7 +35,7 @@ config.redis.channels.toBBBApps.whiteboard = "bigbluebutton:to-bbb-apps:whiteboa
|
||||
# Logging
|
||||
config.log = {}
|
||||
|
||||
config.log.path = if process?.env?.NODE_ENV == "production"
|
||||
config.log.path = if process?.env?.NODE_ENV is "production"
|
||||
"/var/log/bigbluebutton/bbbnode.log"
|
||||
else
|
||||
"./log/development.log"
|
||||
@ -44,4 +44,4 @@ else
|
||||
config.modules = null
|
||||
|
||||
|
||||
Meteor.config = config
|
||||
Meteor.config = config
|
||||
|
@ -199,7 +199,8 @@ class Meteor.RedisPubSub
|
||||
console.log "Let's store some data for the running meetings so that when an HTML5 client joins everything is ready!"
|
||||
listOfMeetings = message.payload?.meetings
|
||||
for meeting in listOfMeetings
|
||||
Meteor.call("addMeetingToCollection", meeting.meetingID, meeting.meetingName, meeting.recorded)
|
||||
# we currently do not have voice_conf or duration in this message.
|
||||
Meteor.call("addMeetingToCollection", meeting.meetingID, meeting.meetingName, meeting.recorded, "", "")
|
||||
|
||||
if message.header?.name is "get_users_reply" and message.payload?.requester_id is "nodeJSapp"
|
||||
unless Meteor.Meetings.findOne({MeetingId: message.payload?.meeting_id})?
|
||||
@ -226,13 +227,13 @@ class Meteor.RedisPubSub
|
||||
Meteor.call("addChatToCollection", meetingId, messageObject)
|
||||
|
||||
if message.header?.name is "meeting_created_message"
|
||||
# the event message contains very little info, so we will
|
||||
# request for information for all the meetings and in
|
||||
# this way can keep the Meetings collection up to date
|
||||
console.log "just received a meeting_created_message\n\n\n"
|
||||
@invokeGetAllMeetingsRequest()
|
||||
meetingName = message.payload?.name
|
||||
intendedForRecording = message.payload?.recorded
|
||||
voiceConf = message.payload?.voice_conf
|
||||
duration = message.payload?.duration
|
||||
Meteor.call("addMeetingToCollection", meetingId, meetingName, intendedForRecording, voiceConf, duration)
|
||||
|
||||
if message.header?.name is "presentation_shared_message" # TODO TEST!!!
|
||||
if message.header?.name is "presentation_shared_message"
|
||||
presentationId = message.payload?.presentation?.id
|
||||
# change the currently displayed presentation to presentation.current = false
|
||||
Meteor.Presentations.update({"presentation.current": true, meetingId: meetingId},{$set: {"presentation.current": false}})
|
||||
@ -247,8 +248,6 @@ class Meteor.RedisPubSub
|
||||
Meteor.call("displayThisSlide", meetingId, slide.id, slide)
|
||||
|
||||
if message.header?.name is "get_presentation_info_reply" and message.payload?.requester_id is "nodeJSapp"
|
||||
# todo: grab the whiteboard shapes using the whiteboard_id we have here
|
||||
|
||||
for presentation in message.payload?.presentations
|
||||
Meteor.call("addPresentationToCollection", meetingId, presentation)
|
||||
|
||||
@ -297,9 +296,6 @@ class Meteor.RedisPubSub
|
||||
|
||||
if message.header?.name is "whiteboard_cleared_message"
|
||||
whiteboardId = message.payload?.whiteboard_id
|
||||
# shapesOnSlide = Meteor.Shapes.find({whiteboardId:whiteboardId, meetingId: meetingId}).fetch()
|
||||
# console.log "shapesOnSlide:" + shapesOnSlide.size()
|
||||
|
||||
Meteor.call("removeAllShapesFromSlide", meetingId, whiteboardId)
|
||||
|
||||
if message.header?.name is "undo_whiteboard_request"
|
||||
@ -335,6 +331,11 @@ class Meteor.RedisPubSub
|
||||
# update the user
|
||||
Meteor.Users.update({"user.userid": userId, meetingId: meetingId},{$set: {"user.raise_hand": false}}) #not sure why but message.payload?.raise_hand is awlays false
|
||||
|
||||
if message.header?.name is "recording_status_changed_message"
|
||||
intendedForRecording = message.payload?.recorded
|
||||
currentlyBeingRecorded = message.payload?.recording
|
||||
Meteor.Meetings.update({meetingId: meetingId, intendedForRecording: intendedForRecording}, {$set: {currentlyBeingRecorded: currentlyBeingRecorded}})
|
||||
|
||||
if message.header?.name in ["meeting_ended_message", "meeting_destroyed_event",
|
||||
"end_and_kick_all_message", "disconnect_all_users_message"]
|
||||
if Meteor.Meetings.findOne({meetingId: meetingId})?
|
||||
|
Loading…
Reference in New Issue
Block a user