/
chat-controller.js
81 lines (59 loc) · 2.47 KB
/
chat-controller.js
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/** no messages preload */
var chatPanel = null;
function chatController($scope){
log("chatController started");
var self = $scope;
chatPanel = self;
self.messages = [/*{to: "1", from: "u1", text: "aga1", clientTime: 123456789, serverTime: 123456989},
{to: "all", from: "user2", text: "aga2", clientTime: 123457189, serverTime: 123457989}*/];
self.newMessage = "";
self.sendPrivate = false;
self.privateTo = "";
self.showPrivateOnly = false;
self.error = "";
self.$watch('sendPrivate', function(){
log("sendPrivate="+self.sendPrivate);
if(self.sendPrivate && self.privateTo == ""){
self.error = "Click by name for select one!";
self.sendPrivate = false;
}else if(self.sendPrivate && self.privateTo == "chat robot"){
self.error = "Select any other name!";
self.sendPrivate = false;
}
});
self.selectUser = function(login){
if(login == "chat robot"){self.error = "You cannot talk with robot!"; return;}
if(login == userPanel.user.login){self.error = "You cannot talk with yourself!"; return;}
self.privateTo = login;
self.sendPrivate = true;
}
self.sendMessage = function(command){
if(self.newMessage.length == 0){
self.error = "Please, enter message!";
return;
}
var message = {to: (self.sendPrivate ? self.privateTo : "all"), from: userPanel.user.login, text: self.newMessage, clientTime: new Date().getTime()};
Server.call("chatService", "dispatchMessage", message,
function(){self.newMessage = "";
//self.onChatMessage(message, true);
self.$digest();}, function(error){
self.error = error; self.$digest();}, command);
return true;
}
self.checkSend = function(event){
var code = event.keyCode || event.which;
if ((code === 13) && (event.shiftKey)) {
event.preventDefault();
self.sendMessage(sendCommand);
}
}
/** called from server */
self.onChatMessage = function (message, fromClient){
//message.isMy = message.from == userPanel.user.login;
message.isPrivate = (message.to != "all");
self.messages.push(message);
if(!fromClient){self.$digest();}
chatConsole.scrollTop = chatConsole.clientHeight + chatConsole.scrollHeight;
}
//Listeners.add("onConnect", function(){self.loadMessages();});
}