|
@@ -460,25 +460,62 @@ function executeCommand(command, params){
|
|
|
|
|
|
function sendMessage() {
|
|
|
var message = $("#chat-input").val();
|
|
|
- if (message.length > 0 && message[0] !== " ") {
|
|
|
- if (message[0] === "/") {
|
|
|
- message = message.split("");
|
|
|
- message.shift();
|
|
|
- message = message.join("");
|
|
|
- var params = message.split(" ");
|
|
|
- var command = params.shift();
|
|
|
- command = command.replace(/\r?\n|\r/g, "");
|
|
|
- if (executeCommand(command, params)) {
|
|
|
- $("#chat-input").val("");
|
|
|
+ if (!$("#chat-input").hasClass("disabled")) {
|
|
|
+ if (message.length > 0 && message[0] !== " ") {
|
|
|
+ if (message[0] === "/") {
|
|
|
+ message = message.split("");
|
|
|
+ message.shift();
|
|
|
+ message = message.join("");
|
|
|
+ var params = message.split(" ");
|
|
|
+ var command = params.shift();
|
|
|
+ command = command.replace(/\r?\n|\r/g, "");
|
|
|
+ if (executeCommand(command, params)) {
|
|
|
+ $("#chat-input").val("");
|
|
|
+ } else {
|
|
|
+ $("#chat-input").val("");
|
|
|
+ }
|
|
|
} else {
|
|
|
- $("#chat-input").val("");
|
|
|
+ $("#chat-input").addClass("disabled");
|
|
|
+ $("#chat-input").attr("disabled", "");
|
|
|
+ Meteor.call("sendMessage", Session.get("type"), message, function (err, res) {
|
|
|
+ if (res) {
|
|
|
+ $("#chat-input").val("");
|
|
|
+ }
|
|
|
+ $("#chat-input").removeAttr("disabled");
|
|
|
+ $("#chat-input").removeClass("disabled");
|
|
|
+ });
|
|
|
}
|
|
|
- } else {
|
|
|
- Meteor.call("sendMessage", Session.get("type"), message, function (err, res) {
|
|
|
- if (res) {
|
|
|
- $("#chat-input").val("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function sendMessageGlobal() {
|
|
|
+ var message = $("#global-chat-input").val();
|
|
|
+ if (!$("#global-chat-input").hasClass("disabled")) {
|
|
|
+ if (message.length > 0 && message[0] !== " ") {
|
|
|
+ if (message[0] === "/") {
|
|
|
+ message = message.split("");
|
|
|
+ message.shift();
|
|
|
+ message = message.join("");
|
|
|
+ var params = message.split(" ");
|
|
|
+ var command = params.shift();
|
|
|
+ command = command.replace(/\r?\n|\r/g, "");
|
|
|
+ if (executeCommand(command, params)) {
|
|
|
+ $("#global-chat-input").val("");
|
|
|
+ } else {
|
|
|
+ $("#global-chat-input").val("");
|
|
|
}
|
|
|
- });
|
|
|
+ } else {
|
|
|
+ $("#global-chat-input").addClass("disabled");
|
|
|
+ $("#global-chat-input").attr("disabled", "");
|
|
|
+ Meteor.call("sendMessage", "global", message, function (err, res) {
|
|
|
+ if (res) {
|
|
|
+ $("#global-chat-input").val("");
|
|
|
+ }
|
|
|
+ $("#global-chat-input").removeClass("disabled");
|
|
|
+ $("#global-chat-input").removeAttr("disabled");
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -487,6 +524,9 @@ Template.room.events({
|
|
|
"click #chat-tab": function() {
|
|
|
$("#chat-tab").removeClass("unread-messages");
|
|
|
},
|
|
|
+ "click #global-chat-tab": function() {
|
|
|
+ $("#global-chat-tab").removeClass("unread-messages");
|
|
|
+ },
|
|
|
"click #sync": function() {
|
|
|
if (Session.get("currentSong") !== undefined) {
|
|
|
var room = Rooms.findOne({type: Session.get("type")});
|
|
@@ -510,13 +550,18 @@ Template.room.events({
|
|
|
},
|
|
|
"click #side-panel": function(e) {
|
|
|
Meteor.setTimeout(function() {
|
|
|
- var elem = document.getElementById('chat');
|
|
|
- elem.scrollTop = elem.scrollHeight;
|
|
|
+ var elem = document.getElementById('chat');
|
|
|
+ var elem1 = document.getElementById('global-chat');
|
|
|
+ elem.scrollTop = elem.scrollHeight;
|
|
|
+ elem1.scrollTop = elem1.scrollHeight;
|
|
|
}, 1);
|
|
|
},
|
|
|
"click #submit": function() {
|
|
|
sendMessage();
|
|
|
},
|
|
|
+ "click #global-submit": function() {
|
|
|
+ sendMessageGlobal();
|
|
|
+ },
|
|
|
"keyup #chat-input": function(e) {
|
|
|
if (e.type === "keyup" && e.which === 13) {
|
|
|
e.preventDefault();
|
|
@@ -525,6 +570,19 @@ Template.room.events({
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ "keyup #global-chat-input": function(e) {
|
|
|
+ console.log("Tesr!");
|
|
|
+ console.log(e.which);
|
|
|
+ console.log(typeof e.which);
|
|
|
+ console.log(e.type);
|
|
|
+ console.log(typeof e.type);
|
|
|
+ if (e.type === "keyup" && e.which === 13) {
|
|
|
+ e.preventDefault();
|
|
|
+ if (!$('#global-chat-input').data('dropdownshown')) {
|
|
|
+ sendMessageGlobal();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
"click #like": function(e) {
|
|
|
$("#like").blur();
|
|
|
Meteor.call("likeSong", Session.get("currentSong").mid);
|
|
@@ -851,6 +909,15 @@ Template.room.helpers({
|
|
|
}, 100);
|
|
|
return Chat.find({type: Session.get("type")}, {sort: {time: -1}, limit: 50 }).fetch().reverse();
|
|
|
},
|
|
|
+ globalChat: function() {
|
|
|
+ Meteor.setTimeout(function() {
|
|
|
+ var elem = document.getElementById('global-chat');
|
|
|
+ if (elem !== undefined && elem !== null) {
|
|
|
+ elem.scrollTop = elem.scrollHeight;
|
|
|
+ }
|
|
|
+ }, 100);
|
|
|
+ return Chat.find({type: "global"}, {sort: {time: -1}, limit: 50 }).fetch().reverse();
|
|
|
+ },
|
|
|
likes: function() {
|
|
|
var playlist = Playlists.findOne({type: Session.get("type")});
|
|
|
var likes = 0;
|
|
@@ -1666,9 +1733,15 @@ Template.playlist.events({
|
|
|
Meteor.subscribe("rooms");
|
|
|
|
|
|
Template.room.onCreated(function () {
|
|
|
- Chat.after.find(function() {
|
|
|
- if (!$("#chat-tab").hasClass("active")) {
|
|
|
- $("#chat-tab").addClass("unread-messages");
|
|
|
+ Chat.after.find(function(userId, selector) {
|
|
|
+ if (selector.type === "global") {
|
|
|
+ if (!$("#global-chat-tab").hasClass("active")) {
|
|
|
+ $("#global-chat-tab").addClass("unread-messages");
|
|
|
+ }
|
|
|
+ } else if(selector.type === Session.get("type")) {
|
|
|
+ if (!$("#chat-tab").hasClass("active")) {
|
|
|
+ $("#chat-tab").addClass("unread-messages");
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
Session.set("reportSong", false);
|