Simon Hunt

GUI -- Added application view buttons. (WIP - require click handlers still)

- cleaned up icon.css rules.

Change-Id: If76f1e731da80e44391077c265f7671b07ef34db
...@@ -22,45 +22,49 @@ svg#IconLibDefs { ...@@ -22,45 +22,49 @@ svg#IconLibDefs {
22 display: none; 22 display: none;
23 } 23 }
24 24
25 -svg.embeddedIcon .icon .glyph { 25 +svg .svgIcon {
26 - stroke: none;
27 - fill: white;
28 fill-rule: evenodd; 26 fill-rule: evenodd;
29 } 27 }
30 28
31 -/* 29 +svg.embeddedIcon g.icon {
32 - FIXME: The following should be consolidated to result in much less CSS and
33 - not to require entries for every icon.
34 - */
35 -
36 -.light svg.embeddedIcon .icon.appActive,
37 -.light svg.embeddedIcon .icon.appInactive {
38 fill: none; 30 fill: none;
39 } 31 }
40 32
41 -.dark svg.embeddedIcon .icon.appActive, 33 +svg.embeddedIcon g.icon rect {
42 -.dark svg.embeddedIcon .icon.appInactive { 34 + stroke: none;
43 fill: none; 35 fill: none;
44 } 36 }
45 37
46 -.light svg.embeddedIcon .icon.appActive .glyph { 38 +svg.embeddedIcon g.icon .glyph {
47 - fill: green; 39 + stroke: none;
40 + fill: white;
41 + fill-rule: evenodd;
48 } 42 }
49 -.dark svg.embeddedIcon .icon.appActive .glyph { 43 +
50 - fill: #266610; 44 +
45 +/* Sortable table headers */
46 +.light div.tableColSort svg.embeddedIcon .icon .glyph {
47 + fill: black;
48 +}
49 +.dark div.tableColSort svg.embeddedIcon .icon .glyph {
50 + fill: #ccc;
51 } 51 }
52 52
53 53
54 -.light svg.embeddedIcon .icon.deviceOnline, 54 +/* color schemes for specific icon classes */
55 -.light svg.embeddedIcon .icon.deviceOffline { 55 +
56 - fill: none; 56 +svg.embeddedIcon .icon.appInactive .glyph {
57 + fill: rgba(166, 166, 166, 0.52);
57 } 58 }
58 59
59 -.dark svg.embeddedIcon .icon.deviceOnline, 60 +.light svg.embeddedIcon .icon.appActive .glyph {
60 -.dark svg.embeddedIcon .icon.deviceOffline { 61 + fill: green;
61 - fill: none; 62 +}
63 +.dark svg.embeddedIcon .icon.appActive .glyph {
64 + fill: #308C10;
62 } 65 }
63 66
67 +
64 .light svg.embeddedIcon .icon.devIcon_SWITCH { 68 .light svg.embeddedIcon .icon.devIcon_SWITCH {
65 fill: #ccc; 69 fill: #ccc;
66 } 70 }
...@@ -81,55 +85,8 @@ svg.embeddedIcon .icon .glyph { ...@@ -81,55 +85,8 @@ svg.embeddedIcon .icon .glyph {
81 fill: darkred; 85 fill: darkred;
82 } 86 }
83 .dark svg.embeddedIcon .icon.deviceOnline .glyph { 87 .dark svg.embeddedIcon .icon.deviceOnline .glyph {
84 - fill: #266610; 88 + fill: #308C10;
85 } 89 }
86 .dark svg.embeddedIcon .icon.deviceOffline .glyph { 90 .dark svg.embeddedIcon .icon.deviceOffline .glyph {
87 - fill: #610000; 91 + fill: #AD2D2D;
88 -}
89 -
90 -.light svg.embeddedIcon .icon.tableColSortAsc .glyph,
91 -.light svg.embeddedIcon .icon.tableColSortDesc .glyph {
92 - fill: black;
93 -}
94 -.dark svg.embeddedIcon .icon.tableColSortAsc .glyph,
95 -.dark svg.embeddedIcon .icon.tableColSortDesc .glyph {
96 - fill: #ccc;
97 -}
98 -
99 -.light svg.embeddedIcon .icon.appActive rect,
100 -.light svg.embeddedIcon .icon.appInactive rect,
101 -.dark svg.embeddedIcon .icon.appActive rect,
102 -.dark svg.embeddedIcon .icon.appInactive rect,
103 -.light svg.embeddedIcon .icon.deviceOnline rect,
104 -.light svg.embeddedIcon .icon.deviceOffline rect,
105 -.dark svg.embeddedIcon .icon.deviceOnline rect,
106 -.dark svg.embeddedIcon .icon.deviceOffline rect {
107 - stroke: none;
108 - fill: none;
109 -}
110 -
111 -svg.embeddedIcon .icon.tableColSortAsc rect,
112 -svg.embeddedIcon .icon.tableColSortDesc rect {
113 - stroke: none;
114 - fill: none;
115 -}
116 -
117 -svg.embeddedIcon .icon rect {
118 - stroke: black;
119 - stroke-width: 1px;
120 -}
121 -.dark svg.embeddedIcon .icon.deviceOnline rect
122 -.dark svg.embeddedIcon .icon.deviceOffline rect {
123 - stroke: none;
124 -}
125 -.dark svg.embeddedIcon .icon rect {
126 - stroke: #ccc;
127 -}
128 -.dark svg.embeddedIcon .icon.tableColSortAsc rect,
129 -.dark svg.embeddedIcon .icon.tableColSortDesc rect {
130 - stroke: none;
131 -}
132 -
133 -svg .svgIcon {
134 - fill-rule: evenodd;
135 } 92 }
......
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
31 var glyphMapping = { 31 var glyphMapping = {
32 appActive: 'checkMark', 32 appActive: 'checkMark',
33 appInactive: 'unknown', 33 appInactive: 'unknown',
34 + appPlus: 'plus',
35 + appMinus: 'minus',
36 + appPlay: 'play',
37 + appStop: 'stop',
34 38
35 deviceOnline: 'checkMark', 39 deviceOnline: 'checkMark',
36 deviceOffline: 'xMark', 40 deviceOffline: 'xMark',
...@@ -179,11 +183,13 @@ ...@@ -179,11 +183,13 @@
179 function sortAsc(div) { 183 function sortAsc(div) {
180 div.style('display', 'inline-block'); 184 div.style('display', 'inline-block');
181 loadEmbeddedIcon(div, 'tableColSortAsc', 10); 185 loadEmbeddedIcon(div, 'tableColSortAsc', 10);
186 + div.classed('tableColSort', true);
182 } 187 }
183 188
184 function sortDesc(div) { 189 function sortDesc(div) {
185 div.style('display', 'inline-block'); 190 div.style('display', 'inline-block');
186 loadEmbeddedIcon(div, 'tableColSortDesc', 10); 191 loadEmbeddedIcon(div, 'tableColSortDesc', 10);
192 + div.classed('tableColSort', true);
187 } 193 }
188 194
189 function sortNone(div) { 195 function sortNone(div) {
......
...@@ -18,5 +18,40 @@ ...@@ -18,5 +18,40 @@
18 ONOS GUI -- Host View -- CSS file 18 ONOS GUI -- Host View -- CSS file
19 */ 19 */
20 20
21 -#ov-app td { 21 +#ov-app h2 {
22 + display: inline-block;
23 +}
24 +
25 +#ov-app div.ctrl-btns {
26 + display:inline-block;
27 + float: right;
28 + width: 200px;
29 + height: 44px;
30 + margin-right: 24px;
31 + margin-top: 7px;
32 +}
33 +
34 +div.ctrl-btns div {
35 + display: inline-block;
36 + padding: 4px;
37 + cursor: pointer;
38 +}
39 +
40 +.light div.ctrl-btns div svg.embeddedIcon g.icon use {
41 + fill: white;
42 +}
43 +.dark div.ctrl-btns div svg.embeddedIcon g.icon use {
44 + fill: #333;
45 +}
46 +
47 +.light div.ctrl-btns div svg.embeddedIcon g.icon rect {
48 + fill: #dde;
49 +}
50 +.dark div.ctrl-btns div svg.embeddedIcon g.icon rect {
51 + fill: #556;
52 +}
53 +
54 +/* rows are selectable */
55 +table.summary-list td {
56 + cursor: pointer;
22 } 57 }
......
1 <!-- app partial HTML --> 1 <!-- app partial HTML -->
2 <div id="ov-app"> 2 <div id="ov-app">
3 + <div>
3 <h2>Applications ({{ctrl.appData.length}} total)</h2> 4 <h2>Applications ({{ctrl.appData.length}} total)</h2>
5 + <div class="ctrl-btns">
6 + <div icon icon-size="36" icon-id="appPlus"></div>
7 + <div icon icon-size="36" icon-id="appMinus"></div>
8 + <div icon icon-size="36" icon-id="appPlay"></div>
9 + <div icon icon-size="36" icon-id="appStop"></div>
10 + </div>
11 + </div>
4 <table class="summary-list" 12 <table class="summary-list"
5 onos-fixed-header 13 onos-fixed-header
6 onos-sortable-header 14 onos-sortable-header
......