@grabAllDBID = -> array = [] for u in Meteor.Users.find().fetch() array.push(u._id) return array # Helper to load javascript libraries from the BBB server loadLib = (libname) -> successCallback = -> retryMessageCallback = (param) -> Meteor.log.info "Failed to load library", param Meteor.Loader.loadJs("http://#{window.location.hostname}/client/lib/#{libname}", successCallback, 10000).fail(retryMessageCallback) # These settings can just be stored locally in session, created at start up Meteor.startup -> # Load SIP libraries before the application starts loadLib('sip-0.6.1.js') loadLib('bbb_webrtc_bridge_sip.js') @SessionAmplify = _.extend({}, Session, keys: _.object(_.map(amplify.store(), (value, key) -> [ key JSON.stringify(value) ] )) set: (key, value) -> Session.set.apply this, arguments amplify.store key, value return ) # Meteor.autorun -> # if Meteor.status().connected # console.log("connected") # uid = getInSession("userId") # # Obtain user info here. for testing. should be moved somewhere else later # Meteor.call "getMyInfo", uid, (error, result) -> #TODO should try to get rid of this? # if error? then console.log "error:" + error # else setInSession "display_usersList", true setInSession "display_navbar", true setInSession "display_chatbar", true setInSession "display_whiteboard", true setInSession "display_chatPane", true setInSession "joinedAt", getTime() setInSession "inChatWith", 'PUBLIC_CHAT' setInSession "messageFontSize", 12 setInSession "dateOfBuild", Meteor.config?.dateOfBuild or "UNKNOWN DATE" setInSession "bbbServerVersion", Meteor.config?.bbbServerVersion or "UNKNOWN VERSION" setInSession "displayChatNotifications", true Template.footer.helpers getFooterString: -> # info = Meteor.call('getServerInfo') dateOfBuild = getInSession 'dateOfBuild' version = getInSession "bbbServerVersion" copyrightYear = (new Date()).getFullYear() link = "http://bigbluebutton.org" foot = "(c) #{copyrightYear} BigBlueButton Inc. [build #{version} - #{dateOfBuild}] - For more information visit #{link}" Template.header.events "click .audioFeedIcon": (event) -> $(".tooltip").hide() toggleVoiceCall @ "click .chatBarIcon": (event) -> $(".tooltip").hide() toggleChatbar() "click .hideNavbarIcon": (event) -> $(".tooltip").hide() toggleNavbar() "click .lowerHand": (event) -> $(".tooltip").hide() Meteor.call('userLowerHand', getInSession("meetingId"), getInSession("DBID"), getInSession("userId"), getInSession("DBID") ) "click .muteIcon": (event) -> $(".tooltip").hide() toggleMic @ "click .raiseHand": (event) -> Meteor.log.info "navbar raise own hand from client" $(".tooltip").hide() Meteor.call('userRaiseHand', getInSession("meetingId"), getInSession("DBID"), getInSession("userId"), getInSession("DBID") ) # "click .settingsIcon": (event) -> # alert "settings" "click .signOutIcon": (event) -> response = confirm('Are you sure you want to exit?') if response userLogout getInSession("meetingId"), getInSession("userId"), true "click .usersListIcon": (event) -> $(".tooltip").hide() toggleUsersList() "click .videoFeedIcon": (event) -> $(".tooltip").hide() toggleCam @ "click .whiteboardIcon": (event) -> $(".tooltip").hide() toggleWhiteBoard() "mouseout #navbarMinimizedButton": (event) -> $("#navbarMinimizedButton").removeClass("navbarMinimizedButtonLarge") $("#navbarMinimizedButton").addClass("navbarMinimizedButtonSmall") "mouseover #navbarMinimizedButton": (event) -> $("#navbarMinimizedButton").removeClass("navbarMinimizedButtonSmall") $("#navbarMinimizedButton").addClass("navbarMinimizedButtonLarge") Template.main.helpers setTitle: -> document.title = "BigBlueButton #{window.getMeetingName() ? 'HTML5'}" Template.makeButton.rendered = -> $('button[rel=tooltip]').tooltip() Template.recordingStatus.rendered = -> $('button[rel=tooltip]').tooltip()