diff --git a/superset/assets/javascripts/explore/stores/visTypes.js b/superset/assets/javascripts/explore/stores/visTypes.js index 3bc7fd626be..1e2eec23173 100644 --- a/superset/assets/javascripts/explore/stores/visTypes.js +++ b/superset/assets/javascripts/explore/stores/visTypes.js @@ -148,6 +148,7 @@ const visTypes = { controlOverrides: { x_axis_format: { choices: D3_TIME_FORMAT_OPTIONS, + default: 'smart_date', }, }, }, @@ -185,6 +186,7 @@ const visTypes = { }, x_axis_format: { choices: D3_TIME_FORMAT_OPTIONS, + default: 'smart_date', }, }, }, @@ -217,8 +219,7 @@ const visTypes = { controlOverrides: { x_axis_format: { choices: D3_TIME_FORMAT_OPTIONS, - default: control => - control.choices && control.choices.length > 0 ? [control.choices[0][0]] : null, + default: 'smart_date', }, }, }, @@ -236,6 +237,12 @@ const visTypes = { }, sections.NVD3TimeSeries[1], ], + controlOverrides: { + x_axis_format: { + choices: D3_TIME_FORMAT_OPTIONS, + default: 'smart_date', + }, + }, }, area: { @@ -262,6 +269,12 @@ const visTypes = { }, sections.NVD3TimeSeries[1], ], + controlOverrides: { + x_axis_format: { + default: 'smart_date', + choices: D3_TIME_FORMAT_OPTIONS, + }, + }, }, table: { diff --git a/superset/assets/javascripts/modules/utils.js b/superset/assets/javascripts/modules/utils.js index f2dca0a6c29..7349dbb7f8f 100644 --- a/superset/assets/javascripts/modules/utils.js +++ b/superset/assets/javascripts/modules/utils.js @@ -15,10 +15,11 @@ export function d3FormatPreset(format) { return d3.format('.3s'); } export const d3TimeFormatPreset = function (format) { - if (format === 'smart_date') { + const effFormat = format || 'smart_date'; + if (effFormat === 'smart_date') { return formatDate; } - const f = d3.time.format(format); + const f = d3.time.format(effFormat); return function (dttm) { const d = UTC(new Date(dttm)); return f(d); diff --git a/superset/assets/visualizations/nvd3_vis.js b/superset/assets/visualizations/nvd3_vis.js index 736de78f56e..1f34d9b797a 100644 --- a/superset/assets/visualizations/nvd3_vis.js +++ b/superset/assets/visualizations/nvd3_vis.js @@ -7,14 +7,10 @@ import nv from 'nvd3'; import { category21 } from '../javascripts/modules/colors'; import { customizeToolTip, d3TimeFormatPreset, d3FormatPreset, tryNumify } from '../javascripts/modules/utils'; -import { D3_TIME_FORMAT_OPTIONS } from '../javascripts/explore/stores/controls'; - - // CSS import '../node_modules/nvd3/build/nv.d3.min.css'; import './nvd3_vis.css'; -const timeStampFormats = D3_TIME_FORMAT_OPTIONS.map(opt => opt[0]); const minBarWidth = 15; const animationTime = 1000; @@ -316,15 +312,15 @@ function nvd3Vis(slice, payload) { if (fd.x_log_scale) { chart.xScale(d3.scale.log()); } - - const isTimeSeries = timeStampFormats.indexOf(fd.x_axis_format) > -1; + const isTimeSeries = [ + 'line', 'dual_line', 'area', 'compare', 'bar'].indexOf(vizType) >= 0; // if x axis format is a date format, rotate label 90 degrees if (isTimeSeries) { chart.xAxis.rotateLabels(45); } let xAxisFormatter = d3FormatPreset(fd.x_axis_format); - if (isTimeSeries && fd.x_axis_format) { + if (isTimeSeries) { xAxisFormatter = d3TimeFormatPreset(fd.x_axis_format); } if (chart.x2Axis && chart.x2Axis.tickFormat) {