From 00f57cfe2f323c4cc30d5d87486eaa5bcc56bd1a Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 16 Sep 2016 01:43:17 +0200 Subject: [PATCH] Added sender colors and fixed a tiny bug --- res/search.css | 2 +- res/search.js | 68 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/res/search.css b/res/search.css index 636a0d8..bcbb152 100644 --- a/res/search.css +++ b/res/search.css @@ -68,7 +68,7 @@ message sender { } message time { - width: 148px; + width: 180px; display: inline-block; padding: 0 24px; text-align: right; diff --git a/res/search.js b/res/search.js index 46c0db2..2416f74 100644 --- a/res/search.js +++ b/res/search.js @@ -22,7 +22,7 @@ var wrap_click_handler = function (fun) { var sel = getSelection().toString(); if (sel) { event.stopPropagation(); - } else { + } else if (fun) { fun(event); } } @@ -61,7 +61,68 @@ $("#q").blur(function () { }); var sendercolor = function (nick) { - return ""; + var sendercolors = [ + "#e90d7f", + "#8e55e9", + "#b30e0e", + "#17b339", + "#58afb3", + "#9d54b3", + "#b39775", + "#3176b3", + "#e90d7f", + "#8e55e9", + "#b30e0e", + "#17b339", + "#58afb3", + "#9d54b3", + "#b39775", + "#3176b3" + ]; + + var reflect = function(crc, n) { + var j = 1, crcout = 0; + for (var i = (1 << (n - 1)); i > 0; i >>= 1) { + if ((crc & i) > 0) { + crcout |= j; + } + j <<= 1; + } + return crcout; + }; + + var qChecksum = function(str) { + var crc = 0xffff; + var crcHighBitMask = 0x8000; + + for (var i = 0; i < str.length; i++) { + var b = str.codePointAt(i); + var c = reflect(b, 8); + for (var j = 0x80; j > 0; j >>= 1) { + var highBit = crc & crcHighBitMask; + crc <<= 1; + if ((c & j) > 0) { + highBit ^= crcHighBitMask; + } + if (highBit > 0) { + crc ^= 0x1021; + } + } + } + + crc = reflect(crc, 16); + crc ^= 0xffff; + crc &= 0xffff; + + return crc; + }; + + var senderIndex = function (str) { + var nickToHash = nick.replace(/_*$/, "").toLowerCase(); + return qChecksum(str) & 0xF; + }; + + return sendercolors[senderIndex(nick)]; }; var render_buffer_full = function (buffer) { @@ -164,7 +225,8 @@ var attach_context = function (elem) { elem.unbind(); var id = elem.data("contextid"); var bufferid = elem.data("bufferid"); - elem.click(wrap_click_handler(make_toggle_context(bufferid, id))); + elem.click(wrap_click_handler(function (e) {e.stopPropagation(); })); + $("#message"+buffers[bufferid].contexts[id].original.messageid).click(wrap_click_handler(make_toggle_context(bufferid, id))); elem.find(".load_before").click(wrap_click_handler(function (e) { earlier(bufferid, id, 5); e.stopPropagation(); -- GitLab