Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
* @file
* Client-side script to integrate private message threads with Nodejs.
*/
/*global Drupal, drupalSettings, io*/
/*jslint white:true, this, browser:true*/
(function (Drupal, drupalSettings, io) {
"use strict";
var initialized, threadSocket;
function init() {
// Only initialize once.
if (!initialized) {
initialized = true;
threadSocket = io(drupalSettings.privateMessageNodejs.nodejsUrl + "/pm_thread");
threadSocket.on('connect', function () {
// Enter for the room for this thread.
threadSocket.emit('thread', drupalSettings.privateMessageThread.threadId);
});
// Listen for an emission informing of a new private message in the
// thread.
threadSocket.on("new private message", function () {
// Fetch new messages from the server.
Drupal.PrivateMessages.getNewMessages();
});
// Set up a callback for when the user has changed threads.
Drupal.PrivateMessages.threadChange.privateMessageNodejs = {
threadLoaded: function (threadId) {
// Join the room for the new thread.
threadSocket.emit('thread', threadId);
}
};
Drupal.AjaxCommands.prototype.privateMessageNodejsTriggerNewMessages = function () {
threadSocket.emit("new private message", drupalSettings.privateMessageThread.threadId);
};
}
}
Drupal.behaviors.privateMessageNodejsThread = {
attach: function () {
init();
}
};
}(Drupal, drupalSettings, io));