do not use members module
This commit is contained in:
@@ -27,10 +27,10 @@ var DesktopSharingEventTypes
|
||||
= require("../../service/desktopsharing/DesktopSharingEventTypes");
|
||||
var StatisticsEvents = require("../../service/statistics/Events");
|
||||
var UIEvents = require("../../service/UI/UIEvents");
|
||||
var MemberEvents = require("../../service/members/Events");
|
||||
var Feedback = require("./Feedback");
|
||||
|
||||
var eventEmitter = new EventEmitter();
|
||||
UI.eventEmitter = eventEmitter;
|
||||
var roomNode = null;
|
||||
var roomName = null;
|
||||
|
||||
@@ -94,7 +94,7 @@ function setupChat() {
|
||||
}
|
||||
|
||||
function setupToolbars() {
|
||||
Toolbar.init(UI);
|
||||
Toolbar.init(eventEmitter);
|
||||
Toolbar.setupButtonsFromConfig();
|
||||
BottomToolbar.init(eventEmitter);
|
||||
}
|
||||
@@ -135,7 +135,8 @@ UI.changeDisplayName = function (id, displayName) {
|
||||
VideoLayout.onDisplayNameChanged(id, displayName);
|
||||
};
|
||||
|
||||
UI.initConference = function (id) {
|
||||
UI.initConference = function () {
|
||||
var id = APP.conference.localId;
|
||||
Toolbar.updateRoomUrl(window.location.href);
|
||||
var meHTML = APP.translation.generateTranslationHTML("me");
|
||||
var settings = Settings.getSettings();
|
||||
@@ -172,21 +173,20 @@ function registerListeners() {
|
||||
});
|
||||
|
||||
UI.addListener(UIEvents.EMAIL_CHANGED, function (email) {
|
||||
UI.setUserAvatar(APP.conference.localId(), email);
|
||||
UI.setUserAvatar(APP.conference.localId, email);
|
||||
});
|
||||
}
|
||||
|
||||
function onResize() {
|
||||
Chat.resizeChat();
|
||||
VideoLayout.resizeLargeVideoContainer();
|
||||
}
|
||||
|
||||
function bindEvents() {
|
||||
/**
|
||||
* Resizes and repositions videos in full screen mode.
|
||||
*/
|
||||
$(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange',
|
||||
onResize);
|
||||
function onResize() {
|
||||
Chat.resizeChat();
|
||||
VideoLayout.resizeLargeVideoContainer();
|
||||
}
|
||||
|
||||
// Resize and reposition videos in full screen mode.
|
||||
$(document).on(
|
||||
'webkitfullscreenchange mozfullscreenchange fullscreenchange', onResize
|
||||
);
|
||||
|
||||
$(window).resize(onResize);
|
||||
}
|
||||
@@ -386,7 +386,7 @@ UI.addUser = function (jid, id, displayName) {
|
||||
);
|
||||
|
||||
if (!config.startAudioMuted ||
|
||||
config.startAudioMuted > APP.members.size())
|
||||
config.startAudioMuted > APP.conference.membersCount)
|
||||
UIUtil.playSoundNotification('userJoined');
|
||||
|
||||
// Configure avatar
|
||||
@@ -404,7 +404,7 @@ UI.removeUser = function (jid) {
|
||||
'disconnected',
|
||||
'notify.disconnected');
|
||||
if (!config.startAudioMuted ||
|
||||
config.startAudioMuted > APP.members.size()) {
|
||||
config.startAudioMuted > APP.conference.membersCount) {
|
||||
UIUtil.playSoundNotification('userLeft');
|
||||
}
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ var AudioLevels = (function(my) {
|
||||
drawContext.drawImage(canvasCache, 0, 0);
|
||||
|
||||
if(resourceJid === AudioLevels.LOCAL_LEVEL) {
|
||||
resourceJid = APP.conference.localId();
|
||||
resourceJid = APP.conference.localId;
|
||||
if (!resourceJid) {
|
||||
return;
|
||||
}
|
||||
@@ -223,11 +223,9 @@ var AudioLevels = (function(my) {
|
||||
*/
|
||||
function getVideoSpanId(resourceJid) {
|
||||
var videoSpanId = null;
|
||||
if (resourceJid === AudioLevels.LOCAL_LEVEL ||
|
||||
(APP.conference.localId() && resourceJid === APP.conference.localId())) {
|
||||
if (resourceJid === AudioLevels.LOCAL_LEVEL || APP.conference.isLocalId(resourceJid)) {
|
||||
videoSpanId = 'localVideoContainer';
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
videoSpanId = 'participant_' + resourceJid;
|
||||
}
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ var ContactList = {
|
||||
|
||||
onDisplayNameChange: function (id, displayName) {
|
||||
if (id === 'localVideoContainer') {
|
||||
id = APP.conference.localId();
|
||||
id = APP.conference.localId;
|
||||
}
|
||||
var contactName = $('#contacts #' + id + '>p');
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ var SettingsMenu = {
|
||||
}
|
||||
});
|
||||
|
||||
if (APP.conference.isModerator()) {
|
||||
if (APP.conference.isModerator) {
|
||||
startMutedSelector.css("display", "block");
|
||||
} else {
|
||||
startMutedSelector.css("display", "none");
|
||||
@@ -48,7 +48,7 @@ var SettingsMenu = {
|
||||
},
|
||||
|
||||
onRoleChanged: function () {
|
||||
if(APP.conference.isModerator()) {
|
||||
if(APP.conference.isModerator) {
|
||||
$("#startMutedOptions").css("display", "block");
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* global APP, $, buttonClick, config, lockRoom, interfaceConfig, setSharedKey,
|
||||
Util */
|
||||
/* global APP, $, config, interfaceConfig */
|
||||
/* jshint -W101 */
|
||||
var messageHandler = require("../util/MessageHandler");
|
||||
var BottomToolbar = require("./BottomToolbar");
|
||||
@@ -12,28 +11,31 @@ var AuthenticationEvents
|
||||
= require("../../../service/authentication/AuthenticationEvents");
|
||||
var AnalyticsAdapter = require("../../statistics/AnalyticsAdapter");
|
||||
var Feedback = require("../Feedback");
|
||||
var UIEvents = require("../../../service/UI/UIEvents");
|
||||
|
||||
var roomUrl = null;
|
||||
var sharedKey = '';
|
||||
var UI = null;
|
||||
var recordingToaster = null;
|
||||
var emitter = null;
|
||||
|
||||
var buttonHandlers = {
|
||||
"toolbar_button_mute": function () {
|
||||
if (APP.RTC.localAudio.isMuted()) {
|
||||
AnalyticsAdapter.sendEvent('toolbar.audio.unmuted');
|
||||
emitter.emit(UIEvents.AUDIO_MUTED, false);
|
||||
} else {
|
||||
AnalyticsAdapter.sendEvent('toolbar.audio.muted');
|
||||
emitter.emit(UIEvents.AUDIO_MUTED, true);
|
||||
}
|
||||
return APP.conference.toggleAudioMuted();
|
||||
},
|
||||
"toolbar_button_camera": function () {
|
||||
if (APP.RTC.localVideo.isMuted()) {
|
||||
AnalyticsAdapter.sendEvent('toolbar.video.enabled');
|
||||
emitter.emit(UIEvents.VIDEO_MUTED, false);
|
||||
} else {
|
||||
AnalyticsAdapter.sendEvent('toolbar.video.disabled');
|
||||
emitter.emit(UIEvents.VIDEO_MUTED, true);
|
||||
}
|
||||
return APP.conference.toggleVideoMuted();
|
||||
},
|
||||
/*"toolbar_button_authentication": function () {
|
||||
return Toolbar.authenticateClicked();
|
||||
@@ -299,7 +301,7 @@ function callSipButtonClicked() {
|
||||
var numberInput = f.sipNumber;
|
||||
if (numberInput) {
|
||||
APP.xmpp.dial(
|
||||
numberInput, 'fromnumber', UI.getRoomName(), sharedKey);
|
||||
numberInput, 'fromnumber', APP.UI.getRoomName(), sharedKey);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -309,12 +311,12 @@ function callSipButtonClicked() {
|
||||
|
||||
var Toolbar = (function (my) {
|
||||
|
||||
my.init = function (ui) {
|
||||
my.init = function (eventEmitter) {
|
||||
emitter = eventEmitter;
|
||||
UIUtil.hideDisabledButtons(defaultToolbarButtons);
|
||||
|
||||
for(var k in buttonHandlers)
|
||||
$("#" + k).click(buttonHandlers[k]);
|
||||
UI = ui;
|
||||
// Update login info
|
||||
APP.xmpp.addListener(
|
||||
AuthenticationEvents.IDENTITY_UPDATED,
|
||||
@@ -353,12 +355,12 @@ var Toolbar = (function (my) {
|
||||
}
|
||||
// Get authentication URL
|
||||
if (!APP.xmpp.isMUCJoined()) {
|
||||
APP.xmpp.getLoginUrl(UI.getRoomName(), function (url) {
|
||||
APP.xmpp.getLoginUrl(APP.UI.getRoomName(), function (url) {
|
||||
// If conference has not been started yet - redirect to login page
|
||||
window.location.href = url;
|
||||
});
|
||||
} else {
|
||||
APP.xmpp.getPopupLoginUrl(UI.getRoomName(), function (url) {
|
||||
APP.xmpp.getPopupLoginUrl(APP.UI.getRoomName(), function (url) {
|
||||
// Otherwise - open popup with authentication URL
|
||||
var authenticationWindow = Authentication.createAuthenticationWindow(
|
||||
function () {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* global APP, config, $, interfaceConfig, Moderator,
|
||||
DesktopStreaming.showDesktopSharingButton */
|
||||
/* global APP, config, $, interfaceConfig */
|
||||
|
||||
var toolbarTimeoutObject,
|
||||
toolbarTimeout = interfaceConfig.INITIAL_TOOLBAR_TIMEOUT,
|
||||
@@ -75,12 +74,6 @@ var ToolbarToggler = {
|
||||
toolbarTimeout = interfaceConfig.TOOLBAR_TIMEOUT;
|
||||
}
|
||||
|
||||
if (APP.conference.isModerator()) {
|
||||
// TODO: Enable settings functionality.
|
||||
// Need to uncomment the settings button in index.html.
|
||||
// $('#settingsButton').css({visibility:"visible"});
|
||||
}
|
||||
|
||||
// Show/hide desktop sharing button
|
||||
showDesktopSharingButton();
|
||||
},
|
||||
|
||||
@@ -56,9 +56,6 @@ var VideoLayout = (function (my) {
|
||||
};
|
||||
|
||||
my.changeLocalAudio = function(stream, isMuted) {
|
||||
if (isMuted) { // FIXME remove this?
|
||||
APP.conference.muteAudio(true);
|
||||
}
|
||||
APP.RTC.attachMediaStream($('#localAudio'), stream.getOriginalStream());
|
||||
var localAudio = document.getElementById('localAudio');
|
||||
// Writing volume not allowed in IE
|
||||
|
||||
@@ -26,9 +26,7 @@ function initShortcutHandlers() {
|
||||
84: {
|
||||
character: "T",
|
||||
function: function() {
|
||||
if(!APP.RTC.localAudio.isMuted()) {
|
||||
APP.conference.toggleAudioMuted();
|
||||
}
|
||||
APP.conference.muteAudio(true);
|
||||
}
|
||||
},
|
||||
86: {
|
||||
@@ -67,9 +65,7 @@ var KeyboardShortcut = {
|
||||
$(":focus").is("input[type=password]") ||
|
||||
$(":focus").is("textarea"))) {
|
||||
if(e.which === "T".charCodeAt(0)) {
|
||||
if(APP.RTC.localAudio.isMuted()) {
|
||||
APP.conference.toggleAudioMuted();
|
||||
}
|
||||
APP.conference.muteAudio(true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
/* global APP, require, $ */
|
||||
|
||||
/**
|
||||
* This module is meant to (eventually) contain and manage all information
|
||||
* about members/participants of the conference, so that other modules don't
|
||||
* have to do it on their own, and so that other modules can access members'
|
||||
* information from a single place.
|
||||
*
|
||||
* Currently this module only manages information about the support of jingle
|
||||
* DTMF of the members. Other fields, as well as accessor methods are meant to
|
||||
* be added as needed.
|
||||
*/
|
||||
|
||||
var XMPPEvents = require("../../service/xmpp/XMPPEvents");
|
||||
var Events = require("../../service/members/Events");
|
||||
var EventEmitter = require("events");
|
||||
|
||||
var eventEmitter = new EventEmitter();
|
||||
|
||||
/**
|
||||
* The actual container.
|
||||
*/
|
||||
var members = {};
|
||||
|
||||
/**
|
||||
* There is at least one member that supports DTMF (i.e. is jigasi).
|
||||
*/
|
||||
var atLeastOneDtmf = false;
|
||||
|
||||
|
||||
function registerListeners() {
|
||||
APP.xmpp.addListener(XMPPEvents.MUC_MEMBER_JOINED, onMucMemberJoined);
|
||||
APP.xmpp.addListener(XMPPEvents.MUC_MEMBER_LEFT, onMucMemberLeft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles a new member joining the MUC.
|
||||
*/
|
||||
function onMucMemberJoined(jid, id, displayName) {
|
||||
var member = {
|
||||
displayName: displayName
|
||||
};
|
||||
|
||||
APP.xmpp.getConnection().disco.info(
|
||||
jid, "" /* node */, function(iq) { onDiscoInfoReceived(jid, iq); });
|
||||
|
||||
members[jid] = member;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles a member leaving the MUC.
|
||||
*/
|
||||
function onMucMemberLeft(jid) {
|
||||
delete members[jid];
|
||||
updateAtLeastOneDtmf();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the reception of a disco#info packet from a particular JID.
|
||||
* @param jid the JID sending the packet.
|
||||
* @param iq the packet.
|
||||
*/
|
||||
function onDiscoInfoReceived(jid, iq) {
|
||||
if (!members[jid])
|
||||
return;
|
||||
|
||||
var supportsDtmf
|
||||
= $(iq).find('>query>feature[var="urn:xmpp:jingle:dtmf:0"]').length > 0;
|
||||
updateDtmf(jid, supportsDtmf);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the 'supportsDtmf' field for a member.
|
||||
* @param jid the jid of the member.
|
||||
* @param newValue the new value for the 'supportsDtmf' field.
|
||||
*/
|
||||
function updateDtmf(jid, newValue) {
|
||||
var oldValue = members[jid].supportsDtmf;
|
||||
members[jid].supportsDtmf = newValue;
|
||||
|
||||
if (newValue != oldValue) {
|
||||
updateAtLeastOneDtmf();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks each member's 'supportsDtmf' field and updates
|
||||
* 'atLastOneSupportsDtmf'.
|
||||
*/
|
||||
function updateAtLeastOneDtmf() {
|
||||
var newAtLeastOneDtmf = false;
|
||||
for (var key in members) {
|
||||
if (typeof members[key].supportsDtmf !== 'undefined'
|
||||
&& members[key].supportsDtmf) {
|
||||
newAtLeastOneDtmf= true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (atLeastOneDtmf != newAtLeastOneDtmf) {
|
||||
atLeastOneDtmf = newAtLeastOneDtmf;
|
||||
eventEmitter.emit(Events.DTMF_SUPPORT_CHANGED, atLeastOneDtmf);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Exported interface.
|
||||
*/
|
||||
var Members = {
|
||||
start: function() {
|
||||
registerListeners();
|
||||
},
|
||||
addListener: function(type, listener) {
|
||||
eventEmitter.on(type, listener);
|
||||
},
|
||||
removeListener: function (type, listener) {
|
||||
eventEmitter.removeListener(type, listener);
|
||||
},
|
||||
size: function () {
|
||||
return Object.keys(members).length;
|
||||
},
|
||||
getMembers: function () {
|
||||
return members;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Members;
|
||||
Reference in New Issue
Block a user