aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoTrafficNew.js
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoTrafficNew.js')
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoTrafficNew.js159
1 files changed, 159 insertions, 0 deletions
diff --git a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoTrafficNew.js b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoTrafficNew.js
new file mode 100644
index 00000000..cb4bc49a
--- /dev/null
+++ b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoTrafficNew.js
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/*
+ ONOS GUI -- Topology Traffic Overlay Module.
+ Defines behavior for viewing different traffic modes.
+ Installed as a Topology Overlay.
+ */
+(function () {
+ 'use strict';
+
+ // injected refs
+ var $log, tov, tts;
+
+ // NOTE: no internal state here -- see TopoTrafficService for that
+
+ // NOTE: providing button disabling requires too big a refactoring of
+ // the button factory etc. Will have to be done another time.
+
+
+ // traffic overlay definition
+ var overlay = {
+ overlayId: 'traffic',
+ glyphId: 'allTraffic',
+ tooltip: 'Traffic Overlay',
+
+ // NOTE: Traffic glyphs already installed as part of the base ONOS set.
+
+ activate: function () {
+ $log.debug("Traffic overlay ACTIVATED");
+ },
+
+ deactivate: function () {
+ tts.cancelTraffic(true);
+ $log.debug("Traffic overlay DEACTIVATED");
+ },
+
+ // detail panel button definitions
+ // (keys match button identifiers, also defined in TrafficOverlay.java)
+ buttons: {
+ showDeviceFlows: {
+ gid: 'flows',
+ tt: 'Show Device Flows',
+ cb: function (data) { tts.showDeviceLinkFlows(); }
+ },
+
+ showRelatedTraffic: {
+ gid: 'relatedIntents',
+ tt: 'Show Related Traffic',
+ cb: function (data) { tts.showRelatedIntents(); }
+ }
+ },
+
+ // 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: 'Cancel traffic monitoring',
+ gid: 'xMark'
+ },
+
+ A: {
+ cb: function () { tts.showAllFlowTraffic(); },
+ tt: 'Monitor all traffic using flow stats',
+ gid: 'allTraffic'
+ },
+ Q: {
+ cb: function () { tts.showAllPortTraffic(); },
+ tt: 'Monitor all traffic using port stats',
+ gid: 'allTraffic'
+ },
+ F: {
+ cb: function () { tts.showDeviceLinkFlows(); },
+ tt: 'Show device link flows',
+ gid: 'flows'
+ },
+ V: {
+ cb: function () { tts.showRelatedIntents(); },
+ tt: 'Show all related intents',
+ gid: 'relatedIntents'
+ },
+ leftArrow: {
+ cb: function () { tts.showPrevIntent(); },
+ tt: 'Show previous related intent',
+ gid: 'prevIntent'
+ },
+ rightArrow: {
+ cb: function () { tts.showNextIntent(); },
+ tt: 'Show next related intent',
+ gid: 'nextIntent'
+ },
+ W: {
+ cb: function () { tts.showSelectedIntentTraffic(); },
+ tt: 'Monitor traffic of selected intent',
+ gid: 'intentTraffic'
+ },
+
+ _keyOrder: [
+ '0', 'A', 'Q', 'F', 'V', 'leftArrow', 'rightArrow', 'W'
+ ]
+ },
+
+ 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();
+ },
+ single: function (data) {
+ 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);
+ }
+ }
+ };
+
+ // invoke code to register with the overlay service
+ angular.module('ovTopo')
+ .run(['$log', 'TopoOverlayService', 'TopoTrafficService',
+
+ function (_$log_, _tov_, _tts_) {
+ $log = _$log_;
+ tov = _tov_;
+ tts = _tts_;
+ tov.register(overlay);
+ }]);
+
+}());