GUI -- User Prefs written as a service; persistent topo settings updated a bit; still WIP.
Change-Id: I6945dd9eb4b325a8f1637c44e2c4b271126b2bc4
diff --git a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
index eb7c006..8a1895b 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
@@ -23,13 +23,14 @@
'use strict';
// injected references
- var $log, tbs, api;
+ var $log, tbs, ps, api;
// internal state
var toolbar, keyData;
// constants
- var name = 'topo-tbar';
+ var name = 'topo-tbar',
+ cooktag = 'topo_prefs';
// key to button mapping data
var k2b = {
@@ -58,8 +59,46 @@
E: { id: 'eqMaster-btn', gid: 'eqMaster' }
};
+ // initial toggle state: default settings and tag to key mapping
+ var defaultPrefsState = {
+ bg: 1,
+ insts: 1,
+ summary: 1,
+ detail: 1,
+ hosts: 0
+ },
+ prefsMap = {
+ bg: 'B',
+ insts: 'I',
+ summary: 'O',
+ details: 'D',
+ hosts: 'H'
+ };
+
function init(_api_) {
api = _api_;
+
+ // retrieve initial toggle button settings from user prefs
+ setInitToggleState();
+ }
+
+ function topoDefPrefs() {
+ return angular.extend({}, defaultPrefsState);
+ }
+
+ function setInitToggleState() {
+ var state = ps.getPrefs(cooktag);
+ $log.debug('TOOLBAR---- read prefs state:', state);
+
+ if (!state) {
+ state = topoDefPrefs();
+ ps.setPrefs(cooktag, state);
+ $log.debug('TOOLBAR---- Set default prefs state:', state);
+ }
+
+ angular.forEach(prefsMap, function (v, k) {
+ k2b[v].isel = !!state[k];
+ });
}
function initKeyData() {
@@ -142,11 +181,13 @@
}
angular.module('ovTopo')
- .factory('TopoToolbarService', ['$log', 'ToolbarService',
+ .factory('TopoToolbarService',
+ ['$log', 'ToolbarService', 'PrefsService',
- function (_$log_, _tbs_) {
+ function (_$log_, _tbs_, _ps_) {
$log = _$log_;
tbs = _tbs_;
+ ps = _ps_;
return {
init: init,