Browse Source

do not use NicknameHandler

master
isymchych 10 years ago
parent
commit
c50151d85d

+ 22
- 4
app.js View File

@@ -36,14 +36,19 @@ function createConference(connection, room) {
36 36
 
37 37
         setNickname: function (nickname) {
38 38
             // FIXME check if room is available etc.
39
+            APP.settings.setDisplayName(nickname);
39 40
             room.setDisplayName(nickname);
40 41
         },
41 42
 
43
+        sendMessage: function (message) {
44
+            room.sendTextMessage(message);
45
+        },
46
+
42 47
         isModerator: function () {
43 48
             return false;
44 49
         },
45 50
 
46
-        myJid: function () {
51
+        localId: function () {
47 52
             return room.myUserId();
48 53
         }
49 54
     };
@@ -54,6 +59,7 @@ var APP = {
54 59
 
55 60
     init: function () {
56 61
         this.JitsiMeetJS.init();
62
+        this.JitsiMeetJS.setLogLevel(JitsiMeetJS.logLevels.TRACE);
57 63
         this.conference = null;
58 64
 
59 65
         this.UI = require("./modules/UI/UI");
@@ -222,6 +228,13 @@ function initConference(connection, roomName) {
222 228
                 reject();
223 229
             }
224 230
         );
231
+        room.on(
232
+            ConferenceErrors.CONNECTION_ERROR,
233
+            function () {
234
+                // FIXME handle
235
+                reject();
236
+            }
237
+        );
225 238
         APP.UI.closeAuthenticationDialog();
226 239
         if (config.useNicks) {
227 240
             // FIXME check this
@@ -237,13 +250,19 @@ function init() {
237 250
     }).then(function (conference) {
238 251
         APP.conference = conference;
239 252
 
240
-        APP.UI.initConference();
253
+        APP.UI.start();
254
+
255
+        // FIXME find own jid
256
+        APP.UI.initConference("asdfasdf");
241 257
 
242
-        //NicknameHandler emits this event
243 258
         APP.UI.addListener(UIEvents.NICKNAME_CHANGED, function (nickname) {
244 259
             APP.conference.setNickname(nickname);
245 260
         });
246 261
 
262
+        APP.UI.addListener(UIEvents.MESSAGE_CREATED, function (message) {
263
+            APP.conference.sendMessage(message);
264
+        });
265
+
247 266
         APP.desktopsharing.init();
248 267
         APP.statistics.start();
249 268
         APP.connectionquality.init();
@@ -301,7 +320,6 @@ $(document).ready(function () {
301 320
         APP.API.init();
302 321
     }
303 322
 
304
-    APP.UI.start();
305 323
     obtainConfigAndInit();
306 324
 });
307 325
 

+ 7
- 20
modules/UI/UI.js View File

@@ -21,7 +21,6 @@ UI.messageHandler = require("./util/MessageHandler");
21 21
 var messageHandler = UI.messageHandler;
22 22
 var Authentication  = require("./authentication/Authentication");
23 23
 var UIUtil = require("./util/UIUtil");
24
-var NicknameHandler = require("./util/NicknameHandler");
25 24
 var JitsiPopover = require("./util/JitsiPopover");
26 25
 var CQEvents = require("../../service/connectionquality/CQEvents");
27 26
 var DesktopSharingEventTypes
@@ -59,7 +58,7 @@ function promptDisplayName() {
59 58
             if (v == "ok") {
60 59
                 var displayName = f.displayName;
61 60
                 if (displayName) {
62
-                    VideoLayout.inputDisplayNameHandler(displayName);
61
+                    UI.inputDisplayNameHandler(displayName);
63 62
                     return true;
64 63
                 }
65 64
             }
@@ -88,7 +87,7 @@ function setupPrezi() {
88 87
 }
89 88
 
90 89
 function setupChat() {
91
-    Chat.init();
90
+    Chat.init(eventEmitter);
92 91
     $("#toggle_smileys").click(function() {
93 92
         Chat.toggleSmileys();
94 93
     });
@@ -136,13 +135,11 @@ UI.changeDisplayName = function (jid, displayName) {
136 135
     VideoLayout.onDisplayNameChanged(jid, displayName);
137 136
 };
138 137
 
139
-UI.initConference = function () {
140
-    // FIXME find own jid
141
-    var jid = "asdfasdf";
142
-
138
+UI.initConference = function (jid) {
143 139
     Toolbar.updateRoomUrl(window.location.href);
144 140
     var meHTML = APP.translation.generateTranslationHTML("me");
145
-    $("#localNick").html(Strophe.getResourceFromJid(jid) + " (" + meHTML + ")");
141
+    var localId = APP.conference.localId();
142
+    $("#localNick").html(localId + " (" + meHTML + ")");
146 143
 
147 144
     var settings = Settings.getSettings();
148 145
 
@@ -155,8 +152,7 @@ UI.initConference = function () {
155 152
     // Once we've joined the muc show the toolbar
156 153
     ToolbarToggler.showToolbar();
157 154
 
158
-    var displayName =
159
-        config.displayJids ? Strophe.getResourceFromJid(jid) : settings.displayName;
155
+    var displayName = config.displayJids ? localId : settings.displayName;
160 156
 
161 157
     if (displayName) {
162 158
         UI.changeDisplayName('localVideoContainer', displayName);
@@ -211,11 +207,9 @@ UI.start = function () {
211 207
     // Set the defaults for prompt dialogs.
212 208
     $.prompt.setDefaults({persistent: false});
213 209
 
214
-
215 210
     registerListeners();
216 211
 
217 212
     VideoLayout.init(eventEmitter);
218
-    NicknameHandler.init(eventEmitter);
219 213
 
220 214
     bindEvents();
221 215
     setupPrezi();
@@ -251,13 +245,8 @@ UI.start = function () {
251 245
 
252 246
     document.title = interfaceConfig.APP_NAME;
253 247
 
254
-
255
-
256
-
257
-
258 248
     if(config.requireDisplayName) {
259
-        var currentSettings = Settings.getSettings();
260
-        if (!currentSettings.displayName) {
249
+        if (APP.settings.getDisplayName()) {
261 250
             promptDisplayName();
262 251
         }
263 252
     }
@@ -667,8 +656,6 @@ UI.setAudioLevel = function (targetJid, lvl) {
667 656
     );
668 657
 };
669 658
 
670
-UI.showToolbar = ToolbarToggler.showToolbar;
671
-
672 659
 UI.updateDesktopSharingButtons = function () {
673 660
     Toolbar.changeDesktopSharingButtonState();
674 661
 };

+ 7
- 13
modules/UI/side_pannels/chat/Chat.js View File

@@ -1,9 +1,8 @@
1
-/* global APP, $, Util, nickname:true */
1
+/* global APP, $ */
2 2
 var Replacement = require("./Replacement");
3 3
 var CommandsProcessor = require("./Commands");
4 4
 var ToolbarToggler = require("../../toolbars/ToolbarToggler");
5 5
 var smileys = require("./smileys.json").smileys;
6
-var NicknameHandler = require("../../util/NicknameHandler");
7 6
 var UIUtil = require("../../util/UIUtil");
8 7
 var UIEvents = require("../../../../service/UI/UIEvents");
9 8
 
@@ -169,22 +168,18 @@ var Chat = (function (my) {
169 168
     /**
170 169
      * Initializes chat related interface.
171 170
      */
172
-    my.init = function () {
173
-        if(NicknameHandler.getNickname())
171
+    my.init = function (eventEmitter) {
172
+        if (APP.settings.getDisplayName()) {
174 173
             Chat.setChatConversationMode(true);
175
-        NicknameHandler.addListener(UIEvents.NICKNAME_CHANGED,
176
-            function (nickname) {
177
-                Chat.setChatConversationMode(true);
178
-            });
174
+        }
179 175
 
180 176
         $('#nickinput').keydown(function (event) {
181 177
             if (event.keyCode === 13) {
182 178
                 event.preventDefault();
183 179
                 var val = UIUtil.escapeHtml(this.value);
184 180
                 this.value = '';
185
-                if (!NicknameHandler.getNickname()) {
186
-                    NicknameHandler.setNickname(val);
187
-
181
+                if (APP.settings.getDisplayName()) {
182
+                    eventEmitter.emit(UIEvents.NICKNAME_CHANGED, val);
188 183
                     return;
189 184
                 }
190 185
             }
@@ -203,8 +198,7 @@ var Chat = (function (my) {
203 198
                 }
204 199
                 else {
205 200
                     var message = UIUtil.escapeHtml(value);
206
-                    APP.xmpp.sendChatMessage(message,
207
-                                             NicknameHandler.getNickname());
201
+                    eventEmitter.emit(UIEvents.MESSAGE_CREATED, message);
208 202
                 }
209 203
             }
210 204
         });

+ 2
- 2
modules/UI/side_pannels/settings/SettingsMenu.js View File

@@ -34,7 +34,7 @@ var SettingsMenu = {
34 34
             }
35 35
         });
36 36
 
37
-        if (APP.xmpp.isModerator()) {
37
+        if (APP.conference.isModerator()) {
38 38
             startMutedSelector.css("display", "block");
39 39
         }
40 40
         else {
@@ -47,7 +47,7 @@ var SettingsMenu = {
47 47
     },
48 48
 
49 49
     onRoleChanged: function () {
50
-        if(APP.xmpp.isModerator()) {
50
+        if(APP.conference.isModerator()) {
51 51
             $("#startMutedOptions").css("display", "block");
52 52
         }
53 53
         else {

+ 0
- 30
modules/UI/util/NicknameHandler.js View File

@@ -1,30 +0,0 @@
1
-var UIEvents = require("../../../service/UI/UIEvents");
2
-
3
-var nickname = null;
4
-var eventEmitter = null;
5
-
6
-var NicknameHandler = {
7
-    init: function (emitter) {
8
-        eventEmitter = emitter;
9
-        var storedDisplayName = window.localStorage.displayname;
10
-        if (storedDisplayName) {
11
-            nickname = storedDisplayName;
12
-        }
13
-    },
14
-    setNickname: function (newNickname) {
15
-        if (!newNickname || nickname === newNickname)
16
-            return;
17
-
18
-        nickname = newNickname;
19
-        window.localStorage.displayname = nickname;
20
-        eventEmitter.emit(UIEvents.NICKNAME_CHANGED, newNickname);
21
-    },
22
-    getNickname: function () {
23
-        return nickname;
24
-    },
25
-    addListener: function (type, listener) {
26
-        eventEmitter.on(type, listener);
27
-    }
28
-};
29
-
30
-module.exports = NicknameHandler;

+ 6
- 21
modules/UI/videolayout/LocalVideo.js View File

@@ -1,12 +1,12 @@
1 1
 /* global $, interfaceConfig, APP */
2 2
 var SmallVideo = require("./SmallVideo");
3 3
 var ConnectionIndicator = require("./ConnectionIndicator");
4
-var NicknameHandler = require("../util/NicknameHandler");
5 4
 var UIUtil = require("../util/UIUtil");
5
+var UIEvents = require("../../../service/UI/UIEvents");
6 6
 var LargeVideo = require("./LargeVideo");
7 7
 var RTCBrowserType = require("../../RTC/RTCBrowserType");
8 8
 
9
-function LocalVideo(VideoLayout) {
9
+function LocalVideo(VideoLayout, emitter) {
10 10
     this.videoSpanId = "localVideoContainer";
11 11
     this.container = $("#localVideoContainer").get(0);
12 12
     this.bindHoverHandler();
@@ -14,6 +14,7 @@ function LocalVideo(VideoLayout) {
14 14
     this.flipX = true;
15 15
     this.isLocal = true;
16 16
     this.peerJid = null;
17
+    this.emitter = emitter;
17 18
 }
18 19
 
19 20
 LocalVideo.prototype = Object.create(SmallVideo.prototype);
@@ -117,11 +118,13 @@ LocalVideo.prototype.setDisplayName = function(displayName, key) {
117 118
 
118 119
                 editDisplayName.one("focusout", function (e) {
119 120
                     self.VideoLayout.inputDisplayNameHandler(this.value);
121
+                    $('#editDisplayName').hide();
120 122
                 });
121 123
 
122 124
                 editDisplayName.on('keydown', function (e) {
123 125
                     if (e.keyCode === 13) {
124 126
                         e.preventDefault();
127
+                        $('#editDisplayName').hide();
125 128
                         self.VideoLayout.inputDisplayNameHandler(this.value);
126 129
                     }
127 130
                 });
@@ -130,25 +133,7 @@ LocalVideo.prototype.setDisplayName = function(displayName, key) {
130 133
 };
131 134
 
132 135
 LocalVideo.prototype.inputDisplayNameHandler = function (name) {
133
-    name = UIUtil.escapeHtml(name);
134
-
135
-    NicknameHandler.setNickname(name);
136
-
137
-    var localDisplayName = $('#localDisplayName');
138
-    if (!localDisplayName.is(":visible")) {
139
-        if (NicknameHandler.getNickname()) {
140
-            var meHTML = APP.translation.generateTranslationHTML("me");
141
-            localDisplayName.html(NicknameHandler.getNickname() + " (" +
142
-            meHTML + ")");
143
-        } else {
144
-            var defaultHTML = APP.translation.generateTranslationHTML(
145
-                interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME);
146
-            localDisplayName .html(defaultHTML);
147
-        }
148
-        localDisplayName.show();
149
-    }
150
-
151
-    $('#editDisplayName').hide();
136
+    this.emitter.emit(UIEvents.NICKNAME_CHANGED, UIUtil.escapeHtml(name));
152 137
 };
153 138
 
154 139
 LocalVideo.prototype.createConnectionIndicator = function() {

+ 1
- 1
modules/UI/videolayout/VideoLayout.js View File

@@ -36,7 +36,7 @@ var focusedVideoResourceJid = null;
36 36
 var VideoLayout = (function (my) {
37 37
     my.init = function (emitter) {
38 38
         eventEmitter = emitter;
39
-        localVideoThumbnail = new LocalVideo(VideoLayout);
39
+        localVideoThumbnail = new LocalVideo(VideoLayout, emitter);
40 40
         if (interfaceConfig.filmStripOnly) {
41 41
             LargeVideo.disable();
42 42
         } else {

+ 3
- 0
modules/settings/Settings.js View File

@@ -57,6 +57,9 @@ var Settings = {
57 57
      * @returns {string} the display name we just set
58 58
      */
59 59
     setDisplayName: function (newDisplayName) {
60
+        if (displayName === newDisplayName) {
61
+            return displayName;
62
+        }
60 63
         displayName = newDisplayName;
61 64
         window.localStorage.displayname = displayName;
62 65
         return displayName;

+ 4
- 0
service/UI/UIEvents.js View File

@@ -3,6 +3,10 @@ var UIEvents = {
3 3
     SELECTED_ENDPOINT: "UI.selected_endpoint",
4 4
     PINNED_ENDPOINT: "UI.pinned_endpoint",
5 5
     LARGEVIDEO_INIT: "UI.largevideo_init",
6
+    /**
7
+     * Notifies that local user created text message.
8
+     */
9
+    MESSAGE_CREATED: "UI.message_created",
6 10
     /**
7 11
      * Notifies interested parties when the film strip (remote video's panel)
8 12
      * is hidden (toggled) or shown (un-toggled).

Loading…
Cancel
Save