summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/web/gui/src/main/webapp/_sdh
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/web/gui/src/main/webapp/_sdh')
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/checkmark-xmark-icon.html145
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/embedded-icon.html130
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/glyphs.html145
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch01-01-hello-world-app.html15
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-01-module-example.html16
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-02-creating-controller.html20
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-03-hello-controller.html21
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-04-controller-click-msg.html26
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-05-ng-repeat-example-1.html29
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-06-more-directives.html52
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-07-ng-repeat-object.html28
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-08-ng-helper-vars.html42
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-09-ng-repeat-track-id.html58
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-10-ng-repeat-across-elements.html38
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-01-simple-ng-model.html28
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-02-simple-ng-model2.html40
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-03-simple-form.html45
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-04-two-forms-databinding.html44
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-05-form-validation.html42
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-06-form-error-messages.html53
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-07-form-styling.html45
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-08-nested-forms.html63
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-09-checkbox-example.html47
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-10-radio-buttons.html63
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-11-select-example.html41
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service-app.js34
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service.html41
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-02-log-example.html22
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.html43
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.js115
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-01-filter-example.html48
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-02-filter-number-string.html83
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-03-filter-arrays.html86
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-04-custom-filters.html61
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch10-01-simple-routing.html36
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch03-controller.js17
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch09-01-time-ago.js27
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/oblique.html473
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/onos-logo.svg176
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/AppUiTopoOverlay.java74
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/README.txt4
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/topov.js157
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/countrycodes.html376
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/samerica.html87
44 files changed, 0 insertions, 3236 deletions
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/checkmark-xmark-icon.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/checkmark-xmark-icon.html
deleted file mode 100644
index 4c726fe7..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/checkmark-xmark-icon.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE html>
-<!--
- ~ 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 -- Embedded checkmarks and xmarks in table page
- -->
-<html>
-<head>
- <meta charset="utf-8">
- <title>Embedded Check and X Marks</title>
-
- <script src="../tp/d3.js"></script>
-
- <link rel="stylesheet" href="../app/common.css">
-
- <style>
- html,
- body {
- background-color: #fff;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 9pt;
- }
-
- svg .icon .glyph {
- stroke: none;
- fill: white;
- fill-rule: evenodd;
- }
-
- svg .icon.active {
- fill: green;
- }
-
- svg .icon.inactive {
- fill: darkred;
- }
-
- svg .icon rect {
- stroke: white;
- stroke-width: 3px;
- }
-
- </style>
-</head>
-<body class="light">
-<!-- minimal framework to access glyphs library module -->
-<script>
- var libs = {};
- var ONOS = { ui: { addLib: function (id, things) { libs[id] = things; }}};
-
-
-</script>
-
-<!-- Test HTML -->
-
-<div>
- <table class="summary-list">
- <tr> <th></th> <th>Two</th> <th>Three</th> </tr>
- <tr>
- <td>
- <div icon icon-id="active">
-
- <!-- icon directive needs to inject the following structure -->
- <!-- ------------------------------------------------ -->
- <svg width="20" height="20" viewBox="0 0 50 50">
- <g class="icon active">
- <rect width="50" height="50" rx="10"></rect>
- <use class="glyph" xlink:href="#checkmark" width="50" height="50"></use>
- </g>
- </svg>
- <!-- ------------------------------------------------ -->
-
- </div>
- </td>
- <td>Some text</td>
- <td>Some text</td>
- </tr>
- <tr>
- <td>
- <div icon icon-id="inactive">
-
- <!-- icon directive needs to inject the following structure -->
- <!-- ------------------------------------------------ -->
- <svg width="20" height="20" viewBox="0 0 50 50">
- <g class="icon inactive">
- <rect width="50" height="50" rx="10"></rect>
- <use class="glyph" xlink:href="#xmark" width="50" height="50"></use>
- </g>
- </svg>
- <!-- ------------------------------------------------ -->
-
-
- </div>
- </td>
- <td>Some text</td>
- <td>Some Other text</td>
- </tr>
- </table>
-</div>
-
-<!-- common definitions for other SVG elements to use -->
-<svg width="0" height="0">
- <defs>
- <symbol id="checkmark" viewBox="0 0 10 10">
- <path d="M2.644,4.531c0,0,0.719-0.422,1.172,0.281l1.047,1.797c0,0,
- 2.675-5.449,2.781-5.719c0,0,0.547-0.859,1.359-0.094
- c0,0,0.484,0.484,0,1.297S6.775,7.305,5.557,9.211c0,0-0.413,0.461-1.194,
- 0.086S2.222,5.375,2.222,5.375S2.159,4.734,2.644,4.531z">
- </path>
- </symbol>
-
- <symbol id="xmark" viewBox="0 0 10 10">
- <path d="M8.967,7.196C8.172,6.852,7.37,6.058,6.672,5.189c0.385-0.463,
- 0.665-0.834,0.764-1.008C7.825,3.5,9.382,1.553,8.068,1.067
- C6.754,0.58,6.585,1.723,6.585,1.723C6.41,2.129,5.955,2.722,5.386,3.371C4.865,
- 2.544,4.541,1.918,4.541,1.918
- S3.812,0.24,2.863,0.654C1.915,1.067,2.304,2.283,2.304,2.283c0.349,1.122,
- 0.834,2.082,1.368,2.898
- C2.456,6.396,1.331,7.415,1.331,7.415S0.82,7.829,0.844,8.072C0.869,8.315,
- 0.917,9.556,2.4,9.067
- C3.084,8.843,4.122,7.933,5.083,6.95c1.306,1.348,2.498,1.949,2.498,1.949s0.535,
- 0.51,1.386-0.244
- C9.819,7.902,8.967,7.196,8.967,7.196z">
- </path>
- </symbol>
-
- </defs>
-</svg>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/embedded-icon.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/embedded-icon.html
deleted file mode 100644
index 8d4d62a8..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/embedded-icon.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE html>
-<!--
- ~ 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 -- Embedded icon test page
- -->
-<html>
-<head>
- <meta charset="utf-8">
- <title>Embedded Icons</title>
-
- <script src="../tp/d3.js"></script>
-
- <link rel="stylesheet" href="../app/common.css">
-
- <style>
- html,
- body {
- background-color: #fff;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 9pt;
- }
-
- svg .icon .glyph {
- stroke: none;
- fill: white;
- fill-rule: evenodd;
- }
-
- svg .icon.active {
- fill: green;
- }
-
- svg .icon.inactive {
- fill: darkred;
- }
-
- svg .icon rect {
- stroke: black;
- stroke-width: 1px;
- }
-
- </style>
-</head>
-<body class="light">
-<!-- minimal framework to access glyphs library module -->
-<script>
- var libs = {};
- var ONOS = { ui: { addLib: function (id, things) { libs[id] = things; }}};
-
-
-</script>
-
-<!-- Test HTML -->
-
-<div>
- <table class="summary-list">
- <tr> <th></th> <th>Two</th> <th>Three</th> </tr>
- <tr>
- <td>
- <div icon icon-id="active">
-
- <!-- icon directive needs to inject the following structure -->
- <!-- ------------------------------------------------ -->
- <svg width="20" height="20" viewBox="0 0 50 50">
- <g class="icon active">
- <rect width="50" height="50" rx="4"></rect>
- <use class="glyph" xlink:href="#ui" width="50" height="50"></use>
- </g>
- </svg>
- <!-- ------------------------------------------------ -->
-
- </div>
- </td>
- <td>Some text</td>
- <td>Some text</td>
- </tr>
- <tr>
- <td>
- <div icon icon-id="inactive">
-
- <!-- icon directive needs to inject the following structure -->
- <!-- ------------------------------------------------ -->
- <svg width="20" height="20" viewBox="0 0 50 50">
- <g class="icon inactive">
- <rect width="50" height="50" rx="4"></rect>
- <use class="glyph" xlink:href="#ui" width="50" height="50"></use>
- </g>
- </svg>
- <!-- ------------------------------------------------ -->
-
-
- </div>
- </td>
- <td>Some text</td>
- <td>Some Other text</td>
- </tr>
- </table>
-</div>
-
-<!-- common definitions for other SVG elements to use -->
-<svg width="0" height="0">
- <defs>
- <symbol id="ui" viewBox="0 0 10 10">
- <path d="M2,2.5a.5,.5,0,0,1,.5-.5h5
- a.5,.5,0,0,1,.5,.5v3a.5,.5,0,0,1-.5,.5h-5a.5,
- .5,0,0,1-.5-.5zM2.5,2.8a.3,.3,0,0,1,.3-.3
- h4.4a.3,.3,0,0,1,.3,.3v2.4a.3,.3,0,0,1-.3,
- .3h-4.4a.3,.3,0,0,1-.3-.3zM2,6.55h6l1,1.45h-8z">
- </path>
- </symbol>
- </defs>
-</svg>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/glyphs.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/glyphs.html
deleted file mode 100644
index 589ef07b..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/glyphs.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE html>
-<!--
- ~ Copyright 2014 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 -- Glyphs library test page (old version)
- -->
-<html>
-<head>
- <meta charset="utf-8">
- <title>Glyphs</title>
-
- <script src="../tp/d3.js"></script>
-
- <style>
- html,
- body {
- background-color: #ddf;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 9pt;
- }
-
- svg {
- background-color: #fff;
- }
-
- svg .glyph {
- stroke: none;
- fill: black;
- fill-rule: evenodd;
- }
-
- svg .icon text {
- text-anchor: middle;
- font-size: 5pt;
- fill: green;
- stroke: none;
- }
-
- </style>
-</head>
-<body>
- <!-- minimal framework to access glyphs library module -->
- <script>
- var libs = {};
- var ONOS = { ui: { addLib: function (id, things) { libs[id] = things; }}};
- </script>
-
- <!-- import the glyphs library -->
- <script src="../glyphs.js"></script>
-
- <svg></svg>
-
- <!-- code to display the glyphs in the library -->
- <script>
- (function () {
- var w = 1000,
- h = 800,
- vb = '0 0 ' + w + ' ' + h;
-
- var svg = d3.select('svg')
- .attr({ width: w, height: h, viewBox: vb });
-
- // create definitions element...
- var defs = svg.append('defs');
-
- // create scaling group
- var grp = svg.append('g')
- .attr('transform', 'translate(20,20)scale(2)');
-
- var mag = svg.append('g')
- .attr('transform', 'translate(20,20)scale(12)');
-
- function translate(loc) {
- return 'translate(' + loc[0] + ',' + loc[1] +')';
- }
-
- function icon(what, id, loc, color, bg, size) {
- var i = '#' + id,
- c = color || 'black',
- b = bg || '#eef',
- z = size || 40,
- g;
-
- g = what.append('g')
- .attr({ 'class': 'icon', transform: translate(loc) });
-
- g.append('rect')
- .attr({ width: z, height: z, rx: 4 })
- .style('fill', b)
- .style('stroke', 'black')
- .style('stroke-width', 0.5);
-
- g.append('use')
- .attr({ 'class': 'glyph', width: z, height: z, 'xlink:href': i })
- .style('fill', c);
-
- if (id !== 'bird') {
- g.append('text')
- .text(id)
- .attr({ x: z / 2, y: z + 8 })
- }
- }
-
-
- // import glyphs...
- libs.glyphs.loadDefs(defs);
-
- // bird, top right corner
- icon(svg, 'bird', [830,10], '#800', '#ecc', 160);
-
- // show icons...
- icon(grp, 'unknown', [ 0, 0]);
- icon(grp, 'node', [ 50, 0]);
- icon(grp, 'switch', [100, 0]);
- icon(grp, 'roadm', [150, 0]);
- icon(grp, 'endstation', [200, 0]);
- icon(grp, 'router', [250, 0]);
- icon(grp, 'bgpSpeaker', [300, 0]);
- icon(grp, 'uiAttached', [350, 0]);
-
- icon(grp, 'chain', [ 0, 60]);
- icon(grp, 'crown', [ 50, 60]);
-
-// icon(mag, 'crown', [20, 15], 'rgba(240,120,120,1)', 'transparent');
-
- // more goodies to come soon.....
- })();
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch01-01-hello-world-app.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch01-01-hello-world-app.html
deleted file mode 100644
index 82cfec6c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch01-01-hello-world-app.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body ng-app>
- <input type="text"
- ng-model="name"
- placeholder="Enter your name">
-
- <h1>Hello <span ng-bind="name"></span></h1>
- <!-- Note alternate syntax for same thig... -->
- <h1>Hello {{ name }}</h1>
-
- <script src="../../tp/angular.js"></script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-01-module-example.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-01-module-example.html
deleted file mode 100644
index 97432e35..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-01-module-example.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Hello AngularJS</title>
-
- <script src="../../tp/angular.js"></script>
-</head>
-<body>
- Hello {{1 + 1}}nd time AngularJS
-
- <script type="text/javascript">
- angular.module('notesApp', []);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-02-creating-controller.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-02-creating-controller.html
deleted file mode 100644
index 566c6dd5..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-02-creating-controller.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Hello AngularJS</title>
-
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl">
- Hello {{1 + 1}}nd time AngularJS
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- // controller specific code here
- console.log('MainCtrl has been created');
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-03-hello-controller.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-03-hello-controller.html
deleted file mode 100644
index c206bf8e..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-03-hello-controller.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
- {{ctrl.helloMsg}} AngularJS.
- <br/>
- {{ctrl.goodbyeMsg}} AngularJS
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- this.helloMsg = 'Hello ';
- var goodbyeMsg = 'Goodbye ';
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-04-controller-click-msg.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-04-controller-click-msg.html
deleted file mode 100644
index 4a4a22ee..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-04-controller-click-msg.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
- {{ctrl.message}} AngularJS.
-
- <button ng-click="ctrl.changeMessage()">
- Change Message
- </button>
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.message = 'Hello';
- self.changeMessage = function () {
- self.message = 'Goodbye'
- };
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-05-ng-repeat-example-1.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-05-ng-repeat-example-1.html
deleted file mode 100644
index a262c1b6..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-05-ng-repeat-example-1.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div ng-repeat="note in ctrl.notes">
- <span class="label"> {{note.label}} </span>
- <!--<span class="status" ng-bind="note.done"></span>-->
- <span class="status"> {{note.done}} </span>
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.notes = [
- {id: 1, label: 'First note', done: false},
- {id: 2, label: 'Second note', done: false},
- {id: 3, label: 'Done note', done: true},
- {id: 4, label: 'Last note', done: false}
- ]
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-06-more-directives.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-06-more-directives.html
deleted file mode 100644
index 254dd08c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-06-more-directives.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <style>
- .done {
- background-color: limegreen;
- }
- .pending {
- background-color: yellow;
- }
- .assignee {
- color: red;
- font-weight: bold;
- }
- </style>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div ng-repeat="note in ctrl.notes"
- ng-class="ctrl.getNoteClass(note.done)">
- <span class="label"> {{note.label}} </span>
- <span class="assignee"
- ng-show="note.assignee"
- ng-bind="note.assignee">
- </span>
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- self.notes = [
- {id: 1, label: 'First note', done: false, assignee: 'Simon'},
- {id: 2, label: 'Second note', done: false},
- {id: 3, label: 'Done note', done: true},
- {id: 4, label: 'Last note', done: false, assignee: 'Fred'}
- ];
-
- self.getNoteClass = function (status) {
- return {
- done: status,
- pending: !status
- };
- };
- }
- ]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-07-ng-repeat-object.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-07-ng-repeat-object.html
deleted file mode 100644
index 43de929d..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-07-ng-repeat-object.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div ng-repeat="(author, note) in ctrl.notes">
- <span class="label"> {{note.label}} </span>
- <span class="author" ng-bind="author"></span>
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- self.notes = {
- simon: { id: 1, label: 'First note', done: false},
- Thomas: { id: 3, label: 'Finished third note', done: true},
- alice: { id: 2, label: 'Second note', done: false}
- };
- }
- ]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-08-ng-helper-vars.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-08-ng-helper-vars.html
deleted file mode 100644
index cf872d92..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-08-ng-helper-vars.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div ng-repeat="note in ctrl.notes">
- <div>First element: {{$first}}</div>
- <div>Middle element: {{$middle}}</div>
- <div>Last element: {{$last}}</div>
- <div>Index of element: {{$index}}</div>
- <div>At even position: {{$even}}</div>
- <div>At odd position: {{$odd}}</div>
-
- <span class="label"> {{note.label}} </span>
- <span class="status"> {{note.done}} </span>
- <br/><br/>
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- self.notes = [
- {id: 1, label: 'First note', done: false},
- {id: 2, label: 'Second note', done: false},
- {id: 3, label: 'Done note', done: true},
- {id: 4, label: 'Last note', done: false}
- ];
- }
- ]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-09-ng-repeat-track-id.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-09-ng-repeat-track-id.html
deleted file mode 100644
index 23ad7dc0..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-09-ng-repeat-track-id.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <button ng-click="ctrl.changeNotes()">Change Notes</button>
- <br/>
-
- DOM Elements change at every click
- <div ng-repeat="note in ctrl.notes1">
- {{note.$$hashKey}}
- <span class="label"> {{note.label}} </span>
- <span class="author"> {{note.done}} </span>
- </div>
- <br/>
-
- DOM Elements are reused at every click
- <div ng-repeat="note in ctrl.notes2 track by note.id">
- {{note.$$hashKey}}
- <span class="label"> {{note.label}} </span>
- <span class="author"> {{note.done}} </span>
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- var notes = [
- {id: 1, label: 'First note', done: false, someRandom: 31431},
- {id: 2, label: 'Second note', done: false},
- {id: 3, label: 'Finished third note', done: true}
- ];
- self.notes1 = angular.copy(notes);
- self.notes2 = angular.copy(notes);
-
- self.changeNotes = function () {
- notes = [
- {id: 1, label: 'Changed note', done: false, someRandom: 4242},
- {id: 2, label: 'Second note', done: false},
- {id: 3, label: 'Finished third note', done: true}
- ];
- self.notes1 = angular.copy(notes);
- self.notes2 = angular.copy(notes);
- }
- }
- ]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-10-ng-repeat-across-elements.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-10-ng-repeat-across-elements.html
deleted file mode 100644
index 06a4fa72..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch02-10-ng-repeat-across-elements.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <table>
- <tr ng-repeat-start="note in ctrl.notes">
- <td>{{note.label}}</td>
- </tr>
- <tr ng-repeat-end>
- <td>Done: {{note.done}}</td>
- </tr>
- </table>
-
-
- <script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- self.notes = [
- {id: 1, label: 'First note', done: false},
- {id: 2, label: 'Second note', done: false},
- {id: 3, label: 'Finished third note', done: true}
- ];
- }
- ]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-01-simple-ng-model.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-01-simple-ng-model.html
deleted file mode 100644
index 5c8a4b13..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-01-simple-ng-model.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<input type="text" ng-model="ctrl.username"/>
-You typed {{ctrl.username}}
-
-
-<script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- self.username = 'nothing';
- }
- ]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-02-simple-ng-model2.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-02-simple-ng-model2.html
deleted file mode 100644
index d02909f7..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-02-simple-ng-model2.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<input type="text" ng-model="ctrl.username"/>
-<input type="password" ng-model="ctrl.password"/>
-<button ng-click="ctrl.change()">Change values</button>
-<button ng-click="ctrl.submit()">Submit</button>
-
-
-
-
-<script type="text/javascript">
- angular.module('notesApp', []).controller('MainCtrl', [
- function () {
- var self = this;
- self.change = function () {
- self.username = 'changed';
- self.password = 'password';
- };
-
- self.submit = function () {
- console.log('user clicked submit with ',
- self.username, self.password);
- };
- }
- ]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-03-simple-form.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-03-simple-form.html
deleted file mode 100644
index 54a7ea4b..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-03-simple-form.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<!--
- - Note, using a form has the advantage of reacting to RETURN triggering
- - the submit, as well as pressing the submit button.
- -->
-<form ng-submit="ctrl.submit()">
- <input type="text" placeholder="username" ng-model="ctrl.user.username"/>
- <input type="password" placeholder="password" ng-model="ctrl.user.password"/>
- <input type="submit" value="Submit"/>
- <p></p>
- <textarea cols="60" rows="5" ng-model="ctrl.user.notes" placeholder="Notes">
- </textarea>
- <p>
- NOTES:
- <div>
- {{ctrl.user.notes}}
- </div>
- </p>
-</form>
-
-<script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
-
- self.submit = function () {
- console.log('User clicked submit with ', self.user);
- };
- }]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-04-two-forms-databinding.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-04-two-forms-databinding.html
deleted file mode 100644
index 9cb4961c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-04-two-forms-databinding.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<form ng-submit="ctrl.submit1()">
- <input type="text" placeholder="username" ng-model="ctrl.username"/>
- <input type="password" placeholder="password" ng-model="ctrl.password"/>
- <input type="submit" value="Submit"/>
-</form>
-
-<!-- Better way of structuring the form data -->
-<form ng-submit="ctrl.submit2()">
- <input type="text" placeholder="username" ng-model="ctrl.user.username"/>
- <input type="password" placeholder="password" ng-model="ctrl.user.password"/>
- <input type="submit" value="Submit"/>
-</form>
-
-<script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
-
- self.submit1 = function () {
- // create user object to send to server
- var user = {username: self.username, password: self.password};
- console.log('First submit: ', user);
- };
- self.submit2 = function () {
- console.log('Second submit: ', self.user);
- };
- }]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-05-form-validation.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-05-form-validation.html
deleted file mode 100644
index 3501adb1..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-05-form-validation.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- span {
- background-color: #cce;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<form ng-submit="ctrl.submit()" name="myForm">
- <input type="text"
- placeholder="username"
- ng-model="ctrl.user.username"
- required
- ng-minlength="4"/>
-
- <input type="password"
- placeholder="password"
- ng-model="ctrl.user.password"
- required/>
-
- <input type="submit"
- value="Submit"
- ng-disabled="myForm.$invalid"/>
-</form>
-
-<script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.submit = function () {
- console.log('Submit: ', self.user);
- };
- }]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-06-form-error-messages.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-06-form-error-messages.html
deleted file mode 100644
index 46c38c94..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-06-form-error-messages.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<form ng-submit="ctrl.submit()" name="myForm">
- <input type="text"
- name="uname"
- placeholder="username"
- ng-model="ctrl.user.username"
- required
- ng-minlength="4"/>
- <span ng-show="myForm.uname.$error.required">
- This is a required field
- </span>
- <span ng-show="myForm.uname.$error.minlength">
- Minimum length required is 4
- </span>
- <span ng-show="myForm.uname.$invalid">
- This field is invalid
- </span>
- <br/>
-
- <input type="password"
- name="pwd"
- placeholder="password"
- ng-model="ctrl.user.password"
- required/>
- <span ng-show="myForm.pwd.$error.required">
- This is a required field
- </span>
- <br/>
-
- <input type="submit"
- value="Submit"
- ng-disabled="myForm.$invalid"/>
-</form>
-
-<script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.submit = function () {
- console.log('Submit: ', self.user);
- };
- }]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-07-form-styling.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-07-form-styling.html
deleted file mode 100644
index 1b6ab867..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-07-form-styling.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <style>
- .username.ng-valid {
- background-color: greenyellow;
- }
- .username.ng-dirty.ng-invalid-required {
- background-color: hotpink;
- }
- .username.ng-dirty.ng-invalid-minlength {
- background-color: lightpink;
- }
- </style>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
-<form ng-submit="ctrl.submit()" name="myForm">
- <input type="text"
- class="username"
- name="uname"
- placeholder="username"
- ng-model="ctrl.user.username"
- required
- ng-minlength="4"/>
-
- <input type="submit"
- value="Submit"
- ng-disabled="myForm.$invalid"/>
-</form>
-
-<script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.submit = function () {
- console.log('Submit: ', self.user);
- };
- }]);
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-08-nested-forms.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-08-nested-forms.html
deleted file mode 100644
index c3149195..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-08-nested-forms.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html ng-app>
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<!-- no controller in this example -->
-<body>
-
-<form novalidate name="myForm">
- <input type="text"
- class="username"
- name="uname"
- ng-model="ctrl.user.username"
- required=""
- placeholder="Username"
- ng-minlength="4"/>
-
- <input type="password"
- class="password"
- name="pad"
- ng-model="ctrl.user.password"
- required=""
- placeholder="Password"
- required=""/>
-
- <p/>
-
- <ng-form name="profile">
- <input type="text"
- name="firstName"
- ng-model="ctrl.user.profile.firstName"
- placeholder="First Name"
- required/>
- <input type="text"
- name="middleName"
- ng-model="ctrl.user.profile.middleName"
- placeholder="Middle Name"/>
- <input type="text"
- name="lastName"
- ng-model="ctrl.user.profile.lastName"
- placeholder="Last Name"
- required/>
-
- <input type="date"
- name="dob"
- placeholder="Date of birth"
- ng-model="ctrl.user.profile.dob"/>
- </ng-form>
-
- <span ng-show="myForm.profile.$invalid">
- Please fill out the profile information
- </span>
-
- <p/>
-
- <input type="submit"
- value="Submit"
- ng-disabled="myForm.$invalid"/>
-</form>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-09-checkbox-example.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-09-checkbox-example.html
deleted file mode 100644
index fe35af10..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-09-checkbox-example.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div>
- <h2>What are your favorite sports?</h2>
- <div ng-repeat="sport in ctrl.sports">
- <label ng-bind="sport.label"></label>
- <div>
- With binding:
- <input type="checkbox"
- ng-model="sport.selected"
- ng-true-value="'YES'"
- ng-false-value="'NO'"/>
- </div>
- <div>
- using ng-checked:
- <input type="checkbox"
- ng-checked="sport.selected === 'YES'"/>
- </div>
- <div>
- Current state: {{sport.selected}}
- </div>
- <br/>
- </div>
-
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.sports = [
- {label: 'Basketball', selected: 'YES'},
- {label: 'Cricket', selected: 'NO'},
- {label: 'Soccer', selected: 'NO'},
- {label: 'Swimming', selected: 'YES'}
- ];
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-10-radio-buttons.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-10-radio-buttons.html
deleted file mode 100644
index 2a2cb83d..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-10-radio-buttons.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div>
- <h2>Radio Buttons</h2>
- <div ng-init="user.gender = 'female'">
- <input type="radio"
- name="gender"
- ng-model="user.gender"
- value="male"/>Male
- <input type="radio"
- name="gender"
- ng-model="user.gender"
- value="female"/>Female
- </div>
- </div>
-
- <div>
- <h2>Radio Buttons two</h2>
- <div ng-init="user.gender2 = 'male'; otherGender = 'Other'">
- <input type="radio"
- name="gender2"
- ng-model="user.gender2"
- value="male"/>Male
- <input type="radio"
- name="gender2"
- ng-model="user.gender2"
- value="female"/>Female
- <input type="radio"
- name="gender2"
- ng-model="user.gender2"
- ng-value="otherGender"/>{{otherGender}}
- </div>
- </div>
-
- <div>
- <h2>Radio Buttons three</h2>
- <div ng-repeat="ch in ctrl.choices">
- <input type="radio"
- name="choice"
- ng-model="user.choice"
- ng-value="ch"/>{{ch}}
-
- </div>
- </div>
-
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
-
- self.choices = ['foo', 'bar', 'baz', 'zoo', 'goo'];
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-11-select-example.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-11-select-example.html
deleted file mode 100644
index a8cda33c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch04-11-select-example.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as ctrl">
-
- <div>
- <select ng-model="ctrl.selectedCountryId"
- ng-options="c.id as c.label for c in ctrl.countries">
- </select>
- Selected Country ID: {{ctrl.selectedCountryId}}
- </div>
-
- <div>
- <select ng-model="ctrl.selectedCountry"
- ng-options="c.label for c in ctrl.countries track by c.id">
- </select>
- Selected Country: {{ctrl.selectedCountry}}
- </div>
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
-
- self.countries = [
- {label: 'UK', id: 1},
- {label: 'USA', id: 2},
- {label: 'France', id: 3},
- {label: 'Italy', id: 4}
- ];
- var first = self.countries[0];
- self.selectedCountryId = first.id;
- self.selectedCountry = first;
- }]);
- </script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service-app.js b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service-app.js
deleted file mode 100644
index 4e25b0b1..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service-app.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// ch05-01-need-for-service-app.js
-
-angular.module('notesApp', [])
- .controller('MainCtrl', [function () {
- var self = this;
- self.tab = 'first';
- self.open = function (tab) {
- self.tab = tab;
- }
- }])
- .controller('SubCtrl', [function () {
- var self = this;
- self.list = [
- {id: 0, label: 'Item 0'},
- {id: 1, label: 'Item 1'}
- ];
-
- self.add = function () {
- var n = self.list.length;
- self.list.push({
- id: n,
- label: 'Item ' + n
- });
- }
- }]);
-
-/*
- NOTE: When we use controllers, they are instances that get created and
- destroyed as we navigate across the application. Any state they
- hold is temporary at best, and cannot be communicated to other
- controllers.
-
- That's why we'd use "services" instead.
- */
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service.html
deleted file mode 100644
index 21d17e4c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-01-need-for-service.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <script src="ch05-01-need-for-service-app.js"></script>
-</head>
-<body ng-controller="MainCtrl as mainCtrl">
-
- <h1> Hello Controllers! </h1>
- <button ng-click="mainCtrl.open('first')">Open First</button>
- <button ng-click="mainCtrl.open('second')">Open Second</button>
-
- <div ng-switch on="mainCtrl.tab">
-
- <div ng-switch-when="first">
- <div ng-controller="SubCtrl as ctrl">
- <h3>First Tab</h3>
- <button ng-click="ctrl.add()">Add more items</button>
- <ul>
- <li ng-repeat="item in ctrl.list">
- <span ng-bind="item.label"></span>
- </li>
- </ul>
- </div>
- </div>
-
- <div ng-switch-when="second">
- <div ng-controller="SubCtrl as ctrl">
- <h3>Second Tab</h3>
- <button ng-click="ctrl.add()">Add more items</button>
- <ul>
- <li ng-repeat="item in ctrl.list">
- <span ng-bind="item.label"></span>
- </li>
- </ul>
- </div>
- </div>
- </div>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-02-log-example.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-02-log-example.html
deleted file mode 100644
index d516440d..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-02-log-example.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-controller="MainCtrl as mainCtrl">
-
- <h1> Hello Services! </h1>
- <button ng-click="mainCtrl.logStuff()">Log something</button>
-
- <script type="text/javascript">
- angular.module('notesApp', [])
- .controller('MainCtrl', ['$log', function ($log) {
- var self = this;
- self.logStuff = function () {
- $log.log('The button was pressed');
- };
- }]);
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.html
deleted file mode 100644
index 74f2a8e8..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="notesApp">
-<head>
- <title>Notes App</title>
- <script src="../../tp/angular.js"></script>
- <script src="ch05-03-simple-angular-service.js"></script>
-</head>
-<body ng-controller="MainCtrl as mainCtrl">
-
- <h1> Hello Controllers! </h1>
-
- <button ng-click="mainCtrl.open('first')"> Open First </button>
- <button ng-click="mainCtrl.open('second')"> Open Second </button>
-
- <div ng-switch on="mainCtrl.tab">
-
- <div ng-switch-when="first">
- <div ng-controller="SubCtrl as ctrl">
- <h3>First Tab</h3>
- <button ng-click="ctrl.add()">Add item</button>
- <ul>
- <li ng-repeat="item in ctrl.list()">
- <span ng-bind="item.label"></span>
- </li>
- </ul>
- </div>
- </div>
-
- <div ng-switch-when="second">
- <div ng-controller="SubCtrl as ctrl">
- <h3>Second Tab</h3>
- <button ng-click="ctrl.add()">Add item</button>
- <ul>
- <li ng-repeat="item in ctrl.list()">
- <span ng-bind="item.label"></span>
- </li>
- </ul>
- </div>
- </div>
- </div>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.js b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.js
deleted file mode 100644
index 25786bed..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch05-03-simple-angular-service.js
+++ /dev/null
@@ -1,115 +0,0 @@
-// ch05-03-simple-angular-service.js
-
-// this example shows three different ways of defining our own "service"...
-
-// use 'factory()' for functions/plain objects API
-// use 'service()' for JS class object API
-// use 'provider()' for configurable service API
-
-
-// this is a service definition
-function ItemServiceTwo() {
- var items = [
- {id: 0, label: 'Item 0'},
- {id: 1, label: 'Item 1'}
- ];
- this.list = function () {
- return items;
- };
- this.add = function (item) {
- items.push(item);
- };
-}
-
-// this is a provider definition
-function ItemServiceThree(optItems) {
- var items = optItems || [];
-
- this.list = function () {
- return items;
- };
- this.add = function (item) {
- items.push(item);
- }
-}
-
-angular.module('notesApp', [])
-
- // [provider] define item service as configurable provider
- .provider('ItemServiceThree', function () {
- var haveDefaultItems = true;
-
- this.disableDefaultItems = function () {
- haveDefaultItems = false;
- };
-
- // this function gets our dependencies..
- this.$get = [function () {
- var optItems = [];
- if (haveDefaultItems) {
- optItems = [
- {id: 0, label: 'Item 0'},
- {id: 1, label: 'Item 1'}
- ];
- }
- return new ItemServiceThree(optItems);
- }];
- })
-
- // [provider] define configuration for provider
- .config(['ItemServiceThreeProvider', function (ItemServiceThreeProvider) {
- // to see how the provider can change configuration
- // change the value of shouldHaveDefaults to true and
- // try running the example
- var shouldHaveDefaults = false;
-
- // get configuration from server.
- // set shouldHaveDefaults somehow
- // assume it magically changes for now
- if (!shouldHaveDefaults) {
- ItemServiceThreeProvider.disableDefaultItems();
- }
- }])
-
- // [service] define item service as a JS class
- .service('ItemServiceTwo', [ItemServiceTwo])
-
- // [factory] define item service factory
- .factory('ItemService', [function () {
- var items = [
- {id: 0, label: 'Item 0'},
- {id: 1, label: 'Item 1'}
- ];
- return {
- list: function () {
- return items;
- },
- add: function (item) {
- items.push(item);
- }
- };
- }])
-
- // ======================================================================
- // define controllers...
- .controller('MainCtrl', [function () {
- var self = this;
- self.tab = 'first';
- self.open = function (tab) {
- self.tab = tab;
- };
- }])
-
- .controller('SubCtrl', ['ItemService', function (ItemService) {
- var self = this;
- self.list = function () {
- return ItemService.list();
- };
- self.add = function () {
- var n = self.list().length;
- ItemService.add({
- id: n,
- label: 'Item ' + n
- });
- };
- }]);
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-01-filter-example.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-01-filter-example.html
deleted file mode 100644
index 105209ca..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-01-filter-example.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Filters in Action</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-app="filtersApp">
-
- <div ng-controller="FilterCtrl as ctrl">
- <div>
- Amount as a number: {{ctrl.amount | number}}
- </div>
- <div>
- Total cost as a currency: {{ctrl.totalCost | currency}}
- </div>
- <div>
- Total cost in GBP: {{ctrl.totalCost | currency:'GBP '}}
- </div>
- <div>
- Shout: {{ctrl.name | uppercase}}
- </div>
- <div>
- Whisper: {{ctrl.name | lowercase}}
- </div>
- <div>
- Start time: {{ctrl.startTime | date:'medium'}}
- </div>
- <div>
- as JSON: {{ctrl.struct | json}}
- </div>
- </div>
-
- <script type="text/javascript">
- angular.module('filtersApp', [])
- .controller('FilterCtrl', [function () {
- var self = this;
- self.amount = 1024;
- self.totalCost = 4906;
- self.name = 'Onos Rocks!';
- self.startTime = new Date().getTime();
- self.struct = {
- foo: 'bar',
- baz: 3.1415
- };
- }]);
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-02-filter-number-string.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-02-filter-number-string.html
deleted file mode 100644
index 46e9c4d7..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-02-filter-number-string.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Filters in Action</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-app="filtersApp">
-
- <ul ng-controller="FilterCtrl as ctrl">
- <li>
- Amount - {{ctrl.amount}}
- </li>
- <li>
- Amount - Default Currency: {{ctrl.amount | currency}}
- </li>
- <li>
- <!-- Using English pound sign -->
- Amount - GBP Currency: {{ctrl.amount | currency:'&#163'}}
- </li>
- <li>
- Amount - Number: {{ctrl.amount | number }}
- </li>
- <li>
- Amount - Number (4 decimals): {{ctrl.amount | number:4}}
- </li>
- <li>
- Amount - Yummy &#x3c0 = {{ctrl.pi | number:4 }}
- </li>
-
- <li>
- Name - no filters: {{ctrl.name}}
- </li>
- <li>
- Name - lowercase: {{ctrl.name | lowercase}}
- </li>
- <li>
- Name - uppercase: {{ctrl.name | uppercase}}
- </li>
- <li>
- Name - prefix: {{ctrl.name | limitTo:4}}
- </li>
-
- <li>
- JSON filter: {{ctrl.struct | json}}
- </li>
-
- <li>
- Timestamp: {{ctrl.startTime}}
- </li>
- <li>
- Default Date filter: {{ctrl.startTime | date}}
- </li>
- <li>
- Medium Date filter: {{ctrl.startTime | date:'medium'}}
- </li>
- <li>
- Long Date filter: {{ctrl.startTime | date:'longDate'}}
- </li>
- <li>
- Custom Date filter: {{ctrl.startTime | date:'M/dd, yyyy'}}
- </li>
- <li>
- Custom Time filter: {{ctrl.startTime | date:'h:m a'}}
- </li>
- </ul>
-
- <script type="text/javascript">
- angular.module('filtersApp', [])
- .controller('FilterCtrl', [function () {
- var self = this;
- self.amount = 1024;
- self.totalCost = 4906;
- self.name = 'Onos Rocks!';
- self.startTime = new Date().getTime();
- self.struct = {
- foo: 'bar',
- baz: 3.1415
- };
- self.pi = Math.PI;
- }]);
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-03-filter-arrays.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-03-filter-arrays.html
deleted file mode 100644
index a9ce3cae..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-03-filter-arrays.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Filters in Action</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-app="filtersApp">
-
- <div ng-controller="FilterCtrl as ctrl">
-
- <table>
- <tr>
- <td>
- <button ng-click="ctrl.currentFilter = 'string'">
- Filter with string
- </button>
- </td>
- <td>
- Filter Text
- <input type="text"
- ng-model="ctrl.filterOptions['string']"/>
- </td>
- </tr>
- <tr>
- <td>
- <button ng-click="ctrl.currentFilter = 'object'">
- Filter with object
- </button>
- </td>
- <td>
- Show Done or Not Done
- <input type="checkbox"
- ng-model="ctrl.filterOptions['object'].done"/>
- </td>
- </tr>
- <tr>
- <td>
- <button ng-click="ctrl.currentFilter = 'function'">
- Filter with function
- </button>
- </td>
- </tr>
- </table>
- <ul>
- <li ng-repeat="note in ctrl.notes |
- filter:ctrl.filterOptions[ctrl.currentFilter] |
- orderBy:ctrl.sortOrder |
- limitTo:5">
- {{note.label}} - {{note.type}} - {{note.done}}
- </li>
- </ul>
- </div>
-
-
- <script type="text/javascript">
- angular.module('filtersApp', [])
- .controller('FilterCtrl', [function () {
- var self = this;
-
- self.notes = [
- {label: 'FC Todo', type: 'chore', done: false},
- {label: 'FT Todo', type: 'task', done: false},
- {label: 'FF Todo', type: 'fun', done: true},
- {label: 'SC Todo', type: 'chore', done: false},
- {label: 'ST Todo', type: 'task', done: true},
- {label: 'SF Todo', type: 'fun', done: true},
- {label: 'TC Todo', type: 'chore', done: false},
- {label: 'TT Todo', type: 'task', done: false},
- {label: 'TF Todo', type: 'fun', done: false}
- ];
-
- self.sortOrder = ['+type', '-label'];
-
- self.filterOptions = {
- 'string': '',
- 'object': {done: false, label: 'F'},
- 'function': function (note) {
- return note.type === 'task' && note.done === false;
- }
- };
-
- self.currentFilter = 'string';
- }]);
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-04-custom-filters.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-04-custom-filters.html
deleted file mode 100644
index f39991d9..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch08-04-custom-filters.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Custom Filters in Action</title>
- <script src="../../tp/angular.js"></script>
-</head>
-<body ng-app="filtersApp">
-
- <div ng-controller="FilterCtrl as ctrl">
- <div>
- Start time (Timestamp): {{ctrl.startTime}}
- </div>
- <div>
- Start time (Time): {{ctrl.startTime | date:'h:m a'}}
- </div>
- <div>
- Start time (Our filter): {{ctrl.startTime | timeAgo}}
- </div>
- <div>
- Start time (Our filter 2): {{ctrl.startTime | timeAgo:true}}
- </div>
- <div>
- Some time ago (Computed): {{ctrl.someTimeAgo | date:'h:m a'}}
- </div>
- <div>
- Some time ago (Our filter): {{ctrl.someTimeAgo | timeAgo}}
- </div>
- </div>
-
- <script type="text/javascript">
- angular.module('filtersApp', [])
- .controller('FilterCtrl', [function () {
- var self = this;
- self.startTime = new Date().getTime();
- self.someTimeAgo = self.startTime - (1000*3600*4);
- }])
- .filter('timeAgo', [function () {
- var _m = 1000 * 60,
- _h = _m * 60,
- _d = _h * 24,
- _mon = _d * 30;
-
- return function (ts, ignoreSecs) {
- var now = new Date().getTime(),
- diff = now - ts;
- if (diff < _m && !ignoreSecs) {
- return 'seconds ago';
- } else if (diff < _h) {
- return 'minutes ago';
- } else if (diff < _d) {
- return 'hours ago';
- } else if (diff < _mon) {
- return 'days ago';
- } else {
- return 'months ago';
- }
- }
- }]);
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch10-01-simple-routing.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch10-01-simple-routing.html
deleted file mode 100644
index 29614127..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/ch10-01-simple-routing.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Simple Routing</title>
- <script src="../../tp/angular.js"></script>
- <script src="../../tp/angular-route.js"></script>
-</head>
-<body ng-app="routingApp">
-
- <h2>Angular Routing</h2>
-
- <ul>
- <li><a href="#/">Default Route</a></li>
- <li><a href="#/second">Second Route</a></li>
- <li><a href="#/asdfertdfghsdfg">Non-existent Route</a></li>
- </ul>
-
- <div ng-view></div>
-
- <script type="text/javascript">
- angular.module('routingApp', ['ngRoute'])
- .config(['$routeProvider', function ($routeProvider) {
- $routeProvider
- .when('/', {
- template: '<h5>This is the default route</h5>'
- })
- .when('/second', {
- template: '<h5>This is the second route</h5>'
- })
- .otherwise({
- redirectTo: '/'
- });
- }]);
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch03-controller.js b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch03-controller.js
deleted file mode 100644
index 92d3b0c0..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch03-controller.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Simple controller
-
-angular.module('notesApp', [])
- .controller('ListCtrl', [function () {
- var self = this;
- self.items = [
- {id: 1, label: 'First', done: true},
- {id: 2, label: 'Second', done: false}
- ];
-
- self.getDoneClass = function (item) {
- return {
- finished: item.done,
- unfinished: !item.done
- };
- };
- }]);
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch09-01-time-ago.js b/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch09-01-time-ago.js
deleted file mode 100644
index 1a8b7f1c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/ng-examples/js/ch09-01-time-ago.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// ch09-01-time-ago.js
-
-angular.module('filterApp', [])
- .filter('timeAgo', [function () {
- var _m = 1000 * 60,
- _h = _m * 60,
- _d = _h * 24,
- _mon = _d * 30;
-
- return function (ts, ignoreSecs) {
- var showSecs = !ignoreSecs,
- now = new Date().getTime(),
- diff = now - ts;
-
- if (diff < _m && showSecs) {
- return 'seconds ago';
- } else if (diff < _h) {
- return 'minutes ago';
- } else if (diff < _d) {
- return 'hours ago';
- } else if (diff < _mon) {
- return 'days ago';
- } else {
- return 'months ago';
- }
- }
- }]);
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/oblique.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/oblique.html
deleted file mode 100644
index e54d18f5..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/oblique.html
+++ /dev/null
@@ -1,473 +0,0 @@
-<!DOCTYPE html>
-<!--
- ~ Copyright 2014 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.
- -->
-
-<!--
- Testing transformations for transitioning between overhead and
- perspective projections of two layers.
- -->
-<html>
-<head>
- <meta charset="utf-8">
- <title>Layer Transformations</title>
-
- <script src="../tp/d3.js"></script>
- <script src="../tp/jquery-2.1.1.min.js"></script>
-
- <style>
- html,
- body {
- background-color: #ccc;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 9pt;
- }
-
- svg {
- position: absolute;
- background-color: #fff;
- top: 30px;
- left: 60px;
- }
-
- svg text {
- font-size: 3pt;
- }
-
- </style>
-</head>
-<body>
- <svg width="1000px" height="600px" viewBox="0 0 160 120"></svg>
-
- <script>
- (function (){
-
- // Configuration...
- var w = 160,
- h = 120,
- time = 1500;
-
- var pktData = [
- [20,60,'a'],
- [60,20,'b'],
- [100,20,'c'],
- [140,60,'d'],
- [100,100,'e'],
- [60,100,'f'],
- [20,20,'w'],
- [140,20,'x'],
- [20,100,'y'],
- [140,100,'z']
- ],
- optData = [
- [40,40,'p'],
- [120,40,'q'],
- [120,80,'r'],
- [40,80,'s'],
- [20,20,'j'],
- [140,20,'k'],
- [20,100,'l'],
- [140,100,'m']
- ],
- linkData = [
- ['a','p'],
- ['p','b'],
- ['b','c'],
- ['c','q'],
- ['q','d'],
- ['d','r'],
- ['r','e'],
- ['e','f'],
- ['f','s'],
- ['s','a'],
- ['s','q'],
- ['p','r'],
- ['b','f'],
- ['c','e'],
- ['w','j'],
- ['x','k'],
- ['z','m'],
- ['y','l']
- ];
-
- // Transform parameters
- var tf = {
- tt: -.7, // x skew y factor
- xsk: -35, // x skew angle
- ysc: 0.5, // y scale
- ytr: 50, // y translate
- pad: 5
- },
- rectFill = {
- pkt: 'rgba(130,130,170,0.3)',
- opt: 'rgba(170,130,170,0.3)'
- };
-
- // Internal state...
- var nodes = [],
- links = [],
- overhead = true,
- xffn;
-
- // D3/DOM magic...
- var svg = d3.select('svg'),
- nodeG,
- linkG,
- node,
- link,
- force,
- pktLayer,
- optLayer;
-
-
- // General functions ...
- function isF(f) {
- return $.isFunction(f) ? f : null;
- }
-
- function translate(x,y) {
- return 'translate(' + x + ',' + y + ')';
- }
-
- function scale(x,y) {
- return 'scale(' + x + ',' + y + ')';
- }
- function skewX(x) {
- return 'skewX(' + x + ')';
- }
-
-
- // Key Bindings...
- var keyHandler = {
- T: transform
- };
-
- function whatKey(code) {
- switch (code) {
- case 13: return 'enter';
- case 16: return 'shift';
- case 17: return 'ctrl';
- case 18: return 'alt';
- case 27: return 'esc';
- case 32: return 'space';
- case 37: return 'leftArrow';
- case 38: return 'upArrow';
- case 39: return 'rightArrow';
- case 40: return 'downArrow';
- case 91: return 'cmdLeft';
- case 93: return 'cmdRight';
- case 187: return 'equals';
- case 189: return 'dash';
- case 191: return 'slash';
- default:
- if ((code >= 48 && code <= 57) ||
- (code >= 65 && code <= 90)) {
- return String.fromCharCode(code);
- } else if (code >= 112 && code <= 123) {
- return 'F' + (code - 111);
- }
- return '.';
- }
- }
-
- function keyIn() {
- var event = d3.event,
- keyCode = event.keyCode,
- key = whatKey(keyCode),
- fn = isF(keyHandler[key]);
- if (fn) {
- fn(key, keyCode, event);
- }
- }
-
- // Key events....
- function transform() {
- overhead = !overhead;
- if (overhead) {
- toOverhead();
- } else {
- toOblique();
- }
- }
-
- function toOverhead() {
- xffn = null;
- hidePlane(pktLayer);
- hidePlane(optLayer);
- transitionNodes();
- }
-
- function padBox(box, p) {
- box.x -= p;
- box.y -= p;
- box.width += p*2;
- box.height += p*2;
- }
-
- function toOblique() {
- var box = nodeG.node().getBBox();
- padBox(box, tf.pad);
-
- xffn = function (xy, dir) {
- var x = xy.x + xy.y*tf.tt,
- y = xy.y*tf.ysc + tf.ysc*tf.ytr*dir;
- return { x: x, y: y};
- };
-
- showPlane(pktLayer, box, -1);
- showPlane(optLayer, box, 1);
- transitionNodes();
- }
-
- function transitionNodes() {
- // note: turn off force layout while transitioning.. if it is on
-// force.stop();
-
- if (xffn) {
- nodes.forEach(function (d) {
- var dir = d.type === 'pkt' ? -1 : 1,
- oldxy = {x: d.x, y: d.y},
- coords = xffn(oldxy, dir);
- d.oldxy = oldxy;
- d.x = coords.x;
- d.y = coords.y;
- });
- } else {
- nodes.forEach(function (d) {
- d.x = d.oldxy.x;
- d.y = d.oldxy.y;
- delete d.oldxy;
- });
- }
-
- nodeG.selectAll('.node')
- .transition()
- .duration(time)
- .attr({
- transform: function (d) {
- return translate(d.x, d.y);
- }
- });
-
- linkG.selectAll('.link')
- .transition()
- .duration(time)
- .attr({
- x1: function (d) { return d.source.x; },
- y1: function (d) { return d.source.y; },
- x2: function (d) { return d.target.x; },
- y2: function (d) { return d.target.y; }
- });
- }
-
- function showPlane(layer, box, dir) {
- layer.select('rect')
- .attr(box)
- .attr('opacity', 0)
- .transition()
- .duration(time)
- .attr('opacity', 1)
- .attr('transform', obliqueXform(dir));
- }
-
- function hidePlane(layer) {
- var rect = layer.select('rect');
- rect.transition()
- .duration(time)
- .attr('opacity', 0)
- .attr('transform', overheadXform());
-
- }
-
- function obliqueXform(dir) {
- return scale(1, tf.ysc) + translate(0, dir * tf.ytr) + skewX(tf.xsk);
- }
-
-
- function overheadXform() {
- return skewX(0) + translate(0,0) + scale(1,1);
- }
-
- // Nodes and Links...
- function prepareNodes() {
- var hw = w/2,
- hh = h/2;
-
- function addNode(t, d) {
- nodes.push({
- type: t,
- x: d[0] - hw,
- y: d[1] - hh,
- id: d[2],
- fixed: true
- });
- }
-
- optData.forEach(function (d) {
- addNode('opt', d);
- });
- pktData.forEach(function (d) {
- addNode('pkt', d);
- });
- }
-
- function findNode(id) {
- for (var i=0,n=nodes.length; i<n; i++) {
- if (nodes[i].id === id) {
- return nodes[i];
- }
- }
- return null;
- }
-
- function prepareLinks() {
- linkData.forEach(function (d) {
- var src = d[0],
- dst = d[1];
- links.push({
- id: src + '-' + dst,
- source: findNode(src),
- target: findNode(dst)
- });
- });
-
- }
-
- function updateNodes() {
- node = nodeG.selectAll('.node')
- .data(nodes, function (d) { return d.id; });
-
- var entering = node.enter()
- .append('g').attr({
- id: function (d) { return d.id; },
- 'class': function (d) { return 'node ' + d.type; }
- });
-
- entering.each(function (d) {
- var el = d3.select(this);
- d.el = el;
-
- el.append('rect').attr({
- width: 5,
- height: 5,
- fill: function (d) {
- return d.type === 'pkt' ? '#669' : '#969';
- },
- rx: 1,
- transform: 'translate(-2.5,-2.5)'
- });
- el.append('text')
- .text(d.id)
- .attr({
- dy: '0.9em',
- 'text-anchor': 'middle',
- transform: 'translate(0,-2.5)',
- fill: 'white'
- });
- });
- }
-
- function updateLinks() {
- link = linkG.selectAll('.link')
- .data(links, function (d) { return d.id; });
-
- var entering = link.enter()
- .append('line').attr({
- id: function (d) { return d.id; },
- class: 'link',
- stroke: '#888',
- 'stroke-width': 0.4,
- opacity: 0.7
- });
-
- entering.each(function (d) {
- d.el = d3.select(this);
-
- });
- }
-
- function update() {
- updateNodes();
- updateLinks();
- }
-
- var ntick = 0;
- function tick() {
- console.log('tick ' + (++ntick));
- node.attr({
- transform: function (d) { return translate(d.x, d.y); }
- });
-
- link.attr({
- x1: function (d) { return d.source.x; },
- y1: function (d) { return d.source.y; },
- x2: function (d) { return d.target.x; },
- y2: function (d) { return d.target.y; }
- });
- }
-
- function setOrigin(/*varargs*/) {
- var i, n, g;
- for (i= 0,n=arguments.length; i< n; i++) {
- g = arguments[i];
- g.attr('transform', translate(w/2, h/2));
- }
- }
-
- function initLayers() {
- optLayer.attr('class', 'layer').append('rect')
- .attr('fill', rectFill.opt);
- pktLayer.attr('class', 'layer').append('rect')
- .attr('fill', rectFill.pkt);
- }
-
- function init() {
- svg.append('text')
- .text('Press the "T" key....')
- .attr({ dy: '1.2em', fill: '#999'})
- .style('font-size', '2.4pt')
- .style('font-style', 'italic');
-
- optLayer = svg.append('g').attr('id', 'optLayer');
- pktLayer = svg.append('g').attr('id', 'pktLayer');
- linkG = svg.append('g').attr('id', 'links');
- nodeG = svg.append('g').attr('id', 'nodes');
-
- setOrigin(optLayer, pktLayer, linkG, nodeG);
-
- node = nodeG.selectAll('.node');
- link = linkG.selectAll('.link');
-
- initLayers();
- prepareNodes();
- prepareLinks();
-
- force = d3.layout.force()
- .size([w,h])
- .nodes(nodes)
- .links(links)
- .gravity(0.4)
- .friction(0.7)
- .on('tick', tick);
- update();
- tick();
- d3.select('body').on('keydown', keyIn);
- }
-
- init();
- })();
- </script>
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/onos-logo.svg b/framework/src/onos/web/gui/src/main/webapp/_sdh/onos-logo.svg
deleted file mode 100644
index db4b81a7..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/onos-logo.svg
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 792 612" enable-background="new 0 0 792 612" xml:space="preserve">
-<g>
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="293.4264" y1="313.4543" x2="293.7567" y2="294.5293">
- <stop offset="0" style="stop-color:#007EC5"/>
- <stop offset="1" style="stop-color:#00C0ED"/>
- </linearGradient>
- <path fill="url(#SVGID_1_)" d="M308,377.4c1.7,0,3.2-0.3,4.3-1c1.1-0.6,2-1.4,2.6-2.3c0.6-0.9,1.1-1.9,1.3-3c0.2-1.1,0.3-2.1,0.3-3
- c0-0.9-0.1-1.9-0.3-3c-0.2-1.1-0.7-2.1-1.3-3c-0.6-0.9-1.5-1.7-2.6-2.3c-1.1-0.6-2.6-1-4.3-1h-31c-1.8,0-3.2,0.3-4.3,1
- c-1.1,0.6-2,1.4-2.6,2.3c-0.6,0.9-1.1,1.9-1.3,3c-0.2,1.1-0.3,2.1-0.3,3c0,0.9,0.1,1.9,0.3,3c0.2,1.1,0.7,2.1,1.3,3
- c0.6,0.9,1.5,1.7,2.6,2.3c1.1,0.6,2.5,1,4.3,1H308L308,377.4z M323.7,368c0,1.9-0.3,3.9-1,5.9c-0.6,2-1.6,3.8-2.8,5.4
- c-1.2,1.6-2.7,2.9-4.5,4c-1.7,1-3.7,1.5-5.9,1.5h-35c-2.1-0.1-4-0.7-5.6-1.7c-1.6-1.1-3-2.4-4.2-4c-1.2-1.6-2-3.4-2.6-5.3
- c-0.6-1.9-0.9-3.9-0.9-5.8c0-1.9,0.3-3.9,1-5.9c0.6-2,1.6-3.8,2.8-5.4c1.2-1.6,2.7-2.9,4.5-4c1.7-1,3.7-1.5,5.9-1.5h35
- c2.1,0.1,4,0.7,5.6,1.7c1.6,1,3,2.4,4.2,4c1.2,1.6,2,3.4,2.6,5.3C323.4,364.2,323.7,366.1,323.7,368z"/>
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="364.0253" y1="215.4108" x2="366.8113" y2="55.7995">
- <stop offset="0" style="stop-color:#007EC5"/>
- <stop offset="1" style="stop-color:#00C0ED"/>
- </linearGradient>
- <path fill="url(#SVGID_2_)" d="M383.7,368c0-0.9-0.1-1.9-0.3-3c-0.2-1.1-0.7-2.1-1.3-3c-0.6-0.9-1.5-1.7-2.6-2.3s-2.6-1-4.3-1
- h-27.7c-1.8,0-3.2,0.3-4.3,1c-1.1,0.6-2,1.4-2.6,2.3c-0.6,0.9-1.1,1.9-1.3,3c-0.2,1.1-0.3,2.1-0.3,3v13.1c0,1-0.4,1.9-1.1,2.6
- c-0.7,0.7-1.6,1.1-2.6,1.1c-1,0-1.9-0.4-2.6-1.1c-0.7-0.7-1.1-1.6-1.1-2.6V368c0-1.9,0.3-3.9,1-5.9c0.6-2,1.6-3.8,2.8-5.4
- c1.2-1.6,2.7-2.9,4.5-4c1.7-1,3.7-1.5,5.9-1.5h32.2c2.1,0.1,4,0.7,5.6,1.7c1.6,1,3,2.4,4.2,4c1.2,1.6,2,3.4,2.6,5.3
- c0.6,1.9,0.9,3.9,0.9,5.8v13.1c0,1-0.4,1.9-1.1,2.6c-0.7,0.7-1.6,1.1-2.6,1.1c-1,0-1.9-0.4-2.6-1.1c-0.7-0.7-1.1-1.6-1.1-2.6V368z"
- />
- <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="429.6967" y1="386.7026" x2="430.0228" y2="368.0231">
- <stop offset="0" style="stop-color:#007EC5"/>
- <stop offset="1" style="stop-color:#00C0ED"/>
- </linearGradient>
- <path fill="url(#SVGID_3_)" d="M445.5,377.4c1.7,0,3.2-0.3,4.3-1c1.1-0.6,2-1.4,2.6-2.3c0.6-0.9,1.1-1.9,1.3-3
- c0.2-1.1,0.3-2.1,0.3-3c0-0.9-0.1-1.9-0.3-3c-0.2-1.1-0.7-2.1-1.3-3c-0.6-0.9-1.5-1.7-2.6-2.3c-1.1-0.6-2.6-1-4.3-1h-31
- c-1.8,0-3.2,0.3-4.3,1c-1.1,0.6-2,1.4-2.6,2.3c-0.6,0.9-1.1,1.9-1.3,3c-0.2,1.1-0.3,2.1-0.3,3c0,0.9,0.1,1.9,0.3,3
- c0.2,1.1,0.7,2.1,1.3,3c0.6,0.9,1.5,1.7,2.6,2.3c1.1,0.6,2.5,1,4.3,1H445.5L445.5,377.4z M461.3,368c0,1.9-0.3,3.9-1,5.9
- c-0.6,2-1.6,3.8-2.8,5.4c-1.2,1.6-2.7,2.9-4.5,4c-1.7,1-3.7,1.5-5.9,1.5h-35c-2.1-0.1-4-0.7-5.6-1.7c-1.6-1.1-3-2.4-4.2-4
- c-1.2-1.6-2-3.4-2.6-5.3c-0.6-1.9-0.9-3.9-0.9-5.8c0-1.9,0.3-3.9,1-5.9c0.6-2,1.6-3.8,2.8-5.4c1.2-1.6,2.7-2.9,4.5-4
- c1.7-1,3.7-1.5,5.9-1.5h35c2.1,0.1,4,0.7,5.6,1.7c1.6,1,3,2.4,4.2,4c1.2,1.6,2,3.4,2.6,5.3C461,364.2,461.3,366.1,461.3,368z"/>
- <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="499.3867" y1="424.4887" x2="499.7166" y2="405.5856">
- <stop offset="0" style="stop-color:#007EC5"/>
- <stop offset="1" style="stop-color:#00C0ED"/>
- </linearGradient>
- <path fill="url(#SVGID_4_)" d="M479.2,371.7c-1.4,0-2.8-0.3-4-0.8c-1.2-0.5-2.3-1.3-3.2-2.2c-0.9-0.9-1.7-2-2.2-3.2
- c-0.5-1.2-0.8-2.6-0.8-4c0-1.4,0.3-2.8,0.8-4c0.5-1.2,1.3-2.3,2.2-3.2c0.9-0.9,2-1.7,3.2-2.2c1.2-0.5,2.6-0.8,4-0.8h46.6
- c1,0,1.9,0.4,2.6,1.1c0.7,0.7,1.1,1.6,1.1,2.6c0,1-0.4,1.9-1.1,2.6c-0.7,0.7-1.6,1.1-2.6,1.1H479c-0.8,0-1.4,0.3-2,0.8
- c-0.6,0.5-0.9,1.2-0.9,2c0,0.8,0.3,1.4,0.9,2c0.6,0.6,1.3,0.8,2,0.8h42.5c1.4,0,2.8,0.3,4,0.8c1.3,0.5,2.3,1.3,3.3,2.2
- c0.9,0.9,1.7,2,2.2,3.3c0.5,1.3,0.8,2.6,0.8,4c0,1.4-0.3,2.8-0.8,4c-0.5,1.2-1.3,2.3-2.2,3.2c-0.9,0.9-2,1.6-3.3,2.2
- c-1.3,0.5-2.6,0.8-4,0.8H475c-1,0-1.9-0.4-2.6-1.1c-0.7-0.7-1.1-1.6-1.1-2.6c0-1,0.4-1.9,1.1-2.6c0.7-0.7,1.6-1.1,2.6-1.1h46.8
- c0.8,0,1.4-0.3,2-0.8c0.6-0.5,0.8-1.2,0.8-2c0-0.8-0.3-1.5-0.8-2.1c-0.6-0.6-1.2-0.8-2-0.8H479.2z"/>
-</g>
-<g>
- <g>
- <path fill="#007EC5" d="M263,404.8c-1.2-1.2-1.8-2.7-1.8-4.6c0-1.9,0.6-3.4,1.8-4.6c1.2-1.2,2.7-1.8,4.5-1.8
- c1.8,0,3.3,0.6,4.5,1.8c1.2,1.2,1.8,2.7,1.8,4.6c0,1.9-0.6,3.4-1.8,4.6c-1.2,1.2-2.7,1.8-4.5,1.8C265.6,406.6,264.1,406,263,404.8
- L263,404.8z M263.7,396.4c-0.9,1-1.4,2.3-1.4,3.8c0,1.5,0.5,2.8,1.4,3.8c0.9,1,2.2,1.5,3.7,1.5c1.6,0,2.8-0.5,3.7-1.5
- c0.9-1,1.4-2.3,1.4-3.8c0-1.5-0.5-2.8-1.4-3.8c-0.9-1-2.2-1.5-3.7-1.5C265.9,394.9,264.7,395.4,263.7,396.4z"/>
- <path fill="#007EC5" d="M276.5,410.2v-11.8h1v1.4h0c0.3-0.5,0.7-0.9,1.3-1.2c0.6-0.3,1.2-0.4,1.8-0.4c1.2,0,2.2,0.4,3,1.2
- c0.8,0.8,1.2,1.8,1.2,3c0,1.2-0.4,2.2-1.2,3c-0.8,0.8-1.8,1.2-3,1.2c-0.6,0-1.3-0.1-1.8-0.4c-0.6-0.3-1-0.7-1.3-1.2h0v5.3H276.5
- L276.5,410.2z M278.4,400c-0.6,0.6-1,1.4-1,2.3c0,0.9,0.3,1.6,1,2.3c0.6,0.6,1.4,0.9,2.3,0.9c0.9,0,1.7-0.3,2.3-0.9
- c0.6-0.6,0.9-1.4,0.9-2.3c0-0.9-0.3-1.7-0.9-2.3c-0.6-0.6-1.3-0.9-2.3-0.9C279.8,399.1,279,399.4,278.4,400z"/>
- <path fill="#007EC5" d="M294.1,404.1l0.8,0.6c-0.8,1.1-1.9,1.7-3.4,1.7c-1.2,0-2.2-0.4-2.9-1.2c-0.7-0.8-1.1-1.8-1.1-3
- c0-1.2,0.4-2.2,1.1-3c0.7-0.8,1.7-1.2,2.8-1.2c1.2,0,2.1,0.4,2.7,1.1c0.7,0.7,1,1.6,1,2.6v0.7h-6.6c0,0.2,0,0.4,0.1,0.6
- c0.1,0.2,0.1,0.5,0.3,0.8c0.1,0.3,0.3,0.5,0.5,0.8c0.2,0.2,0.5,0.4,0.9,0.6c0.4,0.2,0.8,0.2,1.2,0.2c0.5,0,1-0.1,1.5-0.4
- C293.5,404.9,293.8,404.6,294.1,404.1L294.1,404.1z M288.5,401.6h5.6c0-0.7-0.3-1.3-0.8-1.8c-0.5-0.5-1.2-0.8-1.9-0.8
- c-0.5,0-1,0.1-1.4,0.3c-0.4,0.2-0.7,0.5-0.9,0.8c-0.2,0.3-0.3,0.6-0.4,0.8C288.5,401.3,288.5,401.5,288.5,401.6z"/>
- <path fill="#007EC5" d="M298.1,406.3v-5.7c0-0.2,0-0.6,0-1.2c0-0.6,0-0.9,0-1.1h1c0,0.8,0,1.3,0.1,1.4h0.1
- c0.2-0.5,0.6-0.8,1.1-1.1c0.5-0.3,1-0.5,1.7-0.5c2,0,3,1.1,3,3.4v4.7h-1v-4.7c0-1.7-0.7-2.5-2-2.5c-0.8,0-1.5,0.3-2,0.8
- c-0.5,0.6-0.8,1.4-0.8,2.4v3.9H298.1z"/>
- </g>
- <g>
- <polygon fill="#007EC5" points="313.1,406.3 313.1,394.2 314.5,394.2 321.9,404.8 321.9,404.8 321.9,394.2 323.1,394.2
- 323.1,406.3 321.6,406.3 314.2,395.7 314.2,395.7 314.2,406.3 "/>
- <path fill="#007EC5" d="M333,404.1l0.8,0.6c-0.8,1.1-1.9,1.7-3.4,1.7c-1.2,0-2.2-0.4-2.9-1.2c-0.7-0.8-1.1-1.8-1.1-3
- c0-1.2,0.4-2.2,1.1-3c0.7-0.8,1.7-1.2,2.8-1.2c1.2,0,2.1,0.4,2.7,1.1c0.7,0.7,1,1.6,1,2.6v0.7h-6.6c0,0.2,0,0.4,0.1,0.6
- c0.1,0.2,0.1,0.5,0.3,0.8c0.1,0.3,0.3,0.5,0.5,0.8c0.2,0.2,0.5,0.4,0.9,0.6c0.4,0.2,0.8,0.2,1.2,0.2c0.5,0,1-0.1,1.5-0.4
- C332.4,404.9,332.8,404.6,333,404.1L333,404.1z M327.4,401.6h5.6c0-0.7-0.3-1.3-0.8-1.8c-0.5-0.5-1.2-0.8-1.9-0.8
- c-0.5,0-1,0.1-1.4,0.3c-0.4,0.2-0.7,0.5-0.9,0.8c-0.2,0.3-0.3,0.6-0.4,0.8C327.4,401.3,327.4,401.5,327.4,401.6z"/>
- <path fill="#007EC5" d="M340.9,398.4v0.9h-2.3v5.1c0,0.4,0.1,0.6,0.3,0.8c0.2,0.2,0.5,0.3,0.8,0.3c0.4,0,0.7-0.1,1.2-0.3l0.1,0.9
- c-0.5,0.2-0.9,0.3-1.3,0.3c-0.7,0-1.2-0.2-1.5-0.6c-0.3-0.4-0.5-0.9-0.5-1.5v-5.1h-1.7v-0.9h1.7v-2.3h1v2.3H340.9z"/>
- <polygon fill="#007EC5" points="344.8,406.3 342.3,398.4 343.5,398.4 345.4,405 345.4,405 347.6,398.4 348.6,398.4 350.9,405
- 351,405 352.8,398.4 353.9,398.4 351.5,406.3 350.5,406.3 348.1,399.8 348.1,399.8 345.9,406.3 "/>
- <path fill="#007EC5" d="M356.9,405.3c-0.8-0.8-1.2-1.8-1.2-3c0-1.2,0.4-2.2,1.2-3c0.8-0.8,1.8-1.2,3-1.2c1.2,0,2.2,0.4,3,1.2
- c0.8,0.8,1.2,1.8,1.2,3c0,1.2-0.4,2.2-1.2,3c-0.8,0.8-1.8,1.2-3,1.2C358.7,406.5,357.7,406.1,356.9,405.3L356.9,405.3z M357.7,400
- c-0.6,0.6-0.9,1.4-0.9,2.3c0,0.9,0.3,1.7,0.9,2.3c0.6,0.6,1.3,0.9,2.3,0.9c0.9,0,1.7-0.3,2.3-0.9c0.6-0.6,0.9-1.4,0.9-2.3
- c0-0.9-0.3-1.7-0.9-2.3c-0.6-0.6-1.3-0.9-2.3-0.9C359,399.1,358.2,399.4,357.7,400z"/>
- <path fill="#007EC5" d="M367.1,406.3v-5.7c0-0.2,0-0.6,0-1.2c0-0.6,0-0.9,0-1.1h1c0,0.8,0,1.3,0.1,1.4c0.6-1.1,1.4-1.6,2.5-1.6
- c0.2,0,0.4,0,0.6,0.1l-0.1,1c-0.1,0-0.3-0.1-0.4-0.1c-0.9,0-1.5,0.3-1.9,0.8c-0.4,0.5-0.6,1.2-0.6,2v4.3H367.1z"/>
- <polygon fill="#007EC5" points="373.5,406.3 373.5,393.3 374.5,393.3 374.5,402 378.4,398.4 379.9,398.4 375.9,402 380.4,406.3
- 378.9,406.3 374.5,402.1 374.5,406.3 "/>
- </g>
- <g>
- <path fill="#007EC5" d="M388.2,404.8c-1.2-1.2-1.8-2.7-1.8-4.6c0-1.9,0.6-3.4,1.8-4.6c1.2-1.2,2.7-1.8,4.5-1.8
- c1.8,0,3.3,0.6,4.5,1.8c1.2,1.2,1.8,2.7,1.8,4.6c0,1.9-0.6,3.4-1.8,4.6c-1.2,1.2-2.7,1.8-4.5,1.8
- C390.8,406.6,389.3,406,388.2,404.8L388.2,404.8z M388.9,396.4c-0.9,1-1.4,2.3-1.4,3.8c0,1.5,0.5,2.8,1.4,3.8
- c0.9,1,2.2,1.5,3.7,1.5c1.6,0,2.8-0.5,3.7-1.5c0.9-1,1.4-2.3,1.4-3.8c0-1.5-0.5-2.8-1.4-3.8c-0.9-1-2.2-1.5-3.7-1.5
- C391.1,394.9,389.9,395.4,388.9,396.4z"/>
- <path fill="#007EC5" d="M401.7,410.2v-11.8h1v1.4h0c0.3-0.5,0.7-0.9,1.3-1.2c0.6-0.3,1.2-0.4,1.8-0.4c1.2,0,2.2,0.4,3,1.2
- c0.8,0.8,1.2,1.8,1.2,3c0,1.2-0.4,2.2-1.2,3c-0.8,0.8-1.8,1.2-3,1.2c-0.6,0-1.3-0.1-1.8-0.4c-0.6-0.3-1-0.7-1.3-1.2h0v5.3H401.7
- L401.7,410.2z M403.6,400c-0.6,0.6-1,1.4-1,2.3c0,0.9,0.3,1.6,1,2.3c0.6,0.6,1.4,0.9,2.3,0.9c0.9,0,1.7-0.3,2.3-0.9
- c0.6-0.6,0.9-1.4,0.9-2.3c0-0.9-0.3-1.7-0.9-2.3c-0.6-0.6-1.3-0.9-2.3-0.9C405,399.1,404.2,399.4,403.6,400z"/>
- <path fill="#007EC5" d="M419.3,404.1l0.8,0.6c-0.8,1.1-1.9,1.7-3.4,1.7c-1.2,0-2.2-0.4-2.9-1.2c-0.7-0.8-1.1-1.8-1.1-3
- c0-1.2,0.4-2.2,1.1-3s1.7-1.2,2.8-1.2c1.2,0,2.1,0.4,2.7,1.1c0.7,0.7,1,1.6,1,2.6v0.7h-6.6c0,0.2,0,0.4,0.1,0.6
- c0.1,0.2,0.1,0.5,0.3,0.8c0.1,0.3,0.3,0.5,0.5,0.8c0.2,0.2,0.5,0.4,0.9,0.6c0.4,0.2,0.8,0.2,1.2,0.2c0.5,0,1-0.1,1.5-0.4
- C418.7,404.9,419,404.6,419.3,404.1L419.3,404.1z M413.7,401.6h5.6c0-0.7-0.3-1.3-0.8-1.8c-0.5-0.5-1.2-0.8-1.9-0.8
- c-0.5,0-1,0.1-1.4,0.3c-0.4,0.2-0.7,0.5-0.9,0.8c-0.2,0.3-0.3,0.6-0.4,0.8C413.7,401.3,413.7,401.5,413.7,401.6z"/>
- <path fill="#007EC5" d="M423.3,406.3v-5.7c0-0.2,0-0.6,0-1.2c0-0.6,0-0.9,0-1.1h1c0,0.8,0,1.3,0.1,1.4c0.6-1.1,1.4-1.6,2.5-1.6
- c0.2,0,0.4,0,0.6,0.1l-0.1,1c-0.1,0-0.3-0.1-0.4-0.1c-0.9,0-1.5,0.3-1.9,0.8c-0.4,0.5-0.6,1.2-0.6,2v4.3H423.3z"/>
- <path fill="#007EC5" d="M435.9,401v1.9c0,1.4,0.1,2.5,0.2,3.3h-1c-0.1-0.4-0.1-0.8-0.1-1.3h0c-0.6,1-1.5,1.5-2.8,1.5
- c-0.8,0-1.4-0.2-2-0.6c-0.5-0.4-0.8-1-0.8-1.8c0-1.8,1.5-2.7,4.4-2.7h1.2V401c0-0.6-0.2-1.1-0.6-1.4c-0.4-0.3-0.9-0.5-1.6-0.5
- c-0.9,0-1.7,0.3-2.4,0.9l-0.6-0.7c0.4-0.3,0.8-0.6,1.4-0.8c0.6-0.2,1.1-0.3,1.6-0.3c1,0,1.8,0.2,2.3,0.7
- C435.6,399.3,435.9,400,435.9,401L435.9,401z M434.9,402.3h-1.1c-1,0-1.8,0.1-2.4,0.4c-0.7,0.3-1,0.7-1,1.4c0,0.5,0.2,0.8,0.5,1.1
- c0.4,0.3,0.8,0.4,1.2,0.4c1,0,1.7-0.3,2.1-0.8c0.4-0.5,0.6-1.2,0.6-1.9V402.3z"/>
- <path fill="#007EC5" d="M443.2,398.4v0.9h-2.3v5.1c0,0.4,0.1,0.6,0.3,0.8c0.2,0.2,0.5,0.3,0.8,0.3c0.4,0,0.7-0.1,1.2-0.3l0.1,0.9
- c-0.5,0.2-0.9,0.3-1.3,0.3c-0.7,0-1.2-0.2-1.5-0.6c-0.3-0.4-0.5-0.9-0.5-1.5v-5.1h-1.7v-0.9h1.7v-2.3h1v2.3H443.2z"/>
- <path fill="#007EC5" d="M445.9,406.3v-7.9h1v7.9H445.9L445.9,406.3z M445.9,395.8c-0.1-0.1-0.2-0.3-0.2-0.5c0-0.2,0.1-0.4,0.2-0.5
- c0.1-0.1,0.3-0.2,0.5-0.2c0.2,0,0.4,0.1,0.5,0.2c0.1,0.1,0.2,0.3,0.2,0.5c0,0.2-0.1,0.4-0.2,0.5c-0.1,0.1-0.3,0.2-0.5,0.2
- C446.2,396,446,395.9,445.9,395.8z"/>
- <path fill="#007EC5" d="M450.6,406.3v-5.7c0-0.2,0-0.6,0-1.2c0-0.6,0-0.9,0-1.1h1c0,0.8,0,1.3,0.1,1.4h0.1
- c0.2-0.5,0.6-0.8,1.1-1.1c0.5-0.3,1-0.5,1.7-0.5c2,0,3,1.1,3,3.4v4.7h-1v-4.7c0-1.7-0.7-2.5-2-2.5c-0.8,0-1.5,0.3-2,0.8
- c-0.5,0.6-0.8,1.4-0.8,2.4v3.9H450.6z"/>
- <path fill="#007EC5" d="M468.7,398.4v7.4c0,0.8-0.1,1.4-0.3,2c-0.2,0.6-0.4,1-0.7,1.3c-0.3,0.3-0.6,0.6-1,0.8
- c-0.4,0.2-0.8,0.3-1.1,0.4c-0.3,0.1-0.7,0.1-1.1,0.1c-0.8,0-1.6-0.1-2.3-0.4c-0.7-0.3-1.3-0.7-1.7-1.2l0.8-0.8
- c0.7,1,1.7,1.5,3.1,1.5c2.1,0,3.2-1.2,3.2-3.6v-1.1h0c-0.6,1-1.6,1.5-3,1.5c-1.2,0-2.2-0.4-3-1.2c-0.8-0.8-1.2-1.7-1.2-2.9
- c0-1.1,0.4-2.1,1.2-2.9c0.8-0.8,1.8-1.2,3-1.2c1.3,0,2.3,0.5,3,1.5h0v-1.3H468.7L468.7,398.4z M466.8,404.4
- c0.6-0.6,0.9-1.3,0.9-2.2c0-0.9-0.3-1.6-0.9-2.2c-0.6-0.6-1.3-0.9-2.2-0.9c-0.9,0-1.6,0.3-2.2,0.9c-0.6,0.6-0.9,1.3-0.9,2.2
- c0,0.9,0.3,1.6,0.9,2.2c0.6,0.6,1.3,0.9,2.2,0.9C465.5,405.3,466.2,405,466.8,404.4z"/>
- </g>
- <g>
- <path fill="#007EC5" d="M476,404.7l1.1-0.7c0.6,1,1.5,1.5,2.8,1.5c0.8,0,1.4-0.2,1.9-0.6c0.5-0.4,0.8-1,0.8-1.7
- c0-0.5-0.2-1-0.5-1.3c-0.3-0.3-0.7-0.6-1.2-0.7c-0.5-0.1-1-0.3-1.5-0.5c-0.5-0.2-1-0.4-1.5-0.6c-0.5-0.2-0.8-0.6-1.2-1
- c-0.3-0.5-0.5-1.1-0.5-1.8c0-1,0.4-1.8,1.1-2.4c0.8-0.6,1.7-0.9,2.8-0.9c1.4,0,2.5,0.5,3.3,1.5l-1,0.7c-0.6-0.8-1.4-1.2-2.4-1.2
- c-0.8,0-1.4,0.2-1.9,0.6c-0.5,0.4-0.8,1-0.8,1.7c0,0.5,0.1,0.9,0.3,1.2c0.2,0.3,0.5,0.6,0.9,0.8c0.4,0.2,0.8,0.3,1.2,0.5
- c0.4,0.1,0.9,0.3,1.3,0.4c0.4,0.2,0.9,0.3,1.2,0.6c0.4,0.2,0.7,0.6,0.9,1c0.2,0.4,0.3,0.9,0.3,1.6c0,1-0.4,1.9-1.1,2.5
- c-0.7,0.6-1.6,0.9-2.7,0.9C478.1,406.6,476.8,406,476,404.7z"/>
- <path fill="#007EC5" d="M492.9,398.4l-4.1,10.3c-0.4,1.1-1.2,1.7-2.2,1.7c-0.3,0-0.6-0.1-1-0.2l0.1-1c0.4,0.1,0.7,0.2,0.9,0.2
- c0.3,0,0.6-0.1,0.8-0.4c0.2-0.2,0.4-0.6,0.5-1l0.7-1.8l-3.2-7.9h1.1l2.6,6.7l2.5-6.7H492.9z"/>
- <path fill="#007EC5" d="M494.4,404.9l0.9-0.6c0.2,0.4,0.5,0.7,0.9,1c0.4,0.2,0.9,0.3,1.4,0.3c0.5,0,0.9-0.1,1.3-0.4
- c0.4-0.3,0.5-0.6,0.5-1.1c0-0.4-0.2-0.7-0.5-0.9c-0.3-0.2-0.7-0.4-1.2-0.5c-0.5-0.1-0.9-0.2-1.4-0.3c-0.5-0.1-0.9-0.3-1.2-0.7
- c-0.3-0.3-0.5-0.8-0.5-1.3c0-0.7,0.3-1.3,0.8-1.7c0.5-0.4,1.2-0.6,1.9-0.6c1.4,0,2.3,0.5,2.8,1.5l-0.9,0.5c-0.4-0.7-1-1.1-1.9-1.1
- c-0.4,0-0.8,0.1-1.1,0.3c-0.4,0.2-0.5,0.5-0.5,0.9c0,0.4,0.2,0.7,0.5,0.9c0.3,0.2,0.7,0.3,1.2,0.4c0.5,0.1,0.9,0.2,1.4,0.3
- c0.5,0.1,0.9,0.3,1.2,0.7c0.3,0.3,0.5,0.8,0.5,1.4c0,0.8-0.3,1.4-0.8,1.8c-0.6,0.4-1.2,0.6-2,0.6
- C496.1,406.5,495,405.9,494.4,404.9z"/>
- <path fill="#007EC5" d="M507.2,398.4v0.9h-2.3v5.1c0,0.4,0.1,0.6,0.3,0.8c0.2,0.2,0.5,0.3,0.8,0.3c0.4,0,0.7-0.1,1.2-0.3l0.1,0.9
- c-0.5,0.2-0.9,0.3-1.3,0.3c-0.7,0-1.2-0.2-1.5-0.6c-0.3-0.4-0.5-0.9-0.5-1.5v-5.1h-1.7v-0.9h1.7v-2.3h1v2.3H507.2z"/>
- <path fill="#007EC5" d="M515.9,404.1l0.8,0.6c-0.8,1.1-1.9,1.7-3.4,1.7c-1.2,0-2.2-0.4-2.9-1.2c-0.7-0.8-1.1-1.8-1.1-3
- c0-1.2,0.4-2.2,1.1-3s1.7-1.2,2.8-1.2c1.2,0,2.1,0.4,2.7,1.1c0.7,0.7,1,1.6,1,2.6v0.7h-6.6c0,0.2,0,0.4,0.1,0.6
- c0.1,0.2,0.1,0.5,0.3,0.8c0.1,0.3,0.3,0.5,0.5,0.8c0.2,0.2,0.5,0.4,0.9,0.6c0.4,0.2,0.8,0.2,1.2,0.2c0.5,0,1-0.1,1.5-0.4
- C515.3,404.9,515.7,404.6,515.9,404.1L515.9,404.1z M510.3,401.6h5.6c0-0.7-0.3-1.3-0.8-1.8c-0.5-0.5-1.2-0.8-1.9-0.8
- c-0.5,0-1,0.1-1.4,0.3c-0.4,0.2-0.7,0.5-0.9,0.8c-0.2,0.3-0.3,0.6-0.4,0.8C510.3,401.3,510.3,401.5,510.3,401.6z"/>
- <path fill="#007EC5" d="M520,406.3v-5.7c0-0.2,0-0.6,0-1.2c0-0.6,0-0.9,0-1.1h1c0,0.8,0,1.3,0.1,1.4h0.1c0.2-0.5,0.6-0.8,1.1-1.1
- c0.5-0.3,1-0.5,1.7-0.5c0.5,0,1,0.1,1.5,0.4c0.4,0.3,0.7,0.7,0.9,1.3c0.2-0.6,0.6-1,1.1-1.3c0.5-0.3,1-0.4,1.6-0.4
- c2,0,3,1.1,3,3.4v4.7h-1v-4.7c0-1.7-0.7-2.5-2-2.5c-0.4,0-0.8,0.1-1.2,0.3c-0.3,0.2-0.6,0.4-0.8,0.7c-0.2,0.3-0.3,0.6-0.4,0.9
- c-0.1,0.3-0.1,0.6-0.1,0.9v4.4h-1v-4.8c0-0.8-0.1-1.3-0.4-1.8c-0.3-0.4-0.7-0.6-1.2-0.6c-0.8,0-1.5,0.3-2,0.8
- c-0.5,0.6-0.8,1.4-0.8,2.4v3.9H520z"/>
- </g>
-</g>
-<g>
-
- <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="280.7511" y1="468.8727" x2="530.5958" y2="160.3402" gradientTransform="matrix(-0.9595 0.2818 0.2818 0.9595 742.5177 -113.6192)">
- <stop offset="0" style="stop-color:#C6262F"/>
- <stop offset="1.288056e-03" style="stop-color:#C6262F"/>
- <stop offset="0.3136" style="stop-color:#D64B43"/>
- <stop offset="0.5951" style="stop-color:#E26255"/>
- <stop offset="0.8334" style="stop-color:#EA6F61"/>
- <stop offset="1" style="stop-color:#ED7466"/>
- </linearGradient>
- <path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_5_)" d="M427.7,300.4c-6.9,0.6-13.1,5-19.2,7.1
- c-18.1,6.2-33.9,9.1-56.5,4.7c24.6,17.2,36.6,13,63.7,0.1c-0.5,0.6-0.7,1.3-1.3,1.9c1.4-0.4,2.4-1.7,3.4-2.2
- c-0.4,0.7-0.9,1.5-1.4,1.9c2.2-0.6,3.7-2.3,5.9-3.9c-2.4,2.1-4.2,5-6,8c-1.5,2.5-3.1,4.8-5.1,6.9c-1,1-1.9,1.9-2.9,2.9
- c-1.4,1.3-2.9,2.5-5.1,2.9c1.7,0.1,3.6-0.3,6.5-1.9c-1.6,2.4-7.1,6.2-9.9,7.2c10.5-2.6,19.2-15.9,25.7-18
- c18.3-5.9,13.8-3.4,27-14.2c1.6-1.3,3-1,5.1-0.8c1.1,0.1,2.1,0.3,3.2,0.5c0.8,0.2,1.4,0.4,2.2,0.8l1.8,0.9c-1.9-4.5-2.3-4.1-5.9-6
- c-2.3-1.3-3.3-3.8-6.2-4.9c-7.1-2.6-11.9,11.7-11.7-5c0.1-8,4.2-14.4,6.4-22c1.1-3.8,2.3-7.6,2.4-11.5c0.1-2.3,0-4.7-0.4-7
- c-2-11.2-8.4-21.5-19.7-24.8c-1-0.3-1.1-0.3-0.9,0c9.6,17.1,7.2,38.3,3.1,54.2C429.9,285.5,426.7,293.2,427.7,300.4z"/>
- <path fill-rule="evenodd" clip-rule="evenodd" fill="#E6E7E8" d="M344.4,311.8c7.1,4.9,15,9.5,23.8,10.7
- c-8.3-0.4-16.6-3.8-27.3-11.3C342,311.4,343.2,311.6,344.4,311.8z"/>
-</g>
-</svg>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/AppUiTopoOverlay.java b/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/AppUiTopoOverlay.java
deleted file mode 100644
index c6d00cc0..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/AppUiTopoOverlay.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.
- *
- */
-
-package org.meowster.over;
-
-import org.onosproject.ui.UiTopoOverlay;
-import org.onosproject.ui.topo.ButtonId;
-import org.onosproject.ui.topo.PropertyPanel;
-import org.onosproject.ui.topo.TopoConstants.CoreButtons;
-import org.onosproject.ui.topo.TopoConstants.Glyphs;
-
-import static org.onosproject.ui.topo.TopoConstants.Properties.*;
-
-/**
- * Our topology overlay.
- */
-public class AppUiTopoOverlay extends UiTopoOverlay {
-
- // NOTE: this must match the ID defined in topov.js
- private static final String OVERLAY_ID = "meowster-overlay";
-
- private static final String MY_TITLE = "I changed the title";
- private static final String MY_VERSION = "Beta-1.0.0042";
-
- private static final ButtonId FOO_BUTTON = new ButtonId("foo");
- private static final ButtonId BAR_BUTTON = new ButtonId("bar");
-
- public AppUiTopoOverlay() {
- super(OVERLAY_ID);
- }
-
-
- @Override
- public void modifySummary(PropertyPanel pp) {
- pp.title("My App Rocks!")
- .typeId(Glyphs.CROWN)
- .removeProps(
- TOPOLOGY_SSCS,
- INTENTS,
- TUNNELS,
- FLOWS,
- VERSION
- )
- .addProp(VERSION, MY_VERSION);
-
- }
-
- @Override
- public void modifyDeviceDetails(PropertyPanel pp) {
- pp.title(MY_TITLE);
- pp.removeProps(LATITUDE, LONGITUDE);
-
- pp.addButton(FOO_BUTTON)
- .addButton(BAR_BUTTON);
-
- pp.removeButtons(CoreButtons.SHOW_PORT_VIEW)
- .removeButtons(CoreButtons.SHOW_GROUP_VIEW);
- }
-
-}
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/README.txt b/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/README.txt
deleted file mode 100644
index d7dcbecd..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-NOTE:
-
-This directory is putting under revision control some key files from
-an example stand-alone app, as I develop the topology overlay functionality.
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/topov.js b/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/topov.js
deleted file mode 100644
index 068c30c5..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/overlaywork/topov.js
+++ /dev/null
@@ -1,157 +0,0 @@
-// sample topology overlay - client side
-(function () {
- 'use strict';
-
- // injected refs
- var $log, tov;
-
- // internal state
- var someStateValue = true;
-
- // our overlay definition
- var overlay = {
- // NOTE: this must match the ID defined in AppUiTopoOverlay
- overlayId: 'meowster-overlay',
- glyphId: '*star4',
- tooltip: 'Sample Meowster Topo Overlay',
-
- // These glyphs get installed using the overlayId as a prefix.
- // e.g. 'star4' is installed as 'meowster-overlay-star4'
- // They can be referenced (from this overlay) as '*star4'
- // That is, the '*' prefix stands in for 'meowster-overlay-'
- glyphs: {
- star4: {
- vb: '0 0 8 8',
- d: 'M1,4l2,-1l1,-2l1,2l2,1l-2,1l-1,2l-1,-2z'
- },
- banner: {
- vb: '0 0 6 6',
- d: 'M1,1v4l2,-2l2,2v-4z'
- }
- },
-
- activate: function () {
- $log.debug("sample topology overlay ACTIVATED");
- },
- deactivate: function () {
- $log.debug("sample topology overlay DEACTIVATED");
- },
-
-
-
-
-
- // detail panel button definitions
- buttons: {
- foo: {
- gid: 'chain',
- tt: 'A FOO action',
- cb: function (data) {
- $log.debug('FOO action invoked with data:', data);
- }
- },
- bar: {
- gid: '*banner',
- tt: 'A BAR action',
- cb: function (data) {
- $log.debug('BAR action invoked with data:', data);
- }
- }
- },
-
- // Key bindings for traffic overlay buttons
- // NOTE: fully qual. button ID is derived from overlay-id and key-name
- keyBindings: {
- V: {
- cb: buttonCallback,
- tt: 'Uses the V key',
- gid: '*banner'
- },
- F: {
- cb: buttonCallback,
- tt: 'Uses the F key',
- gid: 'chain'
- },
- G: {
- cb: buttonCallback,
- tt: 'Uses the G key',
- gid: 'crown'
- },
-
- T: {
- cb: buttonCallback,
- tt: 'Uses the T key',
- gid: 'switch'
- },
-
- R: {
- cb: buttonCallback,
- tt: 'Uses the R key',
- gid: 'endstation'
- },
-
- 0: {
- cb: buttonCallback,
- tt: 'Uses the ZERO key',
- gid: 'xMark'
- },
-
- _keyOrder: [
- '0', 'V', 'F', 'G', 'T', 'R'
- ]
-
- // NOTE: T and R should be rejected (not installed)
- // T is reserved for 'toggle Theme'
- // R is reserved for 'Reset pan and zoom'
- },
-
- hooks: {
- // hook for handling escape key
- // Must return true to consume ESC, false otherwise.
- escape: cancelState,
-
- // hooks for when the selection changes...
- empty: function () {
- selectionCallback('empty');
- },
- single: function (data) {
- selectionCallback('single', data);
- },
- multi: function (selectOrder) {
- selectionCallback('multi', selectOrder);
- tov.addDetailButton('foo');
- tov.addDetailButton('bar');
- }
- }
-
- };
-
- // invoked when the escape key is pressed
- function cancelState() {
- if (someStateValue) {
- someStateValue = false;
- // we consumed the ESC event
- return true;
- }
- return false;
- }
-
- function buttonCallback(x) {
- $log.debug('Toolbar-button callback', x);
- }
-
- function selectionCallback(x, d) {
- $log.debug('Selection callback', x, d);
- }
-
- // invoke code to register with the overlay service
- angular.module('ovSample')
- .run(['$log', 'TopoOverlayService',
-
- function (_$log_, _tov_) {
- $log = _$log_;
- tov = _tov_;
- tov.register(overlay);
- }]);
-
-}());
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/countrycodes.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/countrycodes.html
deleted file mode 100644
index 246d9e4c..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/countrycodes.html
+++ /dev/null
@@ -1,376 +0,0 @@
-<!DOCTYPE html>
-<!--
- *
- * 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.
- *
--->
-<html lang="en">
-<head>
- <title>2-Letter, 3-Letter, Country Codes for All Countries in the World</title>
- <meta charset="utf-8">
- <script charset="utf-8" src="../../tp/jquery-2.1.1.min.js"></script>
-</head>
-<body>
-
-<style type="text/css" scoped>
- body {
- font-family: Helvetica Neue, Helvetica, Arial, sans-serif ;
- background-color: #eef;
- }
- .mainContent {
- margin: auto;
- width: 800px;
- background-color: #ddf;
- padding: 8px;
- }
-
- table {
- margin: auto;
- }
- th {
- font-style: italic;
- text-align: left;
- background-color: #aad;
- color: #66c;
- padding: 4px;
- }
- td {
- padding: 4px;
- }
- td.code {
- font-family: monospace;
- font-size: 120%;
- }
- td.num {
- text-align: right;
- }
- tr:nth-child(even) {
- background-color: #dde;
- }
- tr:nth-child(odd) {
- background-color: #eef;
- }
-
-</style>
-
-<div class="content">
- <div class="mainContent">
- <div class="miscTxt">
- <header>
- <h1>Complete List of Country Codes </h1>
- </header>
- <p>
- The 2-letter codes shown below are supplied by the ISO
- (<i>International Organization for Standardization</i>).
- It bases its list of country names and abbreviations on
- the list of names published by the United Nations.
- The UN also uses 3-letter codes, and numerical codes
- to identify nations.
- </p>
-
- <table>
- <thead>
- <tr>
- <th> Country </th>
- <th> A2 (ISO) </th>
- <th> A3 (UN) </th>
- <th> NUM (UN) </th>
- </tr>
- </thead>
- <tbody id="codes-body">
- </tbody>
- </table>
- </div>
- </div>
-</div>
-
-<script type="text/javascript">
-
- var data = [
- [ 'Afghanistan', 'AF', 'AFG', 4 ],
- [ 'Albania', 'AL', 'ALB', 8 ],
- [ 'Algeria', 'DZ', 'DZA', 12 ],
- [ 'American Samoa', 'AS', 'ASM', 16 ],
- [ 'Andorra', 'AD', 'AND', 20 ],
- [ 'Angola', 'AO', 'AGO', 24 ],
- [ 'Anguilla', 'AI', 'AIA', 660 ],
- [ 'Antarctica', 'AQ', 'ATA', 10 ],
- [ 'Antigua and Barbuda', 'AG', 'ATG', 28 ],
- [ 'Argentina', 'AR', 'ARG', 32 ],
- [ 'Armenia', 'AM', 'ARM', 51 ],
- [ 'Aruba', 'AW', 'ABW', 533 ],
- [ 'Australia', 'AU', 'AUS', 36 ],
- [ 'Austria', 'AT', 'AUT', 40 ],
- [ 'Azerbaijan', 'AZ', 'AZE', 31 ],
- [ 'Bahamas', 'BS', 'BHS', 44 ],
- [ 'Bahrain', 'BH', 'BHR', 48 ],
- [ 'Bangladesh', 'BD', 'BGD', 50 ],
- [ 'Barbados', 'BB', 'BRB', 52 ],
- [ 'Belarus', 'BY', 'BLR', 112 ],
- [ 'Belgium', 'BE', 'BEL', 56 ],
- [ 'Belize', 'BZ', 'BLZ', 84 ],
- [ 'Benin', 'BJ', 'BEN', 204 ],
- [ 'Bermuda', 'BM', 'BMU', 60 ],
- [ 'Bhutan', 'BT', 'BTN', 64 ],
- [ 'Bolivia', 'BO', 'BOL', 68 ],
- [ 'Bonaire', 'BQ', 'BES', 535 ],
- [ 'Bosnia and Herzegovina', 'BA', 'BIH', 70 ],
- [ 'Botswana', 'BW', 'BWA', 72 ],
- [ 'Bouvet Island', 'BV', 'BVT', 74 ],
- [ 'Brazil', 'BR', 'BRA', 76 ],
- [ 'British Indian Ocean Territory', 'IO', 'IOT', 86 ],
- [ 'Brunei Darussalam', 'BN', 'BRN', 96 ],
- [ 'Bulgaria', 'BG', 'BGR', 100 ],
- [ 'Burkina Faso', 'BF', 'BFA', 854 ],
- [ 'Burundi', 'BI', 'BDI', 108 ],
- [ 'Cambodia', 'KH', 'KHM', 116 ],
- [ 'Cameroon', 'CM', 'CMR', 120 ],
- [ 'Canada', 'CA', 'CAN', 124 ],
- [ 'Cape Verde', 'CV', 'CPV', 132 ],
- [ 'Cayman Islands', 'KY', 'CYM', 136 ],
- [ 'Central African Republic', 'CF', 'CAF', 140 ],
- [ 'Chad', 'TD', 'TCD', 148 ],
- [ 'Chile', 'CL', 'CHL', 152 ],
- [ 'China', 'CN', 'CHN', 156 ],
- [ 'Christmas Island', 'CX', 'CXR', 162 ],
- [ 'Cocos (Keeling) Islands', 'CC', 'CCK', 166 ],
- [ 'Colombia', 'CO', 'COL', 170 ],
- [ 'Comoros', 'KM', 'COM', 174 ],
- [ 'Congo', 'CG', 'COG', 178 ],
- [ 'Democratic Republic of the Congo', 'CD', 'COD', 180 ],
- [ 'Cook Islands', 'CK', 'COK', 184 ],
- [ 'Costa Rica', 'CR', 'CRI', 188 ],
- [ 'Croatia', 'HR', 'HRV', 191 ],
- [ 'Cuba', 'CU', 'CUB', 192 ],
- [ 'Curaçao', 'CW', 'CUW', 531 ],
- [ 'Cyprus', 'CY', 'CYP', 196 ],
- [ 'Czech Republic', 'CZ', 'CZE', 203 ],
- [ 'Côte dIvoire', 'CI', 'CIV', 384 ],
- [ 'Denmark', 'DK', 'DNK', 208 ],
- [ 'Djibouti', 'DJ', 'DJI', 262 ],
- [ 'Dominica', 'DM', 'DMA', 212 ],
- [ 'Dominican Republic', 'DO', 'DOM', 214 ],
- [ 'Ecuador', 'EC', 'ECU', 218 ],
- [ 'Egypt', 'EG', 'EGY', 818 ],
- [ 'El Salvador', 'SV', 'SLV', 222 ],
- [ 'Equatorial Guinea', 'GQ', 'GNQ', 226 ],
- [ 'Eritrea', 'ER', 'ERI', 232 ],
- [ 'Estonia', 'EE', 'EST', 233 ],
- [ 'Ethiopia', 'ET', 'ETH', 231 ],
- [ 'Falkland Islands (Malvinas)', 'FK', 'FLK', 238 ],
- [ 'Faroe Islands', 'FO', 'FRO', 234 ],
- [ 'Fiji', 'FJ', 'FJI', 242 ],
- [ 'Finland', 'FI', 'FIN', 246 ],
- [ 'France', 'FR', 'FRA', 250 ],
- [ 'French Guiana', 'GF', 'GUF', 254 ],
- [ 'French Polynesia', 'PF', 'PYF', 258 ],
- [ 'French Southern Territories', 'TF', 'ATF', 260 ],
- [ 'Gabon', 'GA', 'GAB', 266 ],
- [ 'Gambia', 'GM', 'GMB', 270 ],
- [ 'Georgia', 'GE', 'GEO', 268 ],
- [ 'Germany', 'DE', 'DEU', 276 ],
- [ 'Ghana', 'GH', 'GHA', 288 ],
- [ 'Gibraltar', 'GI', 'GIB', 292 ],
- [ 'Greece', 'GR', 'GRC', 300 ],
- [ 'Greenland', 'GL', 'GRL', 304 ],
- [ 'Grenada', 'GD', 'GRD', 308 ],
- [ 'Guadeloupe', 'GP', 'GLP', 312 ],
- [ 'Guam', 'GU', 'GUM', 316 ],
- [ 'Guatemala', 'GT', 'GTM', 320 ],
- [ 'Guernsey', 'GG', 'GGY', 831 ],
- [ 'Guinea', 'GN', 'GIN', 324 ],
- [ 'Guinea-Bissau', 'GW', 'GNB', 624 ],
- [ 'Guyana', 'GY', 'GUY', 328 ],
- [ 'Haiti', 'HT', 'HTI', 332 ],
- [ 'Heard Island and McDonald Mcdonald Islands', 'HM', 'HMD', 334 ],
- [ 'Holy See (Vatican City State)', 'VA', 'VAT', 336 ],
- [ 'Honduras', 'HN', 'HND', 340 ],
- [ 'Hong Kong', 'HK', 'HKG', 344 ],
- [ 'Hungary', 'HU', 'HUN', 348 ],
- [ 'Iceland', 'IS', 'ISL', 352 ],
- [ 'India', 'IN', 'IND', 356 ],
- [ 'Indonesia', 'ID', 'IDN', 360 ],
- [ 'Iran, Islamic Republic of', 'IR', 'IRN', 364 ],
- [ 'Iraq', 'IQ', 'IRQ', 368 ],
- [ 'Ireland', 'IE', 'IRL', 372 ],
- [ 'Isle of Man', 'IM', 'IMN', 833 ],
- [ 'Israel', 'IL', 'ISR', 376 ],
- [ 'Italy', 'IT', 'ITA', 380 ],
- [ 'Jamaica', 'JM', 'JAM', 388 ],
- [ 'Japan', 'JP', 'JPN', 392 ],
- [ 'Jersey', 'JE', 'JEY', 832 ],
- [ 'Jordan', 'JO', 'JOR', 400 ],
- [ 'Kazakhstan', 'KZ', 'KAZ', 398 ],
- [ 'Kenya', 'KE', 'KEN', 404 ],
- [ 'Kiribati', 'KI', 'KIR', 296 ],
- [ 'Korea, Democratic People\'s Republic of', 'KP', 'PRK', 408 ],
- [ 'Korea, Republic of', 'KR', 'KOR', 410 ],
- [ 'Kuwait', 'KW', 'KWT', 414 ],
- [ 'Kyrgyzstan', 'KG', 'KGZ', 417 ],
- [ 'Lao People\'s Democratic Republic', 'LA', 'LAO', 418 ],
- [ 'Latvia', 'LV', 'LVA', 428 ],
- [ 'Lebanon', 'LB', 'LBN', 422 ],
- [ 'Lesotho', 'LS', 'LSO', 426 ],
- [ 'Liberia', 'LR', 'LBR', 430 ],
- [ 'Libya', 'LY', 'LBY', 434 ],
- [ 'Liechtenstein', 'LI', 'LIE', 438 ],
- [ 'Lithuania', 'LT', 'LTU', 440 ],
- [ 'Luxembourg', 'LU', 'LUX', 442 ],
- [ 'Macao', 'MO', 'MAC', 446 ],
- [ 'Macedonia, the Former Yugoslav Republic of', 'MK', 'MKD', 807 ],
- [ 'Madagascar', 'MG', 'MDG', 450 ],
- [ 'Malawi', 'MW', 'MWI', 454 ],
- [ 'Malaysia', 'MY', 'MYS', 458 ],
- [ 'Maldives', 'MV', 'MDV', 462 ],
- [ 'Mali', 'ML', 'MLI', 466 ],
- [ 'Malta', 'MT', 'MLT', 470 ],
- [ 'Marshall Islands', 'MH', 'MHL', 584 ],
- [ 'Martinique', 'MQ', 'MTQ', 474 ],
- [ 'Mauritania', 'MR', 'MRT', 478 ],
- [ 'Mauritius', 'MU', 'MUS', 480 ],
- [ 'Mayotte', 'YT', 'MYT', 175 ],
- [ 'Mexico', 'MX', 'MEX', 484 ],
- [ 'Micronesia, Federated States of', 'FM', 'FSM', 583 ],
- [ 'Moldova, Republic of', 'MD', 'MDA', 498 ],
- [ 'Monaco', 'MC', 'MCO', 492 ],
- [ 'Mongolia', 'MN', 'MNG', 496 ],
- [ 'Montenegro', 'ME', 'MNE', 499 ],
- [ 'Montserrat', 'MS', 'MSR', 500 ],
- [ 'Morocco', 'MA', 'MAR', 504 ],
- [ 'Mozambique', 'MZ', 'MOZ', 508 ],
- [ 'Myanmar', 'MM', 'MMR', 104 ],
- [ 'Namibia', 'NA', 'NAM', 516 ],
- [ 'Nauru', 'NR', 'NRU', 520 ],
- [ 'Nepal', 'NP', 'NPL', 524 ],
- [ 'Netherlands', 'NL', 'NLD', 528 ],
- [ 'New Caledonia', 'NC', 'NCL', 540 ],
- [ 'New Zealand', 'NZ', 'NZL', 554 ],
- [ 'Nicaragua', 'NI', 'NIC', 558 ],
- [ 'Niger', 'NE', 'NER', 562 ],
- [ 'Nigeria', 'NG', 'NGA', 566 ],
- [ 'Niue', 'NU', 'NIU', 570 ],
- [ 'Norfolk Island', 'NF', 'NFK', 574 ],
- [ 'Northern Mariana Islands', 'MP', 'MNP', 580 ],
- [ 'Norway', 'NO', 'NOR', 578 ],
- [ 'Oman', 'OM', 'OMN', 512 ],
- [ 'Pakistan', 'PK', 'PAK', 586 ],
- [ 'Palau', 'PW', 'PLW', 585 ],
- [ 'Palestine, State of', 'PS', 'PSE', 275 ],
- [ 'Panama', 'PA', 'PAN', 591 ],
- [ 'Papua New Guinea', 'PG', 'PNG', 598 ],
- [ 'Paraguay', 'PY', 'PRY', 600 ],
- [ 'Peru', 'PE', 'PER', 604 ],
- [ 'Philippines', 'PH', 'PHL', 608 ],
- [ 'Pitcairn', 'PN', 'PCN', 612 ],
- [ 'Poland', 'PL', 'POL', 616 ],
- [ 'Portugal', 'PT', 'PRT', 620 ],
- [ 'Puerto Rico', 'PR', 'PRI', 630 ],
- [ 'Qatar', 'QA', 'QAT', 634 ],
- [ 'Romania', 'RO', 'ROU', 642 ],
- [ 'Russian Federation', 'RU', 'RUS', 643 ],
- [ 'Rwanda', 'RW', 'RWA', 646 ],
- [ 'Reunion', 'RE', 'REU', 638 ],
- [ 'Saint Barthalemy', 'BL', 'BLM', 652 ],
- [ 'Saint Helena', 'SH', 'SHN', 654 ],
- [ 'Saint Kitts and Nevis', 'KN', 'KNA', 659 ],
- [ 'Saint Lucia', 'LC', 'LCA', 662 ],
- [ 'Saint Martin (French part)', 'MF', 'MAF', 663 ],
- [ 'Saint Pierre and Miquelon', 'PM', 'SPM', 666 ],
- [ 'Saint Vincent and the Grenadines', 'VC', 'VCT', 670 ],
- [ 'Samoa', 'WS', 'WSM', 882 ],
- [ 'San Marino', 'SM', 'SMR', 674 ],
- [ 'Sao Tome and Principe', 'ST', 'STP', 678 ],
- [ 'Saudi Arabia', 'SA', 'SAU', 682 ],
- [ 'Senegal', 'SN', 'SEN', 686 ],
- [ 'Serbia', 'RS', 'SRB', 688 ],
- [ 'Seychelles', 'SC', 'SYC', 690 ],
- [ 'Sierra Leone', 'SL', 'SLE', 694 ],
- [ 'Singapore', 'SG', 'SGP', 702 ],
- [ 'Sint Maarten (Dutch part)', 'SX', 'SXM', 534 ],
- [ 'Slovakia', 'SK', 'SVK', 703 ],
- [ 'Slovenia', 'SI', 'SVN', 705 ],
- [ 'Solomon Islands', 'SB', 'SLB', 90 ],
- [ 'Somalia', 'SO', 'SOM', 706 ],
- [ 'South Africa', 'ZA', 'ZAF', 710 ],
- [ 'South Georgia and the South Sandwich Islands', 'GS', 'SGS', 239 ],
- [ 'South Sudan', 'SS', 'SSD', 728 ],
- [ 'Spain', 'ES', 'ESP', 724 ],
- [ 'Sri Lanka', 'LK', 'LKA', 144 ],
- [ 'Sudan', 'SD', 'SDN', 729 ],
- [ 'Suriname', 'SR', 'SUR', 740 ],
- [ 'Svalbard and Jan Mayen', 'SJ', 'SJM', 744 ],
- [ 'Swaziland', 'SZ', 'SWZ', 748 ],
- [ 'Sweden', 'SE', 'SWE', 752 ],
- [ 'Switzerland', 'CH', 'CHE', 756 ],
- [ 'Syrian Arab Republic', 'SY', 'SYR', 760 ],
- [ 'Taiwan, Province of China', 'TW', 'TWN', 158 ],
- [ 'Tajikistan', 'TJ', 'TJK', 762 ],
- [ 'United Republic of Tanzania', 'TZ', 'TZA', 834 ],
- [ 'Thailand', 'TH', 'THA', 764 ],
- [ 'Timor-Leste', 'TL', 'TLS', 626 ],
- [ 'Togo', 'TG', 'TGO', 768 ],
- [ 'Tokelau', 'TK', 'TKL', 772 ],
- [ 'Tonga', 'TO', 'TON', 776 ],
- [ 'Trinidad and Tobago', 'TT', 'TTO', 780 ],
- [ 'Tunisia', 'TN', 'TUN', 788 ],
- [ 'Turkey', 'TR', 'TUR', 792 ],
- [ 'Turkmenistan', 'TM', 'TKM', 795 ],
- [ 'Turks and Caicos Islands', 'TC', 'TCA', 796 ],
- [ 'Tuvalu', 'TV', 'TUV', 798 ],
- [ 'Uganda', 'UG', 'UGA', 800 ],
- [ 'Ukraine', 'UA', 'UKR', 804 ],
- [ 'United Arab Emirates', 'AE', 'ARE', 784 ],
- [ 'United Kingdom', 'GB', 'GBR', 826 ],
- [ 'United States', 'US', 'USA', 840 ],
- [ 'United States Minor Outlying Islands', 'UM', 'UMI', 581 ],
- [ 'Uruguay', 'UY', 'URY', 858 ],
- [ 'Uzbekistan', 'UZ', 'UZB', 860 ],
- [ 'Vanuatu', 'VU', 'VUT', 548 ],
- [ 'Venezuela', 'VE', 'VEN', 862 ],
- [ 'Viet Nam', 'VN', 'VNM', 704 ],
- [ 'British Virgin Islands', 'VG', 'VGB', 92 ],
- [ 'US Virgin Islands', 'VI', 'VIR', 850 ],
- [ 'Wallis and Futuna', 'WF', 'WLF', 876 ],
- [ 'Western Sahara', 'EH', 'ESH', 732 ],
- [ 'Yemen', 'YE', 'YEM', 887 ],
- [ 'Zambia', 'ZM', 'ZMB', 894 ],
- [ 'Zimbabwe', 'ZW', 'ZWE', 716 ],
- [ 'Aland Islands', 'AX', 'ALA', 248 ]
- ];
-
- var bod = $('#codes-body');
-
- function addRow(name, a2, a3, num) {
- bod.append('<tr>' +
- '<td>'+ name + '</td>' +
- '<td class="code">'+ a2 + '</td>' +
- '<td class="code">'+ a3 + '</td>' +
- '<td class="num">'+ num + '</td>' +
- '</tr>');
- }
-
- function loadRows() {
- data.forEach(function (d) {
- if (d.length) {
- addRow(d[0], d[1], d[2], d[3]);
- }
- });
- }
-
- loadRows();
-</script>
-
-</body>
-</html>
diff --git a/framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/samerica.html b/framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/samerica.html
deleted file mode 100644
index 15bb331e..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/_sdh/topojson/samerica.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--
- -- Sample code to show extracting country data from a countries TopoJSON
- -- file and projecting it into an SVG layer.
- --
- -- See: http://bl.ocks.org/pnavarrc/62047b5638d624cfa9cb
- -->
-<html>
-<head>
- <title>S America</title>
-
- <script charset="utf-8" src="../../tp/d3.min.js"></script>
- <script charset="utf-8" src="../../tp/topojson.v1.min.js"></script>
-
- <style>
- svg {
- border: 1px solid #888;
- }
- .country {
- fill: #bcd1ff;
- stroke: #7c79e6;
- stroke-width: 1;
- }
- </style>
-</head>
-
-<body>
- <div id="map"></div>
-
- <script>
- var datapath = '../../data/map/countries.topojson',
- height = 500,
- width = 500;
-
- // create geographic projection
- var projection = d3.geo.mercator()
- .translate([width/2, height/2]);
-
- // configure path generator
- var pathGenerator = d3.geo.path()
- .projection(projection);
-
- var div = d3.select('#map'),
- svg = div.append('svg'),
- grp = svg.append('g');
-
- svg.attr('width', width).attr('height', height);
-
- d3.json(datapath, function (error, data) {
- if (error) {
- console.error(error);
- throw error;
- }
-
- var features = topojson.feature(data, data.objects.countries).features;
-
- // S.America
- var southAmerica = features.filter(function (country) {
- return country.properties.continent === 'South America';
- });
-
- var southAmericaFeature = {
- type: 'FeatureCollection',
- features: southAmerica
- };
-
- // compute bounds and centroid
- var bounds = d3.geo.bounds(southAmericaFeature),
- center = d3.geo.centroid(southAmericaFeature);
-
- // compute angular distance between bound corners
- var distance = d3.geo.distance(bounds[0], bounds[1]),
- scale = height / distance / Math.sqrt(2);
-
- // update projection
- projection.scale(scale).center(center);
-
- // draw
- var countries = grp.selectAll('path.country')
- .data([southAmericaFeature]);
- countries.enter().append('path').classed('country', true);
- countries.attr('d', pathGenerator);
- countries.exit().remove();
- });
- </script>
-</body>
-
-</html> \ No newline at end of file