From 76d7572622896b7d1377848889f1a41ba3e1667a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCbschle-Schneider?= Date: Sat, 19 Apr 2014 15:47:33 +0200 Subject: [PATCH] Highlight user when clicking their nick --- index.html | 2 +- js/glowingbear.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index e24e8a7..94ff757 100644 --- a/index.html +++ b/index.html @@ -243,7 +243,7 @@ $ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out rel : - +
diff --git a/js/glowingbear.js b/js/glowingbear.js index 0401427..197896a 100644 --- a/js/glowingbear.js +++ b/js/glowingbear.js @@ -838,6 +838,41 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', } }; + $scope.highlightNick = function(prefix) { + // Extract nick from bufferline prefix + var nick = prefix[prefix.length - 1].text; + + var input = document.getElementById('sendMessage'); + var newValue = input.value; + var addColon = newValue.length === 0; + if (newValue.length > 0) { + // Try to determine if it's a sequence of nicks + if (newValue.charAt(newValue.length - 1) === ':') { + // get last word + var lastSpace = newValue.lastIndexOf(' ') + 1; + var lastWord = newValue.slice(lastSpace, newValue.length - 1).trim(); + var nicklist = models.getActiveBuffer().flatNicklist(); + // check against nicklist to see if it's a list of highlights + if (nicklist.indexOf(lastWord) !== -1) { + // It's another highlight! + newValue = newValue.slice(0, newValue.length - 1) + ' '; + addColon = true; + } + } + + // Add a space before the nick if there isn't one already + // Last char might have changed above, so re-check + if (newValue.charAt(newValue.length - 1) !== ' ') { + newValue += ' '; + } + } + // Add highlight to nicklist + newValue += nick; + if (addColon) { + newValue += ':'; + } + input.value = newValue; + }; // Calculate number of lines to fetch $scope.calculateNumLines = function() {