Refresh should keep topology options

fixes #457
This commit is contained in:
David Kaltschmidt
2015-09-08 00:11:18 +02:00
parent bd2a75687f
commit 4fd53e3ae9
2 changed files with 34 additions and 3 deletions

View File

@@ -178,6 +178,34 @@ describe('AppStore', function() {
expect(AppStore.getAppState().topologyOptions.option1).toBeUndefined();
});
it('sets topology options from route', function() {
RouteAction.state = {
"topologyId":"topo1",
"selectedNodeId": null,
"topologyOptions": {'option1': 'on'}};
registeredCallback(RouteAction);
expect(AppStore.getActiveTopologyOptions().option1).toBe('on');
expect(AppStore.getAppState().topologyOptions.option1).toBe('on');
// stay same after topos have been received
registeredCallback(ReceiveTopologiesAction);
registeredCallback(ClickTopologyAction);
expect(AppStore.getActiveTopologyOptions().option1).toBe('on');
expect(AppStore.getAppState().topologyOptions.option1).toBe('on');
});
it('uses default topology options from route', function() {
RouteAction.state = {
"topologyId":"topo1",
"selectedNodeId": null,
"topologyOptions": null};
registeredCallback(RouteAction);
registeredCallback(ReceiveTopologiesAction);
registeredCallback(ClickTopologyAction);
expect(AppStore.getActiveTopologyOptions().option1).toBe('off');
expect(AppStore.getAppState().topologyOptions.option1).toBe('off');
});
// nodes delta
it('replaces adjacency on update', function() {

View File

@@ -43,7 +43,7 @@ function makeNode(node) {
// Initial values
let activeTopologyOptions = {};
let activeTopologyOptions = null;
let currentTopology = null;
let currentTopologyId = 'containers';
let errorUrl = null;
@@ -62,8 +62,8 @@ function setTopology(topologyId) {
}
function setDefaultTopologyOptions() {
activeTopologyOptions = {};
if (currentTopology) {
activeTopologyOptions = {};
_.each(currentTopology.options, function(items, option) {
_.each(items, function(item) {
if (item.default === true) {
@@ -301,7 +301,10 @@ AppStore.registeredCallback = function(payload) {
topologies = payload.topologies;
if (!currentTopology) {
setTopology(currentTopologyId);
setDefaultTopologyOptions();
// only set on first load
if (activeTopologyOptions === null) {
setDefaultTopologyOptions();
}
}
AppStore.emit(AppStore.CHANGE_EVENT);
break;