Skip to content

Commit f6944eb

Browse files
author
Robert Jackson
committed
Add selected node id to session storage.
1 parent 18582fc commit f6944eb

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

app/services/graph.js

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,44 @@ const {
66
getOwner
77
} = Ember;
88

9-
const STORAGE_KEY = `${config.storageVersion}_graph-data`;
9+
const DATA_STORAGE_KEY = `${config.storageVersion}_graph-data`;
10+
const SELECTED_NODE_STORAGE_KEY = `${config.storageVersion}_selected-node-id`;
1011

1112
export default Ember.Service.extend({
1213
init() {
1314
this._super(...arguments);
1415

15-
let data = sessionStorage.getItem(STORAGE_KEY);
16+
let data = sessionStorage.getItem(DATA_STORAGE_KEY);
1617
if (data) {
1718
this.setGraph(JSON.parse(data));
1819
}
20+
21+
let selectedNodeId = sessionStorage.getItem(SELECTED_NODE_STORAGE_KEY);
22+
if (selectedNodeId && data) {
23+
let graph = this.get('graph');
24+
for (let node of graph.dfsIterator()) {
25+
if (node.id === selectedNodeId) {
26+
this.set('selectedNode', node);
27+
break;
28+
}
29+
}
30+
}
1931
},
2032

2133
setGraph(data) {
2234
let graph = heimdallGraph.loadFromJSON(data);
2335

24-
sessionStorage.setItem(STORAGE_KEY, JSON.stringify(data));
36+
try {
37+
sessionStorage.setItem(DATA_STORAGE_KEY, JSON.stringify(data));
38+
} catch (e) {}
2539

2640
this.set('data', data);
2741
this.set('graph', graph);
2842
},
2943

3044
selectNode(node) {
45+
sessionStorage.setItem(SELECTED_NODE_STORAGE_KEY, node.id);
46+
3147
this.set('selectedNode', node);
3248
getOwner(this).lookup('router:main').transitionTo('selected-node');
3349
}

0 commit comments

Comments
 (0)