From b698006e0431f14b5c2f049793332b51184eee40 Mon Sep 17 00:00:00 2001 From: David Kaltschmidt Date: Mon, 7 Sep 2015 18:21:58 +0200 Subject: [PATCH] Apply topology options to detail API Fixes #454 --- client/app/scripts/actions/app-actions.js | 38 ++++++++++++++++++----- client/app/scripts/utils/web-api-utils.js | 18 ++++++++--- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/client/app/scripts/actions/app-actions.js b/client/app/scripts/actions/app-actions.js index 0373c2823..218eb70b3 100644 --- a/client/app/scripts/actions/app-actions.js +++ b/client/app/scripts/actions/app-actions.js @@ -12,7 +12,10 @@ module.exports = { value: value }); RouterUtils.updateRoute(); - WebapiUtils.getNodesDelta(AppStore.getCurrentTopologyUrl(), AppStore.getActiveTopologyOptions()); + WebapiUtils.getNodesDelta( + AppStore.getCurrentTopologyUrl(), + AppStore.getActiveTopologyOptions() + ); }, clickCloseDetails: function() { @@ -28,7 +31,11 @@ module.exports = { nodeId: nodeId }); RouterUtils.updateRoute(); - WebapiUtils.getNodeDetails(AppStore.getCurrentTopologyUrl(), AppStore.getSelectedNodeId()); + WebapiUtils.getNodeDetails( + AppStore.getCurrentTopologyUrl(), + AppStore.getSelectedNodeId(), + AppStore.getActiveTopologyOptions() + ); }, clickTopology: function(topologyId) { @@ -37,7 +44,10 @@ module.exports = { topologyId: topologyId }); RouterUtils.updateRoute(); - WebapiUtils.getNodesDelta(AppStore.getCurrentTopologyUrl(), AppStore.getActiveTopologyOptions()); + WebapiUtils.getNodesDelta( + AppStore.getCurrentTopologyUrl(), + AppStore.getActiveTopologyOptions() + ); }, openWebsocket: function() { @@ -106,8 +116,15 @@ module.exports = { type: ActionTypes.RECEIVE_TOPOLOGIES, topologies: topologies }); - WebapiUtils.getNodesDelta(AppStore.getCurrentTopologyUrl(), AppStore.getActiveTopologyOptions()); - WebapiUtils.getNodeDetails(AppStore.getCurrentTopologyUrl(), AppStore.getSelectedNodeId()); + WebapiUtils.getNodesDelta( + AppStore.getCurrentTopologyUrl(), + AppStore.getActiveTopologyOptions() + ); + WebapiUtils.getNodeDetails( + AppStore.getCurrentTopologyUrl(), + AppStore.getSelectedNodeId(), + AppStore.getActiveTopologyOptions() + ); }, receiveApiDetails: function(apiDetails) { @@ -129,8 +146,15 @@ module.exports = { state: state, type: ActionTypes.ROUTE_TOPOLOGY }); - WebapiUtils.getNodesDelta(AppStore.getCurrentTopologyUrl(), AppStore.getActiveTopologyOptions()); - WebapiUtils.getNodeDetails(AppStore.getCurrentTopologyUrl(), AppStore.getSelectedNodeId()); + WebapiUtils.getNodesDelta( + AppStore.getCurrentTopologyUrl(), + AppStore.getActiveTopologyOptions() + ); + WebapiUtils.getNodeDetails( + AppStore.getCurrentTopologyUrl(), + AppStore.getSelectedNodeId(), + AppStore.getActiveTopologyOptions() + ); } }; diff --git a/client/app/scripts/utils/web-api-utils.js b/client/app/scripts/utils/web-api-utils.js index 2eccd6ae5..2df423d9a 100644 --- a/client/app/scripts/utils/web-api-utils.js +++ b/client/app/scripts/utils/web-api-utils.js @@ -19,6 +19,13 @@ let currentOptions = null; let topologyTimer = 0; let apiDetailsTimer = 0; + +function buildOptionsQuery(options) { + return _.map(options, function(value, param) { + return param + '=' + value; + }).join('&'); +} + function createWebsocket(topologyUrl, optionsQuery) { if (socket) { socket.onclose = null; @@ -77,9 +84,7 @@ function getTopologies() { } function getTopology(topologyUrl, options) { - const optionsQuery = _.map(options, function(value, param) { - return param + '=' + value; - }).join('&'); + const optionsQuery = buildOptionsQuery(options); // only recreate websocket if url changed if (topologyUrl && (topologyUrl !== currentUrl || currentOptions !== optionsQuery)) { @@ -89,9 +94,12 @@ function getTopology(topologyUrl, options) { } } -function getNodeDetails(topologyUrl, nodeId) { +function getNodeDetails(topologyUrl, nodeId, options) { + const optionsQuery = buildOptionsQuery(options); + if (topologyUrl && nodeId) { - const url = [topologyUrl, encodeURIComponent(nodeId)].join('/').substr(1); + const url = [topologyUrl, '/', encodeURIComponent(nodeId), '?', optionsQuery] + .join('').substr(1); reqwest({ url: url, success: function(res) {