GUI -- Adding Key Bindings cheat sheet... WIP.

Change-Id: Idf5ea6d405d9a5dfb83f43c0a4da458727bd9ab4
diff --git a/web/gui/src/main/webapp/onos2.js b/web/gui/src/main/webapp/onos2.js
index 384c64c..ae7119e 100644
--- a/web/gui/src/main/webapp/onos2.js
+++ b/web/gui/src/main/webapp/onos2.js
@@ -93,6 +93,7 @@
                 case 40: return 'downArrow';
                 case 91: return 'cmdLeft';
                 case 93: return 'cmdRight';
+                case 191: return 'slash';
                 default:
                     if ((code >= 48 && code <= 57) ||
                         (code >= 65 && code <= 90)) {
@@ -268,6 +269,11 @@
             return $.isFunction(f) ? f : null;
         }
 
+        // returns the reference if it is an array, null otherwise
+        function isA(a) {
+            return $.isArray(a) ? a : null;
+        }
+
         // ..........................................................
         // View life-cycle functions
 
@@ -407,17 +413,27 @@
 
         function setupGlobalKeys() {
             keyHandler.globalKeys = {
+                slash: keyMap,
                 esc: escapeKey,
                 T: toggleTheme
             };
             // Masked keys are global key handlers that always return true.
             // That is, the view will never see the event for that key.
             keyHandler.maskedKeys = {
+                slash: true,
                 T: true
             };
         }
 
+        function keyMap(view, key, code, ev) {
+            libApi.keymap.show(keyHandler);
+            return true;
+        }
+
         function escapeKey(view, key, code, ev) {
+            if (libApi.keymap.hide()) {
+                return true;
+            }
             if (alerts.open) {
                 closeAlerts();
                 return true;
@@ -461,7 +477,8 @@
                 keyCode = event.keyCode,
                 key = whatKey(keyCode),
                 gcb = isF(keyHandler.globalKeys[key]),
-                vcb = isF(keyHandler.viewKeys[key]) || isF(keyHandler.viewFn);
+                vk = keyHandler.viewKeys[key],
+                vcb = isF(vk) || (isA(vk) && isF(vk[0])) || isF(keyHandler.viewFn);
 
             // global callback?
             if (gcb && gcb(current.view.token(), key, keyCode, event)) {