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)) {