diff --git a/apps/onlp-demo/src/main/resources/app/view/odTopov/odTopovOverlay.js b/apps/onlp-demo/src/main/resources/app/view/odTopov/odTopovOverlay.js index 682ea17476..a8da7af971 100644 --- a/apps/onlp-demo/src/main/resources/app/view/odTopov/odTopovOverlay.js +++ b/apps/onlp-demo/src/main/resources/app/view/odTopov/odTopovOverlay.js @@ -7,7 +7,12 @@ 'use strict'; // injected refs - var $log, tov, ns, lts, sel; + var $log, tov, ns, tts, lts, sel; + + // function to be replaced by the localization bundle function + var topoLion = function (x) { + return '#ttrafov#' + x + '#'; + }; // our overlay definition var overlay = { @@ -32,27 +37,90 @@ $log.debug('ONLP action invoked on selection:', sel); ns.navTo('onlp', { devId: sel.id }); } - } + }, + showDeviceFlows: { + gid: 'm_flows', + tt: function () { return topoLion('tr_btn_show_device_flows'); }, + cb: function (data) { tts.showDeviceLinkFlows(); }, + }, + }, + + // key bindings for traffic overlay toolbar buttons + // NOTE: fully qual. button ID is derived from overlay-id and key-name + keyBindings: { + 0: { + cb: function () { tts.cancelTraffic(true); }, + tt: function () { return topoLion('tr_btn_cancel_monitoring'); }, + gid: 'm_xMark', + }, + + A: { + cb: function () { tts.showAllTraffic(); }, + tt: function () { return topoLion('tr_btn_monitor_all'); }, + gid: 'm_allTraffic', + }, + F: { + cb: function () { tts.showDeviceLinkFlows(); }, + tt: function () { return topoLion('tr_btn_show_dev_link_flows'); }, + gid: 'm_flows', + }, + + _keyOrder: [ + '0', 'A', 'F', + ], }, hooks: { + // hook for handling escape key + escape: function () { + // Must return true to consume ESC, false otherwise. + return tts.cancelTraffic(true); + }, + + // hooks for when the selection changes... + empty: function () { + tts.cancelTraffic(); + }, // hooks for when the selection changes... single: function (data) { $log.debug('selection data:', data); sel = data; tov.addDetailButton('showOnlpView'); - } - } + tov.addDetailButton('showDeviceFlows'); + tts.requestTrafficForMode(); + }, + multi: function (selectOrder) { + tts.requestTrafficForMode(); + tov.addDetailButton('showRelatedTraffic'); + }, + + // mouse hooks + mouseover: function (m) { + // m has id, class, and type properties + tts.requestTrafficForMode(true); + }, + mouseout: function () { + tts.requestTrafficForMode(true); + }, + + // localization bundle injection hook + injectLion: function (bundle) { + topoLion = bundle; + tts.setLionBundle(bundle); + }, + }, }; // invoke code to register with the overlay service angular.module('ovOdTopov') - .run(['$log', 'TopoOverlayService', 'NavService', 'OnlpDemoTopovService', + .run(['$log', 'TopoOverlayService', 'NavService', 'TopoTrafficService', + 'OnlpDemoTopovService', - function (_$log_, _tov_, _ns_, _lts_) { + function (_$log_, _tov_, _ns_, _tts_, _lts_) { $log = _$log_; tov = _tov_; ns = _ns_; + tts = _tts_; lts = _lts_; tov.register(overlay); }]);