table on topology views add and start router controller
[VSoRC/.git] / js / topology / cards.js
diff --git a/js/topology/cards.js b/js/topology/cards.js
new file mode 100644 (file)
index 0000000..04c0606
--- /dev/null
@@ -0,0 +1,101 @@
+// Copyright (c) 2018 Maen Artimy\r
+// \r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+// \r
+//   http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+\r
+\r
+var BAR_IDX = 1;\r
+var CONTAINER_IDX = 2;\r
+\r
+var cardControl = ( function() {\r
+       console.log("cardControl");\r
+       var expand = function(e) {\r
+               var size = e.parentElement.parentElement.parentElement.style.width;\r
+               if(size==='96%') { // first value of size is ""\r
+                       e.parentElement.parentElement.parentElement.style.width = '45%';\r
+               } else {\r
+                       e.parentElement.parentElement.parentElement.style.width = '96%';\r
+               }\r
+               //e.classList.toggle("active");\r
+       };\r
+\r
+       var collapse = function(e) {\r
+               var c = e.parentElement.parentElement.parentElement.childNodes.item(CONTAINER_IDX);\r
+               var disp = c.style.display;\r
+               if(disp == "none") {\r
+                       c.style.display = "block"\r
+               } else {\r
+                       c.style.display = "none";\r
+               }\r
+       };\r
+\r
+       return {\r
+               expand: expand,\r
+               collapse: collapse\r
+       }\r
+})();\r
+\r
+// Generate cards dynamicly based on the template given by local 'html' variable\r
+// and data from the 'views' list. Cards are added to the 'parent' element\r
+// passed as argument.\r
+var generateCards = ( function() {\r
+       console.log("generateCards");\r
+       var html =      "<div class=\"header\"><h1>{Title}</h1> \\r
+                       <div class=\"topnav\"><a href=\"javascript:void(0)\" onclick=\"cardControl.collapse(this)\">&#8722;</a> \\r
+                       <a href=\"javascript:void(0)\" onclick=\"cardControl.expand(this)\">&#8596;</a> \\r
+                       </div></div><div class=\"bar\"></div><div class=\"container\"><p>No data to display...</p> \\r
+                       </div><div class=\"footing\"></div>";\r
+\r
+       // <a href=\"#refresh\">&#8634;</a>\r
+\r
+       var run = function(views, parent) {\r
+               console.log("generateCards.run");\r
+               var doc = document.getElementById(parent);\r
+               doc.innerHTML = "";\r
+               for (var idx in views) {\r
+                       var d = document.createElement("div");\r
+                       d.id = views[idx].id;\r
+                       d.classList.add("card");\r
+                       var card = html.replace("{Title}", views[idx].dsc);\r
+                       d.innerHTML = card;\r
+                       doc.appendChild(d);\r
+               }\r
+       };\r
+\r
+       /*var loadModules = function(views) {\r
+               for (var idx in views) {\r
+                       if(views[idx].call) {\r
+                               var card = document.getElementById(views[idx].id);\r
+                               var container = card.childNodes.item(CONTAINER_IDX)\r
+\r
+                               var myModule = new BaseModule(views[idx].cmd);\r
+                               myModule.callback = views[idx].call;\r
+                               myModule.run(container);\r
+                       }\r
+               }\r
+       };*/\r
+\r
+       return {\r
+               run: run\r
+       }\r
+})();\r
+\r
+var views = [\r
+{id:"mSwitch", cmd:"/listswitch", dsc:"Open V Switch ID(s)", call:dpList, ref:true},\r
+{id:"mTableStats", cmd:"/tablestatus?tablestat=<dpid>", dsc:"Table stats", call:dpTable, ref:true},\r
+{id:"mPortDesc", cmd:"/portsdesc?portdesc=<dpid>", dsc:"Port Desc", call:dpTable, ref:true},\r
+{id:"mPorts", cmd:"/portsstat?portstat=<dpid>", dsc:"Ports stats", call:dpTable, ref:true},\r
+//{id:"mTableFeature", cmd:"/data?tablefeature=<dpid>", dsc:"Table Features", call:dpTable, ref:true},\r
+//{id:"mQueueStats", cmd:"/data?queuestat=<dpid>", dsc:"Queue Stats", call:dpTable, ref:true},\r
+//{id:"mQueueConfig", cmd:"/data?queueconfig=<dpid>", dsc:"Queue Configuration", call:dpTable, ref:true},\r
+//{id:"mMeters", cmd:"/data?meterstat=<dpid>", dsc:"Meter stats", call:dpTable, ref:true}\r
+];\r