mirror of
https://github.com/apache/superset.git
synced 2026-04-21 00:54:44 +00:00
* Carapal react mockup This is really just a mock up written in React to try different components. It could become scaffolding to build a prototype, or not. * Merging in Alanna's theme tweaks for SQL lab * Tweak the display of the alert message in navbar * Sketching the middleware refresh for Queries * Adjustments * Implement timer sync. * CTAS * Refactor the queries to be stored as a dict. (#994) * Download csv endpoint. (#992) * CSV download engdpoint. * Use lower case booleans. * Replcate loop with the object lookup by key. * First changes for the sync * Address comments * Fix query deletions. Update only the queries from the store. * Sync queries using tmp_id. * simplify * Fix the tests in the carapal. (#1023) * Sync queries using tmp_id. * Fix the unit tests * Bux fixes. Pass 2. * Tweakin' & linting * Adding alpha label to the SQL LAb navbar entry * Fixing the python unit tests
89 lines
1.9 KiB
JavaScript
89 lines
1.9 KiB
JavaScript
import moment from 'moment';
|
|
|
|
const d3 = require('d3');
|
|
|
|
function UTC(dttm) {
|
|
return new Date(
|
|
dttm.getUTCFullYear(),
|
|
dttm.getUTCMonth(),
|
|
dttm.getUTCDate(),
|
|
dttm.getUTCHours(),
|
|
dttm.getUTCMinutes(),
|
|
dttm.getUTCSeconds()
|
|
);
|
|
}
|
|
export const tickMultiFormat = d3.time.format.multi([
|
|
[
|
|
'.%L',
|
|
function (d) {
|
|
return d.getMilliseconds();
|
|
},
|
|
],
|
|
// If there are millisections, show only them
|
|
[
|
|
':%S',
|
|
function (d) {
|
|
return d.getSeconds();
|
|
},
|
|
],
|
|
// If there are seconds, show only them
|
|
[
|
|
'%a %b %d, %I:%M %p',
|
|
function (d) {
|
|
return d.getMinutes() !== 0;
|
|
},
|
|
],
|
|
// If there are non-zero minutes, show Date, Hour:Minute [AM/PM]
|
|
[
|
|
'%a %b %d, %I %p',
|
|
function (d) {
|
|
return d.getHours() !== 0;
|
|
},
|
|
],
|
|
// If there are hours that are multiples of 3, show date and AM/PM
|
|
[
|
|
'%a %b %d',
|
|
function (d) {
|
|
return d.getDate() !== 1;
|
|
},
|
|
],
|
|
// If not the first of the month, do "month day, year."
|
|
[
|
|
'%B %Y',
|
|
function (d) {
|
|
return d.getMonth() !== 0 && d.getDate() === 1;
|
|
},
|
|
],
|
|
// If the first of the month, do "month day, year."
|
|
[
|
|
'%Y',
|
|
function () {
|
|
return true;
|
|
},
|
|
], // fall back on month, year
|
|
]);
|
|
export const formatDate = function (dttm) {
|
|
const d = UTC(new Date(dttm));
|
|
// d = new Date(d.getTime() - 1 * 60 * 60 * 1000);
|
|
return tickMultiFormat(d);
|
|
};
|
|
export const timeFormatFactory = function (d3timeFormat) {
|
|
const f = d3.time.format(d3timeFormat);
|
|
return function (dttm) {
|
|
const d = UTC(new Date(dttm));
|
|
return f(d);
|
|
};
|
|
};
|
|
export const fDuration = function (t1, t2, f = 'HH:mm:ss.SS') {
|
|
const diffSec = t2 - t1;
|
|
const duration = moment(new Date(diffSec));
|
|
duration.millisecond((diffSec - Math.round(diffSec)) * 1000);
|
|
return duration.utc().format(f);
|
|
};
|
|
|
|
export const now = function () {
|
|
// seconds from EPOCH as a float
|
|
return moment().utc().valueOf() / 1000.0;
|
|
};
|
|
|