[ONOS-3526]Web UI - Provide a 'Navigate to help page' link or button

Change-Id: I5260e625bb8890b31606dc31b43d4df84bd7eaf4
diff --git a/web/gui/src/main/webapp/app/fw/mast/mast.css b/web/gui/src/main/webapp/app/fw/mast/mast.css
index 4b8131e..3470f18 100644
--- a/web/gui/src/main/webapp/app/fw/mast/mast.css
+++ b/web/gui/src/main/webapp/app/fw/mast/mast.css
@@ -52,13 +52,18 @@
     line-height: 44px;
 }
 
-
 /*
     MAST HEAD DROPDOWN MENU
 */
 
+#mast-right div.ctrl-btns {
+    position: relative;
+    float: right;
+}
+
 #mast .dropdown-parent {
     position: relative;
+    float: right;
 }
 
 #mast .dropdown-parent i.dropdown-icon {
diff --git a/web/gui/src/main/webapp/app/fw/mast/mast.html b/web/gui/src/main/webapp/app/fw/mast/mast.html
index ddcc048..592f0c8 100644
--- a/web/gui/src/main/webapp/app/fw/mast/mast.html
+++ b/web/gui/src/main/webapp/app/fw/mast/mast.html
@@ -3,15 +3,19 @@
      ng-click="mastCtrl.toggleNav()"></div>
 <img class="logo" src="data/img/masthead-logo-mojo.png">
 <div id="mast-right">
-
     <nav>
         <div class="dropdown-parent">
             <a class="clickable user-menu__name">{{user}} <i class="dropdown-icon"></i></a>
-
             <div class="dropdown">
                 <a href="rs/logout">logout</a>
             </div>
         </div>
+        <div class="ctrl-btns">
+            <div class="active clickable"
+                 icon icon-size="42" icon-id="query"
+                 tooltip tt-msg="helpTip"
+                 ng-click="directTo()"></div>
+        </div>
     </nav>
 
 </div>
diff --git a/web/gui/src/main/webapp/app/fw/mast/mast.js b/web/gui/src/main/webapp/app/fw/mast/mast.js
index d43987d..4d8b5fa 100644
--- a/web/gui/src/main/webapp/app/fw/mast/mast.js
+++ b/web/gui/src/main/webapp/app/fw/mast/mast.js
@@ -33,10 +33,10 @@
 
     angular.module('onosMast', ['onosNav'])
         .controller('MastCtrl',
-        ['$log', '$scope', '$window', 'WebSocketService', 'NavService',
+        ['$log', '$scope', '$location', '$window', 'WebSocketService', 'NavService',
             'DialogService',
 
-        function ($log, $scope, $window, wss, ns, ds) {
+        function ($log, $scope, $location, $window, wss, ns, ds) {
             var self = this;
 
             function triggerRefresh(action) {
@@ -86,6 +86,14 @@
 
             // onosAuth is a global set via the index.html generated source
             $scope.user = onosAuth || '(no one)';
+            $scope.helpTip = 'Show help page for current view';
+
+            $scope.directTo = function () {
+                var curId = $location.path().replace('/', ''),
+                    viewMap = $scope.onos['viewMap'],
+                    helpUrl = viewMap[curId];
+                $window.open(helpUrl);
+            };
 
             $log.log('MastCtrl has been created');
         }])
diff --git a/web/gui/src/main/webapp/app/fw/svg/icon.js b/web/gui/src/main/webapp/app/fw/svg/icon.js
index 91b9aee..a24542f 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.js
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.js
@@ -42,6 +42,7 @@
         topo: 'topo',
 
         refresh: 'refresh',
+        query: 'query',
         garbage: 'garbage',
 
         upArrow: 'triangleUp',
diff --git a/web/gui/src/main/webapp/onos.js b/web/gui/src/main/webapp/onos.js
index fc4683d..2e62744 100644
--- a/web/gui/src/main/webapp/onos.js
+++ b/web/gui/src/main/webapp/onos.js
@@ -35,13 +35,12 @@
         'onosWidget'
     ];
 
-    // view IDs.. injected via the servlet
-    var viewIds = [
-        // {INJECTED-VIEW-IDS-START}
-        // {INJECTED-VIEW-IDS-END}
-        // dummy entry
-        ''
-    ];
+    // view ID to help page url map.. injected via the servlet
+    var viewMap = {
+        // {INJECTED-VIEW-DATA-START}
+        // {INJECTED-VIEW-DATA-END}
+    },
+    viewIds = [];
 
     // secret sauce
     var sauce = [
@@ -63,6 +62,8 @@
     var defaultView = 'topo',
         viewDependencies = [];
 
+    viewIds = d3.map(viewMap).keys();
+
     viewIds.forEach(function (id) {
         if (id) {
             viewDependencies.push('ov' + cap(id));
@@ -102,6 +103,7 @@
 
                 // shared object inherited by all views:
                 $scope.onos = {};
+                $scope.onos['viewMap'] = viewMap;
 
                 // initialize services...
                 ts.init();