Bladeren bron

Handles MUC destroyed event.

j8
paweldomas 10 jaren geleden
bovenliggende
commit
8042bd2aa6
3 gewijzigde bestanden met toevoegingen van 26 en 0 verwijderingen
  1. 11
    0
      modules/UI/UI.js
  2. 14
    0
      modules/xmpp/strophe.emuc.js
  3. 1
    0
      service/xmpp/XMPPEvents.js

+ 11
- 0
modules/UI/UI.js Bestand weergeven

@@ -139,6 +139,17 @@ function registerListeners() {
139 139
         messageHandler.openMessageDialog("dialog.sessTerminated", "Session Terminated",
140 140
             "dialog.kickMessage", "Ouch! You have been kicked out of the meet!");
141 141
     });
142
+    APP.xmpp.addListener(XMPPEvents.MUC_DESTROYED, function (reason) {
143
+        //FIXME: use Session Terminated from translation, but
144
+        // 'reason' text comes from XMPP packet and is not translated
145
+        messageHandler.openDialog(
146
+            "Session Terminated", reason, true, {},
147
+            function (event, value, message, formVals)
148
+            {
149
+                return false;
150
+            }
151
+        );
152
+    });
142 153
     APP.xmpp.addListener(XMPPEvents.BRIDGE_DOWN, function () {
143 154
         messageHandler.showError("dialog.error","Error",
144 155
             "dialog.bridgeUnavailable",

+ 14
- 0
modules/xmpp/strophe.emuc.js Bestand weergeven

@@ -229,6 +229,20 @@ module.exports = function(XMPP, eventEmitter) {
229 229
         },
230 230
         onPresenceUnavailable: function (pres) {
231 231
             var from = pres.getAttribute('from');
232
+            // room destroyed ?
233
+            if ($(pres).find('>x[xmlns="http://jabber.org/protocol/muc#user"]' +
234
+                             '>destroy').length) {
235
+                var reason;
236
+                var reasonSelect = $(pres).find(
237
+                    '>x[xmlns="http://jabber.org/protocol/muc#user"]' +
238
+                    '>destroy>reason');
239
+                if (reasonSelect.length) {
240
+                    reason = reasonSelect.text();
241
+                }
242
+                XMPP.disposeConference(false);
243
+                eventEmitter.emit(XMPPEvents.MUC_DESTROYED, reason);
244
+                return true;
245
+            }
232 246
             // Status code 110 indicates that this notification is "self-presence".
233 247
             if (!$(pres).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>status[code="110"]').length) {
234 248
                 delete this.members[from];

+ 1
- 0
service/xmpp/XMPPEvents.js Bestand weergeven

@@ -11,6 +11,7 @@ var XMPPEvents = {
11 11
     MUC_ENTER: "xmpp.muc_enter",
12 12
     MUC_ROLE_CHANGED: "xmpp.muc_role_changed",
13 13
     MUC_LEFT: "xmpp.muc_left",
14
+    MUC_DESTROYED: "xmpp.muc_destroyed",
14 15
     DISPLAY_NAME_CHANGED: "xmpp.display_name_changed",
15 16
     REMOTE_STATS: "xmpp.remote_stats",
16 17
     LOCALROLE_CHANGED: "xmpp.localrole_changed",

Laden…
Annuleren
Opslaan