aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolai Tellefsen <niccofyren@gmail.com>2016-03-21 20:26:58 +0100
committerNicolai Tellefsen <niccofyren@gmail.com>2016-03-21 20:26:58 +0100
commitd528cad67897dd2c3b98ec15a82868ac2764e2c7 (patch)
treee22c00a1274e934352754e99b3cfce3619af2bf3
parent4eedfbd1a9cbb447690f86fece8b2ff5a5fc2626 (diff)
NMS: Tweak search highlight and hotkeys
-rw-r--r--web/nms.gathering.org/js/nms-info-box.js20
-rw-r--r--web/nms.gathering.org/js/nms-map.js26
-rw-r--r--web/nms.gathering.org/js/nms.js8
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 + "=";