diff --git a/index.html b/index.html
index 699757a06..abd4be9c9 100644
--- a/index.html
+++ b/index.html
@@ -27,14 +27,14 @@
-
+
-
+
-
+
diff --git a/libs/modules/API.bundle.js b/libs/modules/API.bundle.js
index bd69cd40e..b53c899be 100644
--- a/libs/modules/API.bundle.js
+++ b/libs/modules/API.bundle.js
@@ -133,6 +133,20 @@ function processMessage(event)
}
+function setupListeners() {
+ xmpp.addListener(XMPPEvents.MUC_ENTER, function (from) {
+ API.triggerEvent("participantJoined", {jid: from});
+ });
+ xmpp.addListener(XMPPEvents.MESSAGE_RECEIVED, function (from, nick, txt, myjid) {
+ if (from != myjid)
+ API.triggerEvent("incomingMessage",
+ {"from": from, "nick": nick, "message": txt});
+ });
+ xmpp.addListener(XMPPEvents.MUC_LEFT, function (jid) {
+ API.triggerEvent("participantLeft", {jid: jid});
+ });
+}
+
var API = {
/**
* Check whether the API should be enabled or not.
@@ -161,6 +175,7 @@ var API = {
window.attachEvent('onmessage', processMessage);
}
sendMessage({type: "system", loaded: true});
+ setupListeners();
},
/**
* Checks whether the event is enabled ot not.
diff --git a/libs/modules/UI.bundle.js b/libs/modules/UI.bundle.js
index 13fe2a7c9..0bbcf251e 100644
--- a/libs/modules/UI.bundle.js
+++ b/libs/modules/UI.bundle.js
@@ -140,6 +140,16 @@ function registerListeners() {
});
xmpp.addListener(XMPPEvents.DISPLAY_NAME_CHANGED, onDisplayNameChanged);
xmpp.addListener(XMPPEvents.MUC_JOINED, onMucJoined);
+ xmpp.addListener(XMPPEvents.LOCALROLE_CHANGED, onLocalRoleChange);
+ xmpp.addListener(XMPPEvents.MUC_ENTER, onMucEntered);
+ xmpp.addListener(XMPPEvents.MUC_ROLE_CHANGED, onMucRoleChanged);
+ xmpp.addListener(XMPPEvents.PRESENCE_STATUS, onMucPresenceStatus);
+ xmpp.addListener(XMPPEvents.SUBJECT_CHANGED, chatSetSubject);
+ xmpp.addListener(XMPPEvents.MESSAGE_RECEIVED, updateChatConversation);
+ xmpp.addListener(XMPPEvents.MUC_LEFT, onMucLeft);
+ xmpp.addListener(XMPPEvents.PASSWORD_REQUIRED, onPasswordReqiured);
+ xmpp.addListener(XMPPEvents.CHAT_ERROR_RECEIVED, chatAddError);
+ xmpp.addListener(XMPPEvents.ETHERPAD, initEtherpad);
}
function bindEvents()
@@ -291,17 +301,17 @@ UI.toggleSmileys = function () {
Chat.toggleSmileys();
};
-UI.chatAddError = function(errorMessage, originalText)
+function chatAddError(errorMessage, originalText)
{
return Chat.chatAddError(errorMessage, originalText);
};
-UI.chatSetSubject = function(text)
+function chatSetSubject(text)
{
return Chat.chatSetSubject(text);
};
-UI.updateChatConversation = function (from, displayName, message) {
+function updateChatConversation(from, displayName, message) {
return Chat.updateChatConversation(from, displayName, message);
};
@@ -329,11 +339,11 @@ function onMucJoined(jid, info) {
onDisplayNameChanged('localVideoContainer', displayName + ' (me)');
}
-UI.initEtherpad = function (name) {
+function initEtherpad(name) {
Etherpad.init(name);
};
-UI.onMucLeft = function (jid) {
+function onMucLeft(jid) {
console.log('left.muc', jid);
var displayName = $('#participant_' + Strophe.getResourceFromJid(jid) +
'>.displayname').html();
@@ -375,23 +385,23 @@ UI.toggleContactList = function () {
return BottomToolbar.toggleContactList();
};
-UI.onLocalRoleChange = function (jid, info, pres) {
+function onLocalRoleChange(jid, info, pres, isModerator, isExternalAuthEnabled)
+{
console.info("My role changed, new role: " + info.role);
- var isModerator = xmpp.isModerator();
-
+ onModeratorStatusChanged(isModerator);
VideoLayout.showModeratorIndicator();
Toolbar.showAuthenticateButton(
- xmpp.isExternalAuthEnabled() && !isModerator);
+ isExternalAuthEnabled && !isModerator);
if (isModerator) {
Authentication.closeAuthenticationWindow();
messageHandler.notify(
'Me', 'connected', 'Moderator rights granted !');
}
-};
+}
-UI.onModeratorStatusChanged = function (isModerator) {
+function onModeratorStatusChanged(isModerator) {
Toolbar.showSipCallButton(isModerator);
Toolbar.showRecordingButton(
@@ -406,7 +416,7 @@ UI.onModeratorStatusChanged = function (isModerator) {
}
};
-UI.onPasswordReqiured = function (callback) {
+function onPasswordReqiured(callback) {
// password is required
Toolbar.lockLockButton();
@@ -429,7 +439,35 @@ UI.onPasswordReqiured = function (callback) {
}
}
);
-};
+}
+function onMucEntered(jid, id, displayName) {
+ messageHandler.notify(displayName || 'Somebody',
+ 'connected',
+ 'connected');
+
+ // Add Peer's container
+ VideoLayout.ensurePeerContainerExists(jid,id);
+}
+
+function onMucPresenceStatus( jid, info) {
+ VideoLayout.setPresenceStatus(
+ 'participant_' + Strophe.getResourceFromJid(jid), info.status);
+}
+
+function onMucRoleChanged(role, displayName) {
+ VideoLayout.showModeratorIndicator();
+
+ if (role === 'moderator') {
+ var displayName = displayName;
+ if (!displayName) {
+ displayName = 'Somebody';
+ }
+ messageHandler.notify(
+ displayName,
+ 'connected',
+ 'Moderator rights granted to ' + displayName + '!');
+ }
+}
UI.onAuthenticationRequired = function (intervalCallback) {
Authentication.openAuthenticationDialog(
@@ -446,35 +484,6 @@ UI.inputDisplayNameHandler = function (value) {
VideoLayout.inputDisplayNameHandler(value);
};
-UI.onMucEntered = function (jid, id, displayName) {
- messageHandler.notify(displayName || 'Somebody',
- 'connected',
- 'connected');
-
- // Add Peer's container
- VideoLayout.ensurePeerContainerExists(jid,id);
-};
-
-UI.onMucPresenceStatus = function ( jid, info) {
- VideoLayout.setPresenceStatus(
- 'participant_' + Strophe.getResourceFromJid(jid), info.status);
-};
-
-UI.onMucRoleChanged = function (role, displayName) {
- VideoLayout.showModeratorIndicator();
-
- if (role === 'moderator') {
- var displayName = displayName;
- if (!displayName) {
- displayName = 'Somebody';
- }
- messageHandler.notify(
- displayName,
- 'connected',
- 'Moderator rights granted to ' + displayName + '!');
- }
-};
-
UI.updateLocalConnectionStats = function(percent, stats)
{
VideoLayout.updateLocalConnectionStats(percent, stats);
@@ -2464,10 +2473,10 @@ function setVisualNotification(show) {
var chatBottomButtonElement
= document.getElementById('chatBottomButton').parentNode;
- var bottomLeftIndent = (Util.getTextWidth(chatBottomButtonElement) -
- Util.getTextWidth(unreadMsgBottomElement)) / 2;
- var bottomTopIndent = (Util.getTextHeight(chatBottomButtonElement) -
- Util.getTextHeight(unreadMsgBottomElement)) / 2 - 2;
+ var bottomLeftIndent = (UIUtil.getTextWidth(chatBottomButtonElement) -
+ UIUtil.getTextWidth(unreadMsgBottomElement)) / 2;
+ var bottomTopIndent = (UIUtil.getTextHeight(chatBottomButtonElement) -
+ UIUtil.getTextHeight(unreadMsgBottomElement)) / 2 - 2;
unreadMsgBottomElement.setAttribute(
'style',
diff --git a/libs/modules/xmpp.bundle.js b/libs/modules/xmpp.bundle.js
index 8b91a4906..d59a42196 100644
--- a/libs/modules/xmpp.bundle.js
+++ b/libs/modules/xmpp.bundle.js
@@ -2855,9 +2855,6 @@ var Moderator = {
init: function (xmpp) {
this.xmppService = xmpp;
- this.onLocalRoleChange = function (from, member, pres) {
- UI.onModeratorStatusChanged(Moderator.isModerator());
- };
},
onMucLeft: function (jid) {
@@ -3333,7 +3330,7 @@ module.exports = function(XMPP, eventEmitter) {
var etherpad = $(pres).find('>etherpad');
if (etherpad.length) {
if (config.etherpad_base && !Moderator.isModerator()) {
- UI.initEtherpad(etherpad.text());
+ eventEmitter.emit(XMPPEvents.ETHERPAD, etherpad.text());
}
}
@@ -3410,9 +3407,10 @@ module.exports = function(XMPP, eventEmitter) {
if (member.affiliation == 'owner') this.isOwner = true;
if (this.role !== member.role) {
this.role = member.role;
- if (Moderator.onLocalRoleChange)
- Moderator.onLocalRoleChange(from, member, pres);
- UI.onLocalRoleChange(from, member, pres);
+
+ eventEmitter.emit(XMPPEvents.LOCALROLE_CHANGED,
+ from, member, pres, Moderator.isModerator(),
+ Moderator.isExternalAuthEnabled());
}
if (!this.joined) {
this.joined = true;
@@ -3434,25 +3432,24 @@ module.exports = function(XMPP, eventEmitter) {
if (email.length > 0) {
id = email.text();
}
- UI.onMucEntered(from, id, member.displayName);
- API.triggerEvent("participantJoined", {jid: from});
+ eventEmitter.emit(XMPPEvents.MUC_ENTER, from, id, member.displayName);
}
} else {
// Presence update for existing participant
// Watch role change:
if (this.members[from].role != member.role) {
this.members[from].role = member.role;
- UI.onMucRoleChanged(member.role, member.displayName);
+ eventEmitter.emit(XMPPEvents.MUC_ROLE_CHANGED,
+ member.role, member.displayName);
}
}
// Always trigger presence to update bindings
- $(document).trigger('presence.muc', [from, member, pres]);
this.parsePresence(from, member, pres);
// Trigger status message update
if (member.status) {
- UI.onMucPresenceStatus(from, member);
+ eventEmitter.emit(XMPPEvents.PRESENCE_STATUS, from, member);
}
return true;
@@ -3489,7 +3486,7 @@ module.exports = function(XMPP, eventEmitter) {
if ($(pres).find('>error[type="auth"]>not-authorized[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]').length) {
console.log('on password required', from);
var self = this;
- UI.onPasswordReqiured(function (value) {
+ eventEmitter.emit(XMPPEvents.PASSWORD_REQUIRED, function (value) {
self.doJoin(from, value);
});
} else if ($(pres).find(
@@ -3538,12 +3535,16 @@ module.exports = function(XMPP, eventEmitter) {
onMessage: function (msg) {
// FIXME: this is a hack. but jingle on muc makes nickchanges hard
var from = msg.getAttribute('from');
- var nick = $(msg).find('>nick[xmlns="http://jabber.org/protocol/nick"]').text() || Strophe.getResourceFromJid(from);
+ var nick =
+ $(msg).find('>nick[xmlns="http://jabber.org/protocol/nick"]')
+ .text() ||
+ Strophe.getResourceFromJid(from);
var txt = $(msg).find('>body').text();
var type = msg.getAttribute("type");
if (type == "error") {
- UI.chatAddError($(msg).find('>text').text(), txt);
+ eventEmitter.emit(XMPPEvents.CHAT_ERROR_RECEIVED,
+ $(msg).find('>text').text(), txt);
return true;
}
@@ -3551,7 +3552,7 @@ module.exports = function(XMPP, eventEmitter) {
if (subject.length) {
var subjectText = subject.text();
if (subjectText || subjectText == "") {
- UI.chatSetSubject(subjectText);
+ eventEmitter.emit(XMPPEvents.SUBJECT_CHANGED, subjectText);
console.log("Subject is changed to " + subjectText);
}
}
@@ -3559,10 +3560,8 @@ module.exports = function(XMPP, eventEmitter) {
if (txt) {
console.log('chat', nick, txt);
- UI.updateChatConversation(from, nick, txt);
- if (from != this.myroomjid)
- API.triggerEvent("incomingMessage",
- {"from": from, "nick": nick, "message": txt});
+ eventEmitter.emit(XMPPEvents.MESSAGE_RECEIVED,
+ from, nick, txt, this.myroomjid);
}
return true;
},
@@ -3689,7 +3688,6 @@ module.exports = function(XMPP, eventEmitter) {
}
pres.up();
-// console.debug(pres.toString());
this.connection.send(pres);
},
addDisplayNameToPresence: function (displayName) {
@@ -3774,9 +3772,8 @@ module.exports = function(XMPP, eventEmitter) {
return null;
},
onParticipantLeft: function (jid) {
- UI.onMucLeft(jid);
- API.triggerEvent("participantLeft", {jid: jid});
+ eventEmitter.emit(XMPPEvents.MUC_LEFT, jid);
this.connection.jingle.terminateByJid(jid);
diff --git a/modules/API/API.js b/modules/API/API.js
index b00a77e50..e7d864205 100644
--- a/modules/API/API.js
+++ b/modules/API/API.js
@@ -132,6 +132,20 @@ function processMessage(event)
}
+function setupListeners() {
+ xmpp.addListener(XMPPEvents.MUC_ENTER, function (from) {
+ API.triggerEvent("participantJoined", {jid: from});
+ });
+ xmpp.addListener(XMPPEvents.MESSAGE_RECEIVED, function (from, nick, txt, myjid) {
+ if (from != myjid)
+ API.triggerEvent("incomingMessage",
+ {"from": from, "nick": nick, "message": txt});
+ });
+ xmpp.addListener(XMPPEvents.MUC_LEFT, function (jid) {
+ API.triggerEvent("participantLeft", {jid: jid});
+ });
+}
+
var API = {
/**
* Check whether the API should be enabled or not.
@@ -160,6 +174,7 @@ var API = {
window.attachEvent('onmessage', processMessage);
}
sendMessage({type: "system", loaded: true});
+ setupListeners();
},
/**
* Checks whether the event is enabled ot not.
diff --git a/modules/UI/UI.js b/modules/UI/UI.js
index e43ad3849..53177e39d 100644
--- a/modules/UI/UI.js
+++ b/modules/UI/UI.js
@@ -139,6 +139,16 @@ function registerListeners() {
});
xmpp.addListener(XMPPEvents.DISPLAY_NAME_CHANGED, onDisplayNameChanged);
xmpp.addListener(XMPPEvents.MUC_JOINED, onMucJoined);
+ xmpp.addListener(XMPPEvents.LOCALROLE_CHANGED, onLocalRoleChange);
+ xmpp.addListener(XMPPEvents.MUC_ENTER, onMucEntered);
+ xmpp.addListener(XMPPEvents.MUC_ROLE_CHANGED, onMucRoleChanged);
+ xmpp.addListener(XMPPEvents.PRESENCE_STATUS, onMucPresenceStatus);
+ xmpp.addListener(XMPPEvents.SUBJECT_CHANGED, chatSetSubject);
+ xmpp.addListener(XMPPEvents.MESSAGE_RECEIVED, updateChatConversation);
+ xmpp.addListener(XMPPEvents.MUC_LEFT, onMucLeft);
+ xmpp.addListener(XMPPEvents.PASSWORD_REQUIRED, onPasswordReqiured);
+ xmpp.addListener(XMPPEvents.CHAT_ERROR_RECEIVED, chatAddError);
+ xmpp.addListener(XMPPEvents.ETHERPAD, initEtherpad);
}
function bindEvents()
@@ -290,17 +300,17 @@ UI.toggleSmileys = function () {
Chat.toggleSmileys();
};
-UI.chatAddError = function(errorMessage, originalText)
+function chatAddError(errorMessage, originalText)
{
return Chat.chatAddError(errorMessage, originalText);
};
-UI.chatSetSubject = function(text)
+function chatSetSubject(text)
{
return Chat.chatSetSubject(text);
};
-UI.updateChatConversation = function (from, displayName, message) {
+function updateChatConversation(from, displayName, message) {
return Chat.updateChatConversation(from, displayName, message);
};
@@ -328,11 +338,11 @@ function onMucJoined(jid, info) {
onDisplayNameChanged('localVideoContainer', displayName + ' (me)');
}
-UI.initEtherpad = function (name) {
+function initEtherpad(name) {
Etherpad.init(name);
};
-UI.onMucLeft = function (jid) {
+function onMucLeft(jid) {
console.log('left.muc', jid);
var displayName = $('#participant_' + Strophe.getResourceFromJid(jid) +
'>.displayname').html();
@@ -374,23 +384,23 @@ UI.toggleContactList = function () {
return BottomToolbar.toggleContactList();
};
-UI.onLocalRoleChange = function (jid, info, pres) {
+function onLocalRoleChange(jid, info, pres, isModerator, isExternalAuthEnabled)
+{
console.info("My role changed, new role: " + info.role);
- var isModerator = xmpp.isModerator();
-
+ onModeratorStatusChanged(isModerator);
VideoLayout.showModeratorIndicator();
Toolbar.showAuthenticateButton(
- xmpp.isExternalAuthEnabled() && !isModerator);
+ isExternalAuthEnabled && !isModerator);
if (isModerator) {
Authentication.closeAuthenticationWindow();
messageHandler.notify(
'Me', 'connected', 'Moderator rights granted !');
}
-};
+}
-UI.onModeratorStatusChanged = function (isModerator) {
+function onModeratorStatusChanged(isModerator) {
Toolbar.showSipCallButton(isModerator);
Toolbar.showRecordingButton(
@@ -405,7 +415,7 @@ UI.onModeratorStatusChanged = function (isModerator) {
}
};
-UI.onPasswordReqiured = function (callback) {
+function onPasswordReqiured(callback) {
// password is required
Toolbar.lockLockButton();
@@ -428,7 +438,35 @@ UI.onPasswordReqiured = function (callback) {
}
}
);
-};
+}
+function onMucEntered(jid, id, displayName) {
+ messageHandler.notify(displayName || 'Somebody',
+ 'connected',
+ 'connected');
+
+ // Add Peer's container
+ VideoLayout.ensurePeerContainerExists(jid,id);
+}
+
+function onMucPresenceStatus( jid, info) {
+ VideoLayout.setPresenceStatus(
+ 'participant_' + Strophe.getResourceFromJid(jid), info.status);
+}
+
+function onMucRoleChanged(role, displayName) {
+ VideoLayout.showModeratorIndicator();
+
+ if (role === 'moderator') {
+ var displayName = displayName;
+ if (!displayName) {
+ displayName = 'Somebody';
+ }
+ messageHandler.notify(
+ displayName,
+ 'connected',
+ 'Moderator rights granted to ' + displayName + '!');
+ }
+}
UI.onAuthenticationRequired = function (intervalCallback) {
Authentication.openAuthenticationDialog(
@@ -445,35 +483,6 @@ UI.inputDisplayNameHandler = function (value) {
VideoLayout.inputDisplayNameHandler(value);
};
-UI.onMucEntered = function (jid, id, displayName) {
- messageHandler.notify(displayName || 'Somebody',
- 'connected',
- 'connected');
-
- // Add Peer's container
- VideoLayout.ensurePeerContainerExists(jid,id);
-};
-
-UI.onMucPresenceStatus = function ( jid, info) {
- VideoLayout.setPresenceStatus(
- 'participant_' + Strophe.getResourceFromJid(jid), info.status);
-};
-
-UI.onMucRoleChanged = function (role, displayName) {
- VideoLayout.showModeratorIndicator();
-
- if (role === 'moderator') {
- var displayName = displayName;
- if (!displayName) {
- displayName = 'Somebody';
- }
- messageHandler.notify(
- displayName,
- 'connected',
- 'Moderator rights granted to ' + displayName + '!');
- }
-};
-
UI.updateLocalConnectionStats = function(percent, stats)
{
VideoLayout.updateLocalConnectionStats(percent, stats);
diff --git a/modules/UI/side_pannels/chat/Chat.js b/modules/UI/side_pannels/chat/Chat.js
index d768d0df6..9ba9fffd7 100644
--- a/modules/UI/side_pannels/chat/Chat.js
+++ b/modules/UI/side_pannels/chat/Chat.js
@@ -41,10 +41,10 @@ function setVisualNotification(show) {
var chatBottomButtonElement
= document.getElementById('chatBottomButton').parentNode;
- var bottomLeftIndent = (Util.getTextWidth(chatBottomButtonElement) -
- Util.getTextWidth(unreadMsgBottomElement)) / 2;
- var bottomTopIndent = (Util.getTextHeight(chatBottomButtonElement) -
- Util.getTextHeight(unreadMsgBottomElement)) / 2 - 2;
+ var bottomLeftIndent = (UIUtil.getTextWidth(chatBottomButtonElement) -
+ UIUtil.getTextWidth(unreadMsgBottomElement)) / 2;
+ var bottomTopIndent = (UIUtil.getTextHeight(chatBottomButtonElement) -
+ UIUtil.getTextHeight(unreadMsgBottomElement)) / 2 - 2;
unreadMsgBottomElement.setAttribute(
'style',
diff --git a/modules/xmpp/moderator.js b/modules/xmpp/moderator.js
index 4d589a6ae..e1707c505 100644
--- a/modules/xmpp/moderator.js
+++ b/modules/xmpp/moderator.js
@@ -54,9 +54,6 @@ var Moderator = {
init: function (xmpp) {
this.xmppService = xmpp;
- this.onLocalRoleChange = function (from, member, pres) {
- UI.onModeratorStatusChanged(Moderator.isModerator());
- };
},
onMucLeft: function (jid) {
diff --git a/modules/xmpp/strophe.emuc.js b/modules/xmpp/strophe.emuc.js
index 6ac4484d1..1d6815b75 100644
--- a/modules/xmpp/strophe.emuc.js
+++ b/modules/xmpp/strophe.emuc.js
@@ -104,7 +104,7 @@ module.exports = function(XMPP, eventEmitter) {
var etherpad = $(pres).find('>etherpad');
if (etherpad.length) {
if (config.etherpad_base && !Moderator.isModerator()) {
- UI.initEtherpad(etherpad.text());
+ eventEmitter.emit(XMPPEvents.ETHERPAD, etherpad.text());
}
}
@@ -181,9 +181,10 @@ module.exports = function(XMPP, eventEmitter) {
if (member.affiliation == 'owner') this.isOwner = true;
if (this.role !== member.role) {
this.role = member.role;
- if (Moderator.onLocalRoleChange)
- Moderator.onLocalRoleChange(from, member, pres);
- UI.onLocalRoleChange(from, member, pres);
+
+ eventEmitter.emit(XMPPEvents.LOCALROLE_CHANGED,
+ from, member, pres, Moderator.isModerator(),
+ Moderator.isExternalAuthEnabled());
}
if (!this.joined) {
this.joined = true;
@@ -205,25 +206,24 @@ module.exports = function(XMPP, eventEmitter) {
if (email.length > 0) {
id = email.text();
}
- UI.onMucEntered(from, id, member.displayName);
- API.triggerEvent("participantJoined", {jid: from});
+ eventEmitter.emit(XMPPEvents.MUC_ENTER, from, id, member.displayName);
}
} else {
// Presence update for existing participant
// Watch role change:
if (this.members[from].role != member.role) {
this.members[from].role = member.role;
- UI.onMucRoleChanged(member.role, member.displayName);
+ eventEmitter.emit(XMPPEvents.MUC_ROLE_CHANGED,
+ member.role, member.displayName);
}
}
// Always trigger presence to update bindings
- $(document).trigger('presence.muc', [from, member, pres]);
this.parsePresence(from, member, pres);
// Trigger status message update
if (member.status) {
- UI.onMucPresenceStatus(from, member);
+ eventEmitter.emit(XMPPEvents.PRESENCE_STATUS, from, member);
}
return true;
@@ -260,7 +260,7 @@ module.exports = function(XMPP, eventEmitter) {
if ($(pres).find('>error[type="auth"]>not-authorized[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]').length) {
console.log('on password required', from);
var self = this;
- UI.onPasswordReqiured(function (value) {
+ eventEmitter.emit(XMPPEvents.PASSWORD_REQUIRED, function (value) {
self.doJoin(from, value);
});
} else if ($(pres).find(
@@ -309,12 +309,16 @@ module.exports = function(XMPP, eventEmitter) {
onMessage: function (msg) {
// FIXME: this is a hack. but jingle on muc makes nickchanges hard
var from = msg.getAttribute('from');
- var nick = $(msg).find('>nick[xmlns="http://jabber.org/protocol/nick"]').text() || Strophe.getResourceFromJid(from);
+ var nick =
+ $(msg).find('>nick[xmlns="http://jabber.org/protocol/nick"]')
+ .text() ||
+ Strophe.getResourceFromJid(from);
var txt = $(msg).find('>body').text();
var type = msg.getAttribute("type");
if (type == "error") {
- UI.chatAddError($(msg).find('>text').text(), txt);
+ eventEmitter.emit(XMPPEvents.CHAT_ERROR_RECEIVED,
+ $(msg).find('>text').text(), txt);
return true;
}
@@ -322,7 +326,7 @@ module.exports = function(XMPP, eventEmitter) {
if (subject.length) {
var subjectText = subject.text();
if (subjectText || subjectText == "") {
- UI.chatSetSubject(subjectText);
+ eventEmitter.emit(XMPPEvents.SUBJECT_CHANGED, subjectText);
console.log("Subject is changed to " + subjectText);
}
}
@@ -330,10 +334,8 @@ module.exports = function(XMPP, eventEmitter) {
if (txt) {
console.log('chat', nick, txt);
- UI.updateChatConversation(from, nick, txt);
- if (from != this.myroomjid)
- API.triggerEvent("incomingMessage",
- {"from": from, "nick": nick, "message": txt});
+ eventEmitter.emit(XMPPEvents.MESSAGE_RECEIVED,
+ from, nick, txt, this.myroomjid);
}
return true;
},
@@ -460,7 +462,6 @@ module.exports = function(XMPP, eventEmitter) {
}
pres.up();
-// console.debug(pres.toString());
this.connection.send(pres);
},
addDisplayNameToPresence: function (displayName) {
@@ -545,9 +546,8 @@ module.exports = function(XMPP, eventEmitter) {
return null;
},
onParticipantLeft: function (jid) {
- UI.onMucLeft(jid);
- API.triggerEvent("participantLeft", {jid: jid});
+ eventEmitter.emit(XMPPEvents.MUC_LEFT, jid);
this.connection.jingle.terminateByJid(jid);
diff --git a/service/xmpp/XMPPEvents.js b/service/xmpp/XMPPEvents.js
index ccc2e1d1b..cc096aeed 100644
--- a/service/xmpp/XMPPEvents.js
+++ b/service/xmpp/XMPPEvents.js
@@ -8,7 +8,17 @@ var XMPPEvents = {
USER_ID_CHANGED: "xmpp.user_id_changed",
CHANGED_STREAMS: "xmpp.changed_streams",
MUC_JOINED: "xmpp.muc_joined",
+ MUC_ENTER: "xmpp.muc_enter",
+ MUC_ROLE_CHANGED: "xmpp.muc_role_changed",
+ MUC_LEFT: "xmpp.muc_left",
DISPLAY_NAME_CHANGED: "xmpp.display_name_changed",
- REMOTE_STATS: "xmpp.remote_stats"
+ REMOTE_STATS: "xmpp.remote_stats",
+ LOCALROLE_CHANGED: "xmpp.localrole_changed",
+ PRESENCE_STATUS: "xmpp.presence_status",
+ SUBJECT_CHANGED: "xmpp.subject_changed",
+ MESSAGE_RECEIVED: "xmpp.message_received",
+ PASSWORD_REQUIRED: "xmpp.password_required",
+ CHAT_ERROR_RECEIVED: "xmpp.chat_error_received",
+ ETHERPAD: "xmpp.etherpad"
};
//module.exports = XMPPEvents;
\ No newline at end of file