diff options
author | Nicolai Tellefsen <niccofyren@gmail.com> | 2016-03-21 20:26:58 +0100 |
---|---|---|
committer | Nicolai Tellefsen <niccofyren@gmail.com> | 2016-03-21 20:26:58 +0100 |
commit | d528cad67897dd2c3b98ec15a82868ac2764e2c7 (patch) | |
tree | e22c00a1274e934352754e99b3cfce3619af2bf3 | |
parent | 4eedfbd1a9cbb447690f86fece8b2ff5a5fc2626 (diff) |
NMS: Tweak search highlight and hotkeys
-rw-r--r-- | web/nms.gathering.org/js/nms-info-box.js | 20 | ||||
-rw-r--r-- | web/nms.gathering.org/js/nms-map.js | 26 | ||||
-rw-r--r-- | web/nms.gathering.org/js/nms.js | 8 |
3 files changed, 40 insertions, 14 deletions
diff --git a/web/nms.gathering.org/js/nms-info-box.js b/web/nms.gathering.org/js/nms-info-box.js index 5f16ec2..8527a03 100644 --- a/web/nms.gathering.org/js/nms-info-box.js +++ b/web/nms.gathering.org/js/nms-info-box.js @@ -436,6 +436,7 @@ nmsInfoBox._search = function() { id = el.value; } if(id) { + nmsMap.enableHighlights(); for(var sw in nmsData.switches.switches) { if (id[0] == "/") { if (nmsInfoBox._searchSmart(id.slice(1),sw)) { @@ -454,23 +455,30 @@ nmsInfoBox._search = function() { } } } else { - nmsMap.removeAllSwitchHighlights(); + nmsMap.disableHighlights(); } if(matches.length == 1) { document.getElementById("searchbox-submit").classList.add("btn-primary"); document.getElementById("searchbox").dataset.match = matches[0]; - document.getElementById("searchbox").addEventListener("keydown",nmsInfoBox._searchKeyListener,false); } else { document.getElementById("searchbox-submit").classList.remove("btn-primary"); document.getElementById("searchbox").dataset.match = ''; - document.getElementById("searchbox").removeEventListener("keydown",nmsInfoBox._searchKeyListener,false); } } nmsInfoBox._searchKeyListener = function(e) { - if(e.keyCode == 13) { - var sw = document.getElementById("searchbox").dataset.match; - nmsInfoBox.showWindow("switchInfo",sw); + switch (e.keyCode) { + case 13: + var sw = document.getElementById("searchbox").dataset.match; + if(sw != '') + nmsInfoBox.showWindow("switchInfo",sw); + break; + case 27: + document.getElementById("searchbox").dataset.match = ''; + document.getElementById("searchbox").value = ''; + nmsInfoBox._search(); + nmsInfoBox.hide(); + break; } } diff --git a/web/nms.gathering.org/js/nms-map.js b/web/nms.gathering.org/js/nms-map.js index b74626a..11ee142 100644 --- a/web/nms.gathering.org/js/nms-map.js +++ b/web/nms.gathering.org/js/nms-map.js @@ -10,7 +10,8 @@ * nmsMap.setSwitchColor(switch,color) * nmsMap.setSwitchInfo(switch,info) * nmsMap.setSwitchHighlight(switch,true/false) - * nmsMap.removeAllSwitchHighlights() + * nmsMap.enableHighlights() + * nmsMap.disableHighlights() */ @@ -47,6 +48,7 @@ var nmsMap = nmsMap || { _color: { }, _highlight: { }, + _highlightActive: false, _c: {} } @@ -76,15 +78,19 @@ nmsMap.setSwitchHighlight = function(sw, highlight) { if(highlight) highlight == true; if (this._highlight[sw] != highlight) { - this._highlight[sw] = highlight; - this._drawSwitch(sw); this.stats.highlightChange++; + this._highlight[sw] = highlight; } + this._drawSwitch(sw); } -nmsMap.removeAllSwitchHighlights = function() { - for(var sw in this._highlight) - this.setSwitchHighlight(sw,false); +nmsMap.enableHighlights = function() { + this._highlightActive = true; +} + +nmsMap.disableHighlights = function() { + this._highlightActive = false; + this._drawAllSwitches(); } nmsMap.reset = function() { @@ -247,8 +253,12 @@ nmsMap._drawSwitch = function(sw) return; var box = this._getBox(sw); var color = nmsMap._color[sw]; - if(nmsMap._highlight[sw]) { - color = red; + if(this._highlightActive) { + if(nmsMap._highlight[sw]) { + color = green; + } else { + color = white; + } } if (color == undefined) { color = blue; diff --git a/web/nms.gathering.org/js/nms.js b/web/nms.gathering.org/js/nms.js index fd445d1..411fd1c 100644 --- a/web/nms.gathering.org/js/nms.js +++ b/web/nms.gathering.org/js/nms.js @@ -486,6 +486,7 @@ function initNMS() { detectHandler(); nms.playback.play(); setupKeyhandler(); + setupSearchKeyHandler(); } function detectHandler() { @@ -613,6 +614,13 @@ function setupKeyhandler() }); } +function setupSearchKeyHandler() +{ + $("#searchbox").keyup(function(e) { + nmsInfoBox._searchKeyListener(e); + }); +} + function getCookie(cname) { var name = cname + "="; |