Bläddra i källkod

Handles MUC destroyed event.

j8
paweldomas 11 år sedan
förälder
incheckning
8042bd2aa6
3 ändrade filer med 26 tillägg och 0 borttagningar
  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 Visa fil

139
         messageHandler.openMessageDialog("dialog.sessTerminated", "Session Terminated",
139
         messageHandler.openMessageDialog("dialog.sessTerminated", "Session Terminated",
140
             "dialog.kickMessage", "Ouch! You have been kicked out of the meet!");
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
     APP.xmpp.addListener(XMPPEvents.BRIDGE_DOWN, function () {
153
     APP.xmpp.addListener(XMPPEvents.BRIDGE_DOWN, function () {
143
         messageHandler.showError("dialog.error","Error",
154
         messageHandler.showError("dialog.error","Error",
144
             "dialog.bridgeUnavailable",
155
             "dialog.bridgeUnavailable",

+ 14
- 0
modules/xmpp/strophe.emuc.js Visa fil

229
         },
229
         },
230
         onPresenceUnavailable: function (pres) {
230
         onPresenceUnavailable: function (pres) {
231
             var from = pres.getAttribute('from');
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
             // Status code 110 indicates that this notification is "self-presence".
246
             // Status code 110 indicates that this notification is "self-presence".
233
             if (!$(pres).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>status[code="110"]').length) {
247
             if (!$(pres).find('>x[xmlns="http://jabber.org/protocol/muc#user"]>status[code="110"]').length) {
234
                 delete this.members[from];
248
                 delete this.members[from];

+ 1
- 0
service/xmpp/XMPPEvents.js Visa fil

11
     MUC_ENTER: "xmpp.muc_enter",
11
     MUC_ENTER: "xmpp.muc_enter",
12
     MUC_ROLE_CHANGED: "xmpp.muc_role_changed",
12
     MUC_ROLE_CHANGED: "xmpp.muc_role_changed",
13
     MUC_LEFT: "xmpp.muc_left",
13
     MUC_LEFT: "xmpp.muc_left",
14
+    MUC_DESTROYED: "xmpp.muc_destroyed",
14
     DISPLAY_NAME_CHANGED: "xmpp.display_name_changed",
15
     DISPLAY_NAME_CHANGED: "xmpp.display_name_changed",
15
     REMOTE_STATS: "xmpp.remote_stats",
16
     REMOTE_STATS: "xmpp.remote_stats",
16
     LOCALROLE_CHANGED: "xmpp.localrole_changed",
17
     LOCALROLE_CHANGED: "xmpp.localrole_changed",

Laddar…
Avbryt
Spara