Merge pull request #3316 from influxdata/table/handle-errors

Table/bug squashing
pull/10616/head
Deniz Kusefoglu 2018-04-25 17:51:08 -07:00 committed by GitHub
commit fba9ed88bf
2 changed files with 23 additions and 14 deletions

View File

@ -63,6 +63,7 @@ const RefreshingGraph = ({
templates={templates}
autoRefresh={autoRefresh}
cellHeight={cellHeight}
editQueryStatus={editQueryStatus}
prefix={prefix}
suffix={suffix}
inView={inView}
@ -81,6 +82,7 @@ const RefreshingGraph = ({
autoRefresh={autoRefresh}
cellHeight={cellHeight}
resizerTopHeight={resizerTopHeight}
editQueryStatus={editQueryStatus}
resizeCoords={resizeCoords}
cellID={cellID}
prefix={prefix}
@ -105,6 +107,7 @@ const RefreshingGraph = ({
cellHeight={cellHeight}
resizeCoords={resizeCoords}
tableOptions={tableOptions}
editQueryStatus={editQueryStatus}
resizerTopHeight={resizerTopHeight}
handleSetHoverTime={handleSetHoverTime}
isInCEO={isInCEO}

View File

@ -2,8 +2,11 @@ import _ from 'lodash'
import {shiftDate} from 'shared/query/helpers'
import {map, reduce, forEach, concat, clone} from 'fast.js'
const groupByMap = (responses, responseIndex, groupByColumns) => {
const firstColumns = _.get(responses, [0, 'series', 0, 'columns'])
const groupByMap = (results, responseIndex, groupByColumns) => {
if (_.isEmpty(results)) {
return []
}
const firstColumns = _.get(results, [0, 'series', 0, 'columns'])
const accum = [
{
responseIndex,
@ -15,14 +18,14 @@ const groupByMap = (responses, responseIndex, groupByColumns) => {
...firstColumns.slice(1),
],
groupByColumns,
name: _.get(responses, [0, 'series', 0, 'name']),
name: _.get(results, [0, 'series', 0, 'name'], ''),
values: [],
},
],
},
]
const seriesArray = _.get(responses, [0, 'series'])
const seriesArray = _.get(results, [0, 'series'])
seriesArray.forEach(s => {
const prevValues = accum[0].series[0].values
const tagsToAdd = groupByColumns.map(gb => s.tags[gb])
@ -35,13 +38,14 @@ const groupByMap = (responses, responseIndex, groupByColumns) => {
const constructResults = (raw, groupBys) => {
return _.flatten(
map(raw, (response, index) => {
const responses = _.get(response, 'response.results', [])
const results = _.get(response, 'response.results', [])
const successfulResults = _.filter(results, r => _.isNil(r.error))
if (groupBys[index]) {
return groupByMap(responses, index, groupBys[index])
return groupByMap(successfulResults, index, groupBys[index])
}
return map(responses, r => ({...r, responseIndex: index}))
return map(successfulResults, r => ({...r, responseIndex: index}))
})
)
}
@ -81,22 +85,24 @@ const constructCells = serieses => {
name: measurement,
columns,
groupByColumns,
values,
values = [],
seriesIndex,
responseIndex,
tags = {},
},
ind
) => {
const rows = map(values || [], vals => ({
vals,
}))
const rows = map(values, vals => ({vals}))
const tagSet = map(Object.keys(tags), tag => `[${tag}=${tags[tag]}]`)
.sort()
.join('')
const unsortedLabels = map(columns.slice(1), (field, i) => ({
label:
groupByColumns && i <= groupByColumns.length - 1
? `${field}`
: `${measurement}.${field}`,
: `${measurement}.${field}${tagSet}`,
responseIndex,
seriesIndex,
}))
@ -221,8 +227,8 @@ export const groupByTimeSeriesTransform = (raw, groupBys) => {
if (!groupBys) {
groupBys = Array(raw.length).fill(false)
}
const results = constructResults(raw, groupBys)
const results = constructResults(raw, groupBys)
const serieses = constructSerieses(results)
const {cells, sortedLabels, seriesLabels} = constructCells(serieses)