diff --git a/index.php b/index.php
index 02d4c9f2..2e22680e 100755
--- a/index.php
+++ b/index.php
@@ -144,6 +144,16 @@
diff --git a/server/server.js b/server/server.js
index 0ed23b52..14dd3a49 100755
--- a/server/server.js
+++ b/server/server.js
@@ -42,6 +42,13 @@ io.on('connection', function(socket){
io.sockets.emit('chat,'+coll, rndName(guid) + ": " + data);
});
+ socket.on("all,chat", function(data)
+ {
+ check_inlist(coll, guid, socket);
+ if(data != "" && data !== undefined && data !== null && data.length < 151 && data.replace(/\s/g, '').length)
+ io.sockets.emit('chat.all', rndName(guid) + ": " + data);
+ });
+
socket.on('frontpage_lists', function()
{
var playlists_to_send = [];
diff --git a/static/css/style.css b/static/css/style.css
index dcaf3c0a..908c676d 100755
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -192,9 +192,28 @@ hide mdi-action-visibility mdi-action-visibility-off
/*------------------- Channel page ---------------------------------------------------------------------------- */
+.tab a {
+ background-color:rgba(0,0,0,0) !important;
+}
+
+.chat-tab, .chat-tab-li {
+ color:black !important;
+ margin:0 !important;
+}
+
+.indicator {
+ background-color:black !important;
+}
+
+#chatchannel, #chatall {
+ height: calc(100% - 49px);
+ overflow-y:scroll;
+ text-align:left;
+ word-wrap:break-word;
+}
+
#chat {
height: calc(100% - 121px);
- overflow-y: scroll;
text-align:left;
word-wrap:break-word;
}
diff --git a/static/js/chat.js b/static/js/chat.js
index fcc75d66..94c57385 100644
--- a/static/js/chat.js
+++ b/static/js/chat.js
@@ -1,11 +1,15 @@
var blink_interval;
var blink_interval_exists = false;
+var unseen = false;
function chat(data)
{
if(data.value.length > 150)
return;
- socket.emit("chat", data.value);
+ if($(".tab a.active").attr("href") == "#all_chat")
+ socket.emit("all,chat", data.value);
+ else
+ socket.emit("chat", data.value);
data.value = "";
return;
}
@@ -17,9 +21,46 @@ document.getElementById("chat-btn").addEventListener("click", function(){
$("#chat-btn i").css("opacity", 1);
clearInterval(blink_interval);
blink_interval_exists = false;
+ unseen = false;
$("#favicon").attr("href", "static/images/favicon.png");
});
+$(".chat-tab").click(function(){
+ $("#text-chat-input").focus();
+});
+
+socket.on("chat.all", function(data)
+{
+ if($("#chat-bar").position()["left"] != 0)
+ {
+ //$("#chat-btn").css("color", "grey");
+ if(!blink_interval_exists)
+ {
+ $("#favicon").attr("href", "static/images/highlogo.png");
+ blink_interval_exists = true;
+ unseen = true;
+ blink_interval = setInterval(chat_blink, 2000);
+ }
+ }else if(document.hidden)
+ {
+ $("#favicon").attr("href", "static/images/highlogo.png");
+ unseen = true;
+ }
+ var color = intToARGB(hashCode(data.substring(0,8))).substring(0,6);
+ $("#chatall").append(""+data.substring(0,8)+"");
+ var in_text = document.createTextNode(data.substring(8));
+ $("#chatall li:last")[0].appendChild(in_text);
+ document.getElementById("chatall").scrollTop = document.getElementById("chatall").scrollHeight
+});
+
+$(window).focus(function(){
+ if(unseen)
+ {
+ $("#favicon").attr("href", "static/images/favicon.png");
+ unseen = false;
+ }
+});
+
socket.on("chat,"+chan.toLowerCase(), function(data)
{
if($("#chat-bar").position()["left"] != 0)
@@ -33,10 +74,10 @@ socket.on("chat,"+chan.toLowerCase(), function(data)
}
}
var color = intToARGB(hashCode(data.substring(0,8))).substring(0,6);
- $("#chat").append(""+data.substring(0,8)+"");
+ $("#chatchannel").append(""+data.substring(0,8)+"");
var in_text = document.createTextNode(data.substring(8));
- $("#chat li:last")[0].appendChild(in_text);
- document.getElementById("chat").scrollTop = document.getElementById("chat").scrollHeight
+ $("#chatchannel li:last")[0].appendChild(in_text);
+ document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight
});
function chat_blink()
diff --git a/static/js/youtube.js b/static/js/youtube.js
index 201fb8b1..0f9db801 100755
--- a/static/js/youtube.js
+++ b/static/js/youtube.js
@@ -83,7 +83,7 @@ $(document).ready(function()
$("#chat-btn").sideNav({
menuWidth: 272, // Default is 240
edge: 'left', // Choose the horizontal origin
- closeOnClick: true // Closes side-nav on clicks, useful for Angular/Meteor
+ closeOnClick: false // Closes side-nav on clicks, useful for Angular/Meteor
});
$('#settings-close').sideNav('hide');