From 31fd011b4de19da481666b2c9c2a2d215b02b13b Mon Sep 17 00:00:00 2001 From: calzoneman Date: Sat, 30 Mar 2013 00:49:41 -0500 Subject: [PATCH] Blink tab title when your name mentioned --- www/assets/js/callbacks.js | 1 + www/assets/js/client.js | 11 +++++++++++ www/assets/js/functions.js | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/www/assets/js/callbacks.js b/www/assets/js/callbacks.js index c1080b4d..5ee9b006 100644 --- a/www/assets/js/callbacks.js +++ b/www/assets/js/callbacks.js @@ -68,6 +68,7 @@ function initCallbacks() { $("#opt_qopen_allow_playnext").prop("checked", opts.qopen_allow_playnext); $("#opt_pagetitle").attr("placeholder", opts.pagetitle); document.title = opts.pagetitle; + PAGETITLE = opts.pagetitle; $("#opt_customcss").attr("placeholder", opts.customcss); $("#customCss").remove(); if(opts.customcss != "") { diff --git a/www/assets/js/client.js b/www/assets/js/client.js index df7d13a5..43dd4802 100644 --- a/www/assets/js/client.js +++ b/www/assets/js/client.js @@ -21,6 +21,9 @@ var GRABBEDLI = null; var OLDINDEX = -1; var CHATHIST = []; var CHATHISTIDX = 0; +var FOCUSED = true; +var PAGETITLE = "Sync"; +var TITLE_BLINK; var uname = readCookie("sync_uname"); var pw = readCookie("sync_pw"); @@ -35,6 +38,14 @@ var Rank = { var socket = io.connect(IO_URL); initCallbacks(); +$(window).focus(function() { + FOCUSED = true; + onWindowFocus(); +}) +.blur(function() { + FOCUSED = false +}); + var params = {}; if(window.location.search) { var parameters = window.location.search.substring(1).split("&"); diff --git a/www/assets/js/functions.js b/www/assets/js/functions.js index f75e338e..0bfd1309 100644 --- a/www/assets/js/functions.js +++ b/www/assets/js/functions.js @@ -128,8 +128,17 @@ function addUserDropdown(entry, name) { function formatChatMessage(data) { var div = document.createElement("div"); - if(data.msg.indexOf(uname) != -1) + if(data.msg.toUpperCase().indexOf(uname.toUpperCase()) != -1) { $(div).addClass("nick-highlight"); + if(!FOCUSED) { + TITLE_BLINK = setInterval(function() { + if(document.title == "*Chat*") + document.title = PAGETITLE; + else + document.title = "*Chat*"; + }, 1000); + } + } if(data.msgclass == "action") { var message = document.createElement("span"); $(message).addClass("action"); @@ -708,3 +717,8 @@ function handleRankChange() { } } } + +function onWindowFocus() { + clearInterval(TITLE_BLINK); + document.title = PAGETITLE; +}