From cc012a86ad334790da11c62f8089f3b28aa5c1f4 Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Wed, 28 Aug 2019 16:53:12 +0300 Subject: [PATCH 1/2] Add duration formatter --- superset/assets/src/explore/controls.jsx | 3 +++ superset/assets/src/setup/setupFormatters.js | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/superset/assets/src/explore/controls.jsx b/superset/assets/src/explore/controls.jsx index 449cccc06de8..6e49c2f5a55f 100644 --- a/superset/assets/src/explore/controls.jsx +++ b/superset/assets/src/explore/controls.jsx @@ -88,6 +88,9 @@ const D3_FORMAT_OPTIONS = [ [',.3f', ',.3f (12345.432 => 12,345.432)'], ['+,', '+, (12345.432 => +12,345.432)'], ['$,.2f', '$,.2f (12345.432 => $12,345.43)'], + ['DURATION_MS', 'Duration in ms (66000 => 1m 6s)'], + ['DURATION_SEC', 'Duration in sec (66 => 1m 6s)'], + ['DURATION_MIN', 'Duration in min (66 => 1h 6 min)'], ]; const ROW_LIMIT_OPTIONS = [10, 50, 100, 250, 500, 1000, 5000, 10000, 50000]; diff --git a/superset/assets/src/setup/setupFormatters.js b/superset/assets/src/setup/setupFormatters.js index 7d6bd2c6bfae..782c57c3058b 100644 --- a/superset/assets/src/setup/setupFormatters.js +++ b/superset/assets/src/setup/setupFormatters.js @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { getNumberFormatter, getNumberFormatterRegistry, NumberFormats } from '@superset-ui/number-format'; +import { createDurationFormatter, getNumberFormatter, getNumberFormatterRegistry, NumberFormats } from '@superset-ui/number-format'; import { getTimeFormatterRegistry, smartDateFormatter, smartDateVerboseFormatter } from '@superset-ui/time-format'; export default function setupFormatters() { @@ -54,7 +54,10 @@ export default function setupFormatters() { .registerValue('.0%f', getNumberFormatter('.1%')) .registerValue('$,0', getNumberFormatter('$,.4f')) .registerValue('$,0f', getNumberFormatter('$,.4f')) - .registerValue('$,.f', getNumberFormatter('$,.4f')); + .registerValue('$,.f', getNumberFormatter('$,.4f')) + .registerValue('DURATION_MS', createDurationFormatter()) + .registerValue('DURATION_SEC', createDurationFormatter({ multiplier: 1000 })) + .registerValue('DURATION_MIN', createDurationFormatter({ multiplier: 60000 })); getTimeFormatterRegistry() .registerValue('smart_date', smartDateFormatter) From 68b3c91c1709b06c463d2a4be441c95c8fe7378d Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Thu, 29 Aug 2019 07:59:31 +0300 Subject: [PATCH 2/2] Remove sec and min formatters and add subMillisecond option --- superset/assets/src/explore/controls.jsx | 5 ++--- superset/assets/src/setup/setupFormatters.js | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/superset/assets/src/explore/controls.jsx b/superset/assets/src/explore/controls.jsx index 6e49c2f5a55f..523a39037318 100644 --- a/superset/assets/src/explore/controls.jsx +++ b/superset/assets/src/explore/controls.jsx @@ -88,9 +88,8 @@ const D3_FORMAT_OPTIONS = [ [',.3f', ',.3f (12345.432 => 12,345.432)'], ['+,', '+, (12345.432 => +12,345.432)'], ['$,.2f', '$,.2f (12345.432 => $12,345.43)'], - ['DURATION_MS', 'Duration in ms (66000 => 1m 6s)'], - ['DURATION_SEC', 'Duration in sec (66 => 1m 6s)'], - ['DURATION_MIN', 'Duration in min (66 => 1h 6 min)'], + ['DURATION', 'Duration in ms (66000 => 1m 6s)'], + ['DURATION_SUB', 'Duration in ms (100.40008 => 100ms 400µs 80ns)'], ]; const ROW_LIMIT_OPTIONS = [10, 50, 100, 250, 500, 1000, 5000, 10000, 50000]; diff --git a/superset/assets/src/setup/setupFormatters.js b/superset/assets/src/setup/setupFormatters.js index 782c57c3058b..9972caeb3ed0 100644 --- a/superset/assets/src/setup/setupFormatters.js +++ b/superset/assets/src/setup/setupFormatters.js @@ -55,9 +55,8 @@ export default function setupFormatters() { .registerValue('$,0', getNumberFormatter('$,.4f')) .registerValue('$,0f', getNumberFormatter('$,.4f')) .registerValue('$,.f', getNumberFormatter('$,.4f')) - .registerValue('DURATION_MS', createDurationFormatter()) - .registerValue('DURATION_SEC', createDurationFormatter({ multiplier: 1000 })) - .registerValue('DURATION_MIN', createDurationFormatter({ multiplier: 60000 })); + .registerValue('DURATION', createDurationFormatter()) + .registerValue('DURATION_SUB', createDurationFormatter({ formatSubMilliseconds: true })); getTimeFormatterRegistry() .registerValue('smart_date', smartDateFormatter)