GUI -- Table views' auto refresh can be toggled on or off.
Change-Id: I9c307d8ea43101d6f6cff28c16d2cdbe709871e1
Showing
13 changed files
with
109 additions
and
93 deletions
| ... | @@ -24,63 +24,3 @@ | ... | @@ -24,63 +24,3 @@ |
| 24 | padding-top: 20px; | 24 | padding-top: 20px; |
| 25 | padding-bottom: 20px; | 25 | padding-bottom: 20px; |
| 26 | } | 26 | } |
| 27 | - | ||
| 28 | -/* Tabular view upper right control buttons */ | ||
| 29 | - | ||
| 30 | -div.ctrl-btns { | ||
| 31 | - display: inline-block; | ||
| 32 | - float: right; | ||
| 33 | - height: 44px; | ||
| 34 | - margin-right: 24px; | ||
| 35 | - margin-top: 7px; | ||
| 36 | -} | ||
| 37 | - | ||
| 38 | - | ||
| 39 | -div.ctrl-btns div { | ||
| 40 | - display: inline-block; | ||
| 41 | - padding: 4px; | ||
| 42 | - cursor: pointer; | ||
| 43 | -} | ||
| 44 | - | ||
| 45 | -/* Inactive */ | ||
| 46 | -.light .ctrl-btns div g.icon rect, | ||
| 47 | -.light .ctrl-btns div:hover g.icon rect { | ||
| 48 | - fill: #eee; | ||
| 49 | -} | ||
| 50 | -.dark .ctrl-btns div g.icon rect, | ||
| 51 | -.dark .ctrl-btns div:hover g.icon rect { | ||
| 52 | - fill: #222; | ||
| 53 | -} | ||
| 54 | - | ||
| 55 | -.light .ctrl-btns div g.icon use { | ||
| 56 | - fill: #ddd; | ||
| 57 | -} | ||
| 58 | -.dark .ctrl-btns div g.icon use { | ||
| 59 | - fill: #333; | ||
| 60 | -} | ||
| 61 | - | ||
| 62 | -/* Active hover */ | ||
| 63 | -.light .ctrl-btns div.active:hover g.icon rect { | ||
| 64 | - fill: #800; | ||
| 65 | -} | ||
| 66 | - | ||
| 67 | -.dark .ctrl-btns div.active:hover g.icon rect { | ||
| 68 | - fill: #CE5650; | ||
| 69 | -} | ||
| 70 | - | ||
| 71 | -/* Active */ | ||
| 72 | -.light .ctrl-btns div.active g.icon use { | ||
| 73 | - fill: #fff; | ||
| 74 | -} | ||
| 75 | -.dark .ctrl-btns div.active g.icon use { | ||
| 76 | - fill: #eee; | ||
| 77 | -} | ||
| 78 | - | ||
| 79 | -.light .ctrl-btns div.active g.icon rect { | ||
| 80 | - fill: #bbb; | ||
| 81 | -} | ||
| 82 | -.dark .ctrl-btns div.active g.icon rect { | ||
| 83 | - fill: #444; | ||
| 84 | -} | ||
| 85 | - | ||
| 86 | - | ... | ... |
| ... | @@ -93,3 +93,70 @@ div.summary-list .table-body td { | ... | @@ -93,3 +93,70 @@ div.summary-list .table-body td { |
| 93 | .dark div.summary-list td { | 93 | .dark div.summary-list td { |
| 94 | color: #ccc; | 94 | color: #ccc; |
| 95 | } | 95 | } |
| 96 | + | ||
| 97 | +/* Tabular view upper right control buttons */ | ||
| 98 | + | ||
| 99 | +div.ctrl-btns { | ||
| 100 | + display: inline-block; | ||
| 101 | + float: right; | ||
| 102 | + height: 44px; | ||
| 103 | + margin-right: 24px; | ||
| 104 | + margin-top: 7px; | ||
| 105 | +} | ||
| 106 | + | ||
| 107 | + | ||
| 108 | +div.ctrl-btns div { | ||
| 109 | + display: inline-block; | ||
| 110 | + padding: 4px; | ||
| 111 | + cursor: pointer; | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +/* Inactive */ | ||
| 115 | +.light .ctrl-btns div g.icon rect, | ||
| 116 | +.light .ctrl-btns div:hover g.icon rect { | ||
| 117 | + fill: #eee; | ||
| 118 | +} | ||
| 119 | +.dark .ctrl-btns div g.icon rect, | ||
| 120 | +.dark .ctrl-btns div:hover g.icon rect { | ||
| 121 | + fill: #222; | ||
| 122 | +} | ||
| 123 | + | ||
| 124 | +.light .ctrl-btns div g.icon use { | ||
| 125 | + fill: #ddd; | ||
| 126 | +} | ||
| 127 | +.dark .ctrl-btns div g.icon use { | ||
| 128 | + fill: #333; | ||
| 129 | +} | ||
| 130 | + | ||
| 131 | +/* Active hover */ | ||
| 132 | +.light .ctrl-btns div.active:hover g.icon rect { | ||
| 133 | + fill: #800; | ||
| 134 | +} | ||
| 135 | + | ||
| 136 | +.dark .ctrl-btns div.active:hover g.icon rect { | ||
| 137 | + fill: #CE5650; | ||
| 138 | +} | ||
| 139 | + | ||
| 140 | +/* Active */ | ||
| 141 | +.light .ctrl-btns div.active g.icon use { | ||
| 142 | + fill: #fff; | ||
| 143 | +} | ||
| 144 | +.dark .ctrl-btns div.active g.icon use { | ||
| 145 | + fill: #eee; | ||
| 146 | +} | ||
| 147 | + | ||
| 148 | +.light .ctrl-btns div.active g.icon rect { | ||
| 149 | + fill: #bbb; | ||
| 150 | +} | ||
| 151 | +.dark .ctrl-btns div.active g.icon rect { | ||
| 152 | + fill: #444; | ||
| 153 | +} | ||
| 154 | + | ||
| 155 | +/* Refresh button specific */ | ||
| 156 | +.light .ctrl-btns div.refresh:hover g.icon rect { | ||
| 157 | + fill: #800; | ||
| 158 | +} | ||
| 159 | + | ||
| 160 | +.dark .ctrl-btns div.refresh:hover g.icon rect { | ||
| 161 | + fill: #CE5650; | ||
| 162 | +} | ... | ... |
| ... | @@ -48,6 +48,7 @@ | ... | @@ -48,6 +48,7 @@ |
| 48 | 48 | ||
| 49 | o.scope.tableData = []; | 49 | o.scope.tableData = []; |
| 50 | o.scope.sortParams = {}; | 50 | o.scope.sortParams = {}; |
| 51 | + o.scope.autoRefresh = true; | ||
| 51 | 52 | ||
| 52 | function respCb(data) { | 53 | function respCb(data) { |
| 53 | o.scope.tableData = data[root]; | 54 | o.scope.tableData = data[root]; |
| ... | @@ -66,11 +67,25 @@ | ... | @@ -66,11 +67,25 @@ |
| 66 | } | 67 | } |
| 67 | o.scope.selectCallback = selCb; | 68 | o.scope.selectCallback = selCb; |
| 68 | 69 | ||
| 69 | - function refresh(params) { | 70 | + function startRefresh() { |
| 70 | - $log.debug('Refreshing ' + root + ' page'); | 71 | + promise = $interval(function () { |
| 71 | - sortCb(params); | 72 | + $log.debug('Refreshing ' + root + ' page'); |
| 73 | + sortCb(o.scope.sortParams); | ||
| 74 | + }, refreshInterval); | ||
| 72 | } | 75 | } |
| 73 | - o.scope.refresh = refresh; | 76 | + |
| 77 | + function stopRefresh() { | ||
| 78 | + if (angular.isDefined(promise)) { | ||
| 79 | + $interval.cancel(promise); | ||
| 80 | + promise = undefined; | ||
| 81 | + } | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + function toggleRefresh() { | ||
| 85 | + o.scope.autoRefresh = !o.scope.autoRefresh; | ||
| 86 | + o.scope.autoRefresh ? startRefresh() : stopRefresh(); | ||
| 87 | + } | ||
| 88 | + o.scope.toggleRefresh = toggleRefresh; | ||
| 74 | 89 | ||
| 75 | handlers[resp] = respCb; | 90 | handlers[resp] = respCb; |
| 76 | wss.bindHandlers(handlers); | 91 | wss.bindHandlers(handlers); |
| ... | @@ -79,17 +94,11 @@ | ... | @@ -79,17 +94,11 @@ |
| 79 | o.scope.$on('$destroy', function () { | 94 | o.scope.$on('$destroy', function () { |
| 80 | wss.unbindHandlers(handlers); | 95 | wss.unbindHandlers(handlers); |
| 81 | ts.resetSort(); | 96 | ts.resetSort(); |
| 82 | - if (angular.isDefined(promise)) { | 97 | + stopRefresh(); |
| 83 | - $interval.cancel(promise); | ||
| 84 | - promise = undefined; | ||
| 85 | - } | ||
| 86 | }); | 98 | }); |
| 87 | 99 | ||
| 88 | sortCb(); | 100 | sortCb(); |
| 89 | - | 101 | + startRefresh(); |
| 90 | - promise = $interval(function () { | ||
| 91 | - refresh(o.scope.sortParams); | ||
| 92 | - }, refreshInterval); | ||
| 93 | } | 102 | } |
| 94 | 103 | ||
| 95 | angular.module('onosWidget') | 104 | angular.module('onosWidget') | ... | ... |
| ... | @@ -3,9 +3,9 @@ | ... | @@ -3,9 +3,9 @@ |
| 3 | <div class="tabular-header"> | 3 | <div class="tabular-header"> |
| 4 | <h2>Applications ({{tableData.length}} total)</h2> | 4 | <h2>Applications ({{tableData.length}} total)</h2> |
| 5 | <div class="ctrl-btns"> | 5 | <div class="ctrl-btns"> |
| 6 | - <div class="refresh active" | 6 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 7 | icon icon-size="36" icon-id="refresh" | 7 | icon icon-size="36" icon-id="refresh" |
| 8 | - ng-click="refresh(sortParams)"></div> | 8 | + ng-click="toggleRefresh()"></div> |
| 9 | <div class="separator"></div> | 9 | <div class="separator"></div> |
| 10 | <div id="app-install" icon icon-size="36" icon-id="plus" class="active"></div> | 10 | <div id="app-install" icon icon-size="36" icon-id="plus" class="active"></div> |
| 11 | <div id="app-activate" icon icon-size="36" icon-id="play"></div> | 11 | <div id="app-activate" icon icon-size="36" icon-id="play"></div> | ... | ... |
| ... | @@ -19,9 +19,9 @@ | ... | @@ -19,9 +19,9 @@ |
| 19 | <div class="tabular-header"> | 19 | <div class="tabular-header"> |
| 20 | <h2>Cluster Nodes ({{tableData.length}} total)</h2> | 20 | <h2>Cluster Nodes ({{tableData.length}} total)</h2> |
| 21 | <div class="ctrl-btns"> | 21 | <div class="ctrl-btns"> |
| 22 | - <div class="refresh active" | 22 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 23 | icon icon-size="36" icon-id="refresh" | 23 | icon icon-size="36" icon-id="refresh" |
| 24 | - ng-click="refresh(sortParams)"></div> | 24 | + ng-click="toggleRefresh()"></div> |
| 25 | </div> | 25 | </div> |
| 26 | </div> | 26 | </div> |
| 27 | 27 | ... | ... |
| ... | @@ -3,9 +3,9 @@ | ... | @@ -3,9 +3,9 @@ |
| 3 | <div class="tabular-header"> | 3 | <div class="tabular-header"> |
| 4 | <h2>Devices ({{tableData.length}} total)</h2> | 4 | <h2>Devices ({{tableData.length}} total)</h2> |
| 5 | <div class="ctrl-btns"> | 5 | <div class="ctrl-btns"> |
| 6 | - <div class="refresh active" | 6 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 7 | icon icon-size="36" icon-id="refresh" | 7 | icon icon-size="36" icon-id="refresh" |
| 8 | - ng-click="refresh(sortParams)"></div> | 8 | + ng-click="toggleRefresh()"></div> |
| 9 | </div> | 9 | </div> |
| 10 | </div> | 10 | </div> |
| 11 | 11 | ... | ... |
| ... | @@ -6,9 +6,9 @@ | ... | @@ -6,9 +6,9 @@ |
| 6 | ({{tableData.length}} total) | 6 | ({{tableData.length}} total) |
| 7 | </h2> | 7 | </h2> |
| 8 | <div class="ctrl-btns"> | 8 | <div class="ctrl-btns"> |
| 9 | - <div class="refresh active" | 9 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 10 | icon icon-size="36" icon-id="refresh" | 10 | icon icon-size="36" icon-id="refresh" |
| 11 | - ng-click="refresh(sortParams)"></div> | 11 | + ng-click="toggleRefresh()"></div> |
| 12 | </div> | 12 | </div> |
| 13 | </div> | 13 | </div> |
| 14 | 14 | ... | ... |
| ... | @@ -22,9 +22,9 @@ | ... | @@ -22,9 +22,9 @@ |
| 22 | ({{tableData.length}} total) | 22 | ({{tableData.length}} total) |
| 23 | </h2> | 23 | </h2> |
| 24 | <div class="ctrl-btns"> | 24 | <div class="ctrl-btns"> |
| 25 | - <div class="refresh active" | 25 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 26 | icon icon-size="36" icon-id="refresh" | 26 | icon icon-size="36" icon-id="refresh" |
| 27 | - ng-click="refresh(sortParams)"></div> | 27 | + ng-click="toggleRefresh()"></div> |
| 28 | </div> | 28 | </div> |
| 29 | </div> | 29 | </div> |
| 30 | 30 | ... | ... |
| ... | @@ -3,9 +3,9 @@ | ... | @@ -3,9 +3,9 @@ |
| 3 | <div class="tabular-header"> | 3 | <div class="tabular-header"> |
| 4 | <h2>Hosts ({{tableData.length}} total)</h2> | 4 | <h2>Hosts ({{tableData.length}} total)</h2> |
| 5 | <div class="ctrl-btns"> | 5 | <div class="ctrl-btns"> |
| 6 | - <div class="refresh active" | 6 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 7 | icon icon-size="36" icon-id="refresh" | 7 | icon icon-size="36" icon-id="refresh" |
| 8 | - ng-click="refresh(sortParams)"></div> | 8 | + ng-click="toggleRefresh()"></div> |
| 9 | </div> | 9 | </div> |
| 10 | </div> | 10 | </div> |
| 11 | 11 | ... | ... |
| ... | @@ -19,9 +19,9 @@ | ... | @@ -19,9 +19,9 @@ |
| 19 | <div class="tabular-header"> | 19 | <div class="tabular-header"> |
| 20 | <h2>Intents ({{tableData.length}} total)</h2> | 20 | <h2>Intents ({{tableData.length}} total)</h2> |
| 21 | <div class="ctrl-btns"> | 21 | <div class="ctrl-btns"> |
| 22 | - <div class="refresh active" | 22 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 23 | icon icon-size="36" icon-id="refresh" | 23 | icon icon-size="36" icon-id="refresh" |
| 24 | - ng-click="refresh(sortParams)"></div> | 24 | + ng-click="toggleRefresh()"></div> |
| 25 | </div> | 25 | </div> |
| 26 | </div> | 26 | </div> |
| 27 | 27 | ... | ... |
| ... | @@ -19,9 +19,9 @@ | ... | @@ -19,9 +19,9 @@ |
| 19 | <div class="tabular-header"> | 19 | <div class="tabular-header"> |
| 20 | <h2>Links ({{tableData.length}} total)</h2> | 20 | <h2>Links ({{tableData.length}} total)</h2> |
| 21 | <div class="ctrl-btns"> | 21 | <div class="ctrl-btns"> |
| 22 | - <div class="refresh active" | 22 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 23 | icon icon-size="36" icon-id="refresh" | 23 | icon icon-size="36" icon-id="refresh" |
| 24 | - ng-click="refresh(sortParams)"></div> | 24 | + ng-click="toggleRefresh()"></div> |
| 25 | </div> | 25 | </div> |
| 26 | </div> | 26 | </div> |
| 27 | 27 | ... | ... |
| ... | @@ -22,9 +22,9 @@ | ... | @@ -22,9 +22,9 @@ |
| 22 | ({{tableData.length}} total) | 22 | ({{tableData.length}} total) |
| 23 | </h2> | 23 | </h2> |
| 24 | <div class="ctrl-btns"> | 24 | <div class="ctrl-btns"> |
| 25 | - <div class="refresh active" | 25 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 26 | icon icon-size="36" icon-id="refresh" | 26 | icon icon-size="36" icon-id="refresh" |
| 27 | - ng-click="refresh(sortParams)"></div> | 27 | + ng-click="toggleRefresh()"></div> |
| 28 | </div> | 28 | </div> |
| 29 | </div> | 29 | </div> |
| 30 | 30 | ... | ... |
| ... | @@ -3,9 +3,9 @@ | ... | @@ -3,9 +3,9 @@ |
| 3 | <div class="tabular-header"> | 3 | <div class="tabular-header"> |
| 4 | <h2>Component Settings ({{tableData.length}} total)</h2> | 4 | <h2>Component Settings ({{tableData.length}} total)</h2> |
| 5 | <div class="ctrl-btns"> | 5 | <div class="ctrl-btns"> |
| 6 | - <div class="refresh active" | 6 | + <div class="refresh" ng-class="{active: autoRefresh}" |
| 7 | icon icon-size="36" icon-id="refresh" | 7 | icon icon-size="36" icon-id="refresh" |
| 8 | - ng-click="refresh(sortParams)"></div> | 8 | + ng-click="toggleRefresh()"></div> |
| 9 | </div> | 9 | </div> |
| 10 | </div> | 10 | </div> |
| 11 | 11 | ||
| ... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
| 17 | sort-callback="sortCallback(sortParams)"> | 17 | sort-callback="sortCallback(sortParams)"> |
| 18 | <table> | 18 | <table> |
| 19 | <tr> | 19 | <tr> |
| 20 | - <td colId="component" sortable col-width="400px">Component </td> | 20 | + <td colId="component" sortable col-width="350px">Component </td> |
| 21 | <td colId="id" sortable>Property </td> | 21 | <td colId="id" sortable>Property </td> |
| 22 | <td colId="type" sortable col-width="70px">Type </td> | 22 | <td colId="type" sortable col-width="70px">Type </td> |
| 23 | <td colId="value" sortable>Value </td> | 23 | <td colId="value" sortable>Value </td> | ... | ... |
-
Please register or login to post a comment