From 45600b3846d8d9e57f85806e50b6c1b1f460e1b7 Mon Sep 17 00:00:00 2001 From: ebb-tide Date: Thu, 31 May 2018 15:16:57 -0700 Subject: [PATCH] Sync Url Query to timerange selections for lower,upper, and zoomed ranges --- ui/src/dashboards/actions/index.js | 11 +++++++++-- ui/src/dashboards/containers/DashboardPage.js | 18 ++++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/ui/src/dashboards/actions/index.js b/ui/src/dashboards/actions/index.js index 99da10be2e..deb149b0ab 100644 --- a/ui/src/dashboards/actions/index.js +++ b/ui/src/dashboards/actions/index.js @@ -388,12 +388,19 @@ export const syncURLQueryFromQueryObject = ( export const syncURLQueryFromTempVars = ( location, tempVars, - deletedTempVars = [] + deletedTempVars = [], + timeRange = {} ) => dispatch => { const updatedURLQueries = generateURLQueryFromTempVars(tempVars) const deletedURLQueries = generateURLQueryFromTempVars(deletedTempVars) + const updatedURLQueriesWithTimeRange = {...updatedURLQueries, ...timeRange} + dispatch( - syncURLQueryFromQueryObject(location, updatedURLQueries, deletedURLQueries) + syncURLQueryFromQueryObject( + location, + updatedURLQueriesWithTimeRange, + deletedURLQueries + ) ) } diff --git a/ui/src/dashboards/containers/DashboardPage.js b/ui/src/dashboards/containers/DashboardPage.js index c6db6d4178..814457fec4 100644 --- a/ui/src/dashboards/containers/DashboardPage.js +++ b/ui/src/dashboards/containers/DashboardPage.js @@ -126,7 +126,8 @@ class DashboardPage extends Component { notify(notifyInvalidTempVarValueInURLQuery(invalidURLQuery)) }) - syncURLQueryFromTempVars(location, dashboard.templates) + const {upper, lower} = timeRange + syncURLQueryFromTempVars(location, dashboard.templates, [], {upper, lower}) // Refresh and persists influxql generated template variable values. // If using auth and role is Viewer, temp vars will be stale until dashboard @@ -222,6 +223,11 @@ class DashboardPage extends Component { format: FORMAT_INFLUXQL, }) + dashboardActions.syncURLQueryFromQueryObject(location, { + lower: timeRange.lower, + upper: timeRange.upper, + }) + const annotationRange = millisecondTimeRange(timeRange) getAnnotationsAsync(source.links.annotations, annotationRange) } @@ -337,6 +343,11 @@ class DashboardPage extends Component { handleZoomedTimeRange = (zoomedLower, zoomedUpper) => { this.setState({zoomedTimeRange: {zoomedLower, zoomedUpper}}) + const {dashboardActions, location} = this.props + dashboardActions.syncURLQueryFromQueryObject(location, { + zoomedLower, + zoomedUpper, + }) } setScrollTop = event => { @@ -374,12 +385,11 @@ class DashboardPage extends Component { params: {sourceID, dashboardID}, } = this.props - const low = zoomedLower ? zoomedLower : lower - const up = zoomedUpper ? zoomedUpper : upper + const low = zoomedLower || lower + const up = zoomedUpper || upper const lowerType = low && low.includes(':') ? 'timeStamp' : 'constant' const upperType = up && up.includes(':') ? 'timeStamp' : 'constant' - const dashboardTime = { id: 'dashtime', tempVar: TEMP_VAR_DASHBOARD_TIME,