mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 17:51:21 +00:00
Use firstSeenConnectAt for earliestTimestamp in Time Travel.
This commit is contained in:
@@ -618,14 +618,15 @@ export function receiveNodes(nodes) {
|
||||
|
||||
export function jumpToTime(timestamp) {
|
||||
return (dispatch, getState) => {
|
||||
const getScopeState = () => getState().scope || getState();
|
||||
dispatch({
|
||||
type: ActionTypes.JUMP_TO_TIME,
|
||||
timestamp,
|
||||
});
|
||||
getTopologies(getState, dispatch);
|
||||
getNodes(getState, dispatch);
|
||||
if (isResourceViewModeSelector(getState())) {
|
||||
getResourceViewNodesSnapshot(getState(), dispatch);
|
||||
getNodes(getScopeState, dispatch);
|
||||
getTopologies(getScopeState, dispatch);
|
||||
if (isResourceViewModeSelector(getScopeState())) {
|
||||
getResourceViewNodesSnapshot(getScopeState(), dispatch);
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -640,14 +641,15 @@ export function receiveNodesForTopology(nodes, topologyId) {
|
||||
|
||||
export function receiveTopologies(topologies) {
|
||||
return (dispatch, getState) => {
|
||||
const firstLoad = !getState().get('topologiesLoaded');
|
||||
const getScopeState = () => getState().scope || getState();
|
||||
const firstLoad = !getScopeState().get('topologiesLoaded');
|
||||
dispatch({
|
||||
type: ActionTypes.RECEIVE_TOPOLOGIES,
|
||||
topologies
|
||||
});
|
||||
getNodes(getState, dispatch);
|
||||
getNodes(getScopeState, dispatch);
|
||||
// Populate search matches on first load
|
||||
const state = getState();
|
||||
const state = getScopeState();
|
||||
if (firstLoad && state.get('searchQuery')) {
|
||||
dispatch(focusSearch());
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import Logo from './logo';
|
||||
import Footer from './footer';
|
||||
import Sidebar from './sidebar';
|
||||
import HelpPanel from './help-panel';
|
||||
import CloudFeature from './cloud-feature';
|
||||
import TroubleshootingMenu from './troubleshooting-menu';
|
||||
import Search from './search';
|
||||
import Status from './status';
|
||||
@@ -191,7 +192,10 @@ class App extends React.Component {
|
||||
{showingDetails && <Details />}
|
||||
|
||||
<div className="header">
|
||||
<TimeTravelWrapper />
|
||||
<CloudFeature alwaysShow>
|
||||
<TimeTravelWrapper />
|
||||
</CloudFeature>
|
||||
|
||||
<div className="selectors">
|
||||
<div className="logo">
|
||||
{!isIframe &&
|
||||
|
||||
@@ -62,7 +62,8 @@ class TimeTravelWrapper extends React.Component {
|
||||
<TimeTravel
|
||||
visible={visible}
|
||||
timestamp={timestamp || moment()}
|
||||
onChange={this.changeTimestamp}
|
||||
earliestTimestamp={this.props.earliestTimestamp}
|
||||
onChangeTimestamp={this.changeTimestamp}
|
||||
onTimestampInputEdit={this.trackTimestampEdit}
|
||||
onTimestampLabelClick={this.trackTimelineClick}
|
||||
onTimelineZoom={this.trackTimelineZoom}
|
||||
@@ -72,12 +73,24 @@ class TimeTravelWrapper extends React.Component {
|
||||
}
|
||||
}
|
||||
|
||||
function mapStateToProps(state) {
|
||||
function mapStateToProps(state, { params }) {
|
||||
const scopeState = state.scope || state;
|
||||
let firstSeenConnectedAt;
|
||||
|
||||
// If we're in the Weave Cloud context, use firstSeeConnectedAt as the earliest timestamp.
|
||||
if (state.root && state.root.instances) {
|
||||
const serviceInstance = state.root.instances[params && params.orgId];
|
||||
if (serviceInstance && serviceInstance.firstSeenConnectedAt) {
|
||||
firstSeenConnectedAt = moment(serviceInstance.firstSeenConnectedAt);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
visible: state.get('showingTimeTravel'),
|
||||
topologyViewMode: state.get('topologyViewMode'),
|
||||
currentTopology: state.get('currentTopology'),
|
||||
timestamp: state.get('pausedAt'),
|
||||
visible: scopeState.get('showingTimeTravel'),
|
||||
topologyViewMode: scopeState.get('topologyViewMode'),
|
||||
currentTopology: scopeState.get('currentTopology'),
|
||||
earliestTimestamp: firstSeenConnectedAt,
|
||||
timestamp: scopeState.get('pausedAt'),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user