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');