Bri Prebilic Cole

GUI -- Finished icons test page. Displays all icons and glyphs using Angular constructs.

Change-Id: I65d9195eb5434a49e5d8e6fac7ce3205a72d22dd
...@@ -21,15 +21,75 @@ ...@@ -21,15 +21,75 @@
21 (function () { 21 (function () {
22 'use strict'; 22 'use strict';
23 23
24 + // assuming the glyph is a square
25 + // div is a D3 selection of the <DIV> element into which icon should load
26 + // size is the size of the glyph
27 + // id is the symbol id
28 + // rer is the rectangle the glyph will be in's rounded corners
29 + // svgClass is the class name for your glyph
30 + function createGlyph(div, size, id, rer, svgClass) {
31 + var dim = size || 20,
32 + gid = id || 'unknown',
33 + rx = rer || 4,
34 + svgCls = svgClass || 'embeddedGlyph',
35 + svg, g;
36 +
37 + svg = div.append('svg').attr({
38 + 'class': svgCls,
39 + width: dim,
40 + height: dim,
41 + viewBox: '0 0 ' + dim + ' ' + dim
42 + });
43 +
44 + g = svg.append('g').attr({
45 + 'class': 'glyph'
46 + });
47 +
48 + g.append('rect').attr({
49 + width: dim,
50 + height: dim,
51 + rx: rx
52 + });
53 +
54 + g.append('use').attr({
55 + width: dim,
56 + height: dim,
57 + 'class': 'glyph',
58 + 'xlink:href': '#' + gid
59 + });
60 +
61 +}
62 +
24 angular.module('showIconsTest', ['onosSvg']) 63 angular.module('showIconsTest', ['onosSvg'])
25 64
26 .controller('OvShowIconsTest', ['$log', 'GlyphService', 'IconService', 65 .controller('OvShowIconsTest', ['$log', 'GlyphService', 'IconService',
27 function ($log, gs, icns) { 66 function ($log, gs, icns) {
28 var self = this; 67 var self = this;
29 - self.a = 1;
30 - self.b = 2;
31 68
32 - self.message = "Hi"; 69 + gs.init();
70 +
71 + var div = d3.select('#showIcons');
72 +
73 + // show device online and offline icons
74 + icns.loadEmbeddedIcon(div, 'deviceOnline', 50);
75 + div.append('br');
76 + icns.loadEmbeddedIcon(div, 'deviceOffline', 50);
77 +
78 + var defs = d3.select('defs');
79 +
80 + // show all glyphs in glyph library
81 + gs.loadDefs(defs, null, true);
82 + var list = gs.ids(),
83 + gDiv = d3.select('#showGlyphs'),
84 + ctr = 0;
85 + list.forEach(function (id) {
86 + createGlyph(gDiv, 50, id);
87 + ctr += 1;
88 + if(ctr/3 > 1) {
89 + ctr = 0;
90 + gDiv.append('p');
91 + }
92 + });
33 93
34 $log.log('OvShowIconsTest has been created'); 94 $log.log('OvShowIconsTest has been created');
35 }]); 95 }]);
......
...@@ -28,17 +28,24 @@ ...@@ -28,17 +28,24 @@
28 <script type="text/javascript" src="../tp/angular-route.js"></script> 28 <script type="text/javascript" src="../tp/angular-route.js"></script>
29 29
30 <script type="text/javascript" src="../tp/d3.js"></script> 30 <script type="text/javascript" src="../tp/d3.js"></script>
31 + <script type="text/javascript" src="../tp/jquery-2.1.1.min.js"></script>
31 32
32 <script type="text/javascript" src="../app/fw/util/util.js"></script> 33 <script type="text/javascript" src="../app/fw/util/util.js"></script>
33 <script type="text/javascript" src="../app/fw/util/fn.js"></script> 34 <script type="text/javascript" src="../app/fw/util/fn.js"></script>
34 <script type="text/javascript" src="../app/fw/util/theme.js"></script> 35 <script type="text/javascript" src="../app/fw/util/theme.js"></script>
35 <script type="text/javascript" src="../app/fw/util/keys.js"></script> 36 <script type="text/javascript" src="../app/fw/util/keys.js"></script>
37 +
36 <script type="text/javascript" src="../app/fw/svg/svg.js"></script> 38 <script type="text/javascript" src="../app/fw/svg/svg.js"></script>
37 <script type="text/javascript" src="../app/fw/svg/glyph.js"></script> 39 <script type="text/javascript" src="../app/fw/svg/glyph.js"></script>
38 <script type="text/javascript" src="../app/fw/svg/icon.js"></script> 40 <script type="text/javascript" src="../app/fw/svg/icon.js"></script>
41 + <script type="text/javascript" src="../app/fw/svg/geodata.js"></script>
42 + <script type="text/javascript" src="../app/fw/svg/map.js"></script>
43 + <script type="text/javascript" src="../app/fw/svg/zoom.js"></script>
44 +
39 <script type="text/javascript" src="show-icons-test.js"></script> 45 <script type="text/javascript" src="show-icons-test.js"></script>
40 46
41 <link rel="stylesheet" href="../app/common.css"> 47 <link rel="stylesheet" href="../app/common.css">
48 + <link rel="stylesheet" href="../app/fw/svg/icon.css">
42 49
43 <style> 50 <style>
44 html, 51 html,
...@@ -51,15 +58,31 @@ ...@@ -51,15 +58,31 @@
51 h2 { 58 h2 {
52 color: darkred; 59 color: darkred;
53 } 60 }
61 +
62 + svg .glyph {
63 + stroke: none;
64 + fill: #123456;
65 + fill-rule: evenodd;
66 + }
67 +
68 + svg.embeddedGlyph .glyph rect {
69 + fill: #fff
70 + }
71 +
54 </style> 72 </style>
55 73
56 </head> 74 </head>
57 <!-- outline for using a controller in Angular --> 75 <!-- outline for using a controller in Angular -->
58 -<body class="light" ng-app="showIconsTest"> 76 +<body class="light" ng-app="showIconsTest" ng-controller="OvShowIconsTest as ctrl">
59 - <h2>Showing Icons with Icon Service Angular</h2> 77 + <h2>Displaying Icons and Glyphs with Angular</h2>
60 - <div id="show-icons" ng-controller="OvShowIconsTest as ctrl"> 78 + <div id="showIcons">
61 - <!--{{message}}--> 79 + <p>Show all icons in icon library:<br></p>
62 - <p>{{ctrl.a}} + {{ctrl.b}} = {{ctrl.a+ctrl.b}}</p> 80 + </div>
81 + <hr>
82 + <div id="showGlyphs">
83 + <p>Show all glyphs in glyph library:</p>
84 + <p>(Displays checkMark and xMark too, because icons are built on top
85 + of glyphs.)</p>
63 </div> 86 </div>
64 87
65 88
......
...@@ -23,6 +23,14 @@ table.summary-list { ...@@ -23,6 +23,14 @@ table.summary-list {
23 font-size: 10pt; 23 font-size: 10pt;
24 } 24 }
25 25
26 +/* TODO: uncomment following lines for scrollable table */
27 +/* Possible CSS style for creating a scrollable table */
28 +/*table.summary-list tbody {*/
29 + /*height: 100px;*/
30 + /*overflow: auto;*/
31 + /*display: block;*/
32 +/*}*/
33 +
26 table.summary-list th { 34 table.summary-list th {
27 padding: 5px; 35 padding: 5px;
28 } 36 }
......
1 <!-- Device partial HTML --> 1 <!-- Device partial HTML -->
2 <div id="ov-device"> 2 <div id="ov-device">
3 <h2>Device View</h2> 3 <h2>Device View</h2>
4 - 4 +<!-- TODO: uncomment and test the thead and tbody tags for CSS styling -->
5 <table class="summary-list"> 5 <table class="summary-list">
6 + <!-- <thead> -->
6 <tr> 7 <tr>
7 <th></th> 8 <th></th>
8 <th>ID</th> 9 <th>ID</th>
...@@ -10,6 +11,9 @@ ...@@ -10,6 +11,9 @@
10 <th>Hardware Version</th> 11 <th>Hardware Version</th>
11 <th>Software Version</th> 12 <th>Software Version</th>
12 </tr> 13 </tr>
14 + <!-- </thead> -->
15 +
16 + <!-- <tbody> -->
13 <tr ng-repeat="dev in ctrl.deviceData"> 17 <tr ng-repeat="dev in ctrl.deviceData">
14 <td><div icon icon-id="{{dev._iconid_available}}"></div></td> 18 <td><div icon icon-id="{{dev._iconid_available}}"></div></td>
15 <td>{{dev.id}}</td> 19 <td>{{dev.id}}</td>
...@@ -18,6 +22,7 @@ ...@@ -18,6 +22,7 @@
18 <td>{{dev.sw}}</td> 22 <td>{{dev.sw}}</td>
19 <!-- add more property fields for table from device data --> 23 <!-- add more property fields for table from device data -->
20 </tr> 24 </tr>
25 + <!-- </tbody> -->
21 </table> 26 </table>
22 27
23 </div> 28 </div>
......