Skip to content

Commit

Permalink
addressing comments, linting
Browse files Browse the repository at this point in the history
  • Loading branch information
AAfghahi committed Jun 10, 2022
1 parent bf948f4 commit 4957d61
Showing 28 changed files with 33 additions and 226 deletions.
Original file line number Diff line number Diff line change
@@ -31,7 +31,6 @@ export const TIME_FILTER_LABELS = {
time_range: t('Time Range'),
granularity_sqla: t('Time Column'),
time_grain_sqla: t('Time Grain'),
druid_time_origin: t('Origin'),
granularity: t('Time Granularity'),
};

Original file line number Diff line number Diff line change
@@ -32,7 +32,6 @@ export const legacyTimeseriesTime: ControlPanelSectionConfig = {
...baseTimeSection,
controlSetRows: [
['granularity'],
['druid_time_origin'],
['granularity_sqla'],
['time_grain_sqla'],
['time_range'],
Original file line number Diff line number Diff line change
@@ -239,21 +239,6 @@ const columnsControl: typeof groupByControl = {
description: t('One or many columns to pivot as columns'),
};

const druid_time_origin: SharedControlConfig<'SelectControl'> = {
type: 'SelectControl',
freeForm: true,
label: TIME_FILTER_LABELS.druid_time_origin,
choices: [
['', 'default'],
['now', 'now'],
],
default: null,
description: t(
'Defines the origin where time buckets start, ' +
'accepts natural dates as in `now`, `sunday` or `1970-01-01`',
),
};

const granularity: SharedControlConfig<'SelectControl'> = {
type: 'SelectControl',
freeForm: true,
@@ -548,7 +533,6 @@ const sharedControls = {
secondary_metric: enableExploreDnd ? dnd_secondary_metric : secondary_metric,
groupby: enableExploreDnd ? dndGroupByControl : groupByControl,
columns: enableExploreDnd ? dndColumnsControl : columnsControl,
druid_time_origin,
granularity,
granularity_sqla: enableExploreDnd ? dnd_granularity_sqla : granularity_sqla,
time_grain_sqla,
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ import {
export const DTTM_ALIAS = '__timestamp';

export const EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS: (keyof ExtraFormDataOverrideExtras)[] =
['druid_time_origin', 'relative_start', 'relative_end', 'time_grain_sqla'];
['relative_start', 'relative_end', 'time_grain_sqla'];

export const EXTRA_FORM_DATA_APPEND_KEYS: (keyof ExtraFormDataAppend)[] = [
'adhoc_filters',
Original file line number Diff line number Diff line change
@@ -20,18 +20,17 @@
/* eslint-disable camelcase */
import {
AppliedTimeExtras,
isDruidFormData,
QueryFormData,
QueryObjectExtras,
QueryObjectFilterClause,
TimeColumnConfigKey,
} from './types';
import { TimeGranularity } from '../time-format/types';

type ExtraFilterQueryField = {
time_range?: string;
granularity_sqla?: string;
time_grain_sqla?: string;
druid_time_origin?: string;
time_grain_sqla?: TimeGranularity;
granularity?: string;
};

@@ -58,36 +57,28 @@ export default function extractExtras(formData: QueryFormData): ExtractedExtra {
__time_range: 'time_range',
__time_col: 'granularity_sqla',
__time_grain: 'time_grain_sqla',
__time_origin: 'druid_time_origin',
__granularity: 'granularity',
};

(formData.extra_filters || []).forEach(filter => {
if (filter.col in reservedColumnsToQueryField) {
const key = filter.col as TimeColumnConfigKey;
const queryField = reservedColumnsToQueryField[key];
extract[queryField] = filter.val as string;
extract[queryField] = filter.val as TimeGranularity;
applied_time_extras[key] = filter.val as string;
} else {
filters.push(filter);
}
});

// map to undeprecated names and remove deprecated fields
if (isDruidFormData(formData) && !extract.druid_time_origin) {
extras.druid_time_origin = formData.druid_time_origin;
delete extract.druid_time_origin;
} else {
// SQL
extras.time_grain_sqla =
extract.time_grain_sqla || formData.time_grain_sqla;
extract.granularity =
extract.granularity_sqla ||
formData.granularity ||
formData.granularity_sqla;
delete extract.granularity_sqla;
delete extract.time_grain_sqla;
}
// SQL
extras.time_grain_sqla = extract.time_grain_sqla || formData.time_grain_sqla;
extract.granularity =
extract.granularity_sqla ||
formData.granularity ||
formData.granularity_sqla;
delete extract.granularity_sqla;
delete extract.time_grain_sqla;

return extract;
}
Original file line number Diff line number Diff line change
@@ -82,7 +82,6 @@ export type Filter = {
adhoc_filters?: AdhocFilter[];
granularity_sqla?: string;
granularity?: string;
druid_time_origin?: string;
time_grain_sqla?: string;
time_range?: string;
requiredFirst?: boolean;
Original file line number Diff line number Diff line change
@@ -124,7 +124,7 @@ export type PostProcessingPivot = _PostProcessingPivot | DefaultPostProcessing;
interface _PostProcessingProphet {
operation: 'prophet';
options: {
time_grain: TimeGranularity;
time_grain: TimeGranularity | undefined;
periods: number;
confidence_interval: number;
yearly_seasonality?: boolean | number;
Original file line number Diff line number Diff line change
@@ -122,14 +122,14 @@ export type ExtraFormDataAppend = {
* filter clauses can't be overridden */
export type ExtraFormDataOverrideExtras = Pick<
QueryObjectExtras,
'druid_time_origin' | 'relative_start' | 'relative_end' | 'time_grain_sqla'
'relative_start' | 'relative_end' | 'time_grain_sqla'
>;

/** These parameters override those already present in the form data/query object */
export type ExtraFormDataOverrideRegular = Partial<
Pick<SqlaFormData, 'granularity_sqla'>
> &
Partial<Pick<DruidFormData, 'granularity'>> &
Partial<Pick<SqlaFormData, 'granularity'>> &
Partial<Pick<BaseFormData, 'time_range'>> &
Partial<Pick<QueryObject, 'time_column' | 'time_grain'>>;

@@ -194,23 +194,18 @@ export interface SqlaFormData extends BaseFormData {
/**
* Name of the Time Column. Time column is optional.
*/
granularity?: string;
granularity_sqla?: string;
time_grain_sqla?: TimeGranularity;
time_grain_sqla?: TimeGranularity | undefined;
having?: string;
}

export type QueryFormData = DruidFormData | SqlaFormData;
export type QueryFormData = SqlaFormData;

//---------------------------------------------------
// Type guards
//---------------------------------------------------

export function isDruidFormData(
formData: QueryFormData,
): formData is DruidFormData {
return 'granularity' in formData;
}

export function isSavedMetric(metric: QueryFormMetric): metric is SavedMetric {
return typeof metric === 'string';
}
Original file line number Diff line number Diff line change
@@ -30,7 +30,6 @@ export type TimeColumnConfigKey =
| '__time_col'
| '__time_grain'
| '__time_range'
| '__time_origin'
| '__granularity';

export type AppliedTimeExtras = Partial<
Original file line number Diff line number Diff line change
@@ -19,13 +19,14 @@

/* eslint sort-keys: 'off' */
/** The form data defined here is based on default visualizations packaged with Apache Superset */
import { TimeGranularity } from '../../../src/time-format/types';

export const bigNumberFormData = {
datasource: '3__table',
viz_type: 'big_number',
slice_id: 54,
granularity_sqla: 'ds',
time_grain_sqla: 'P1D',
time_grain_sqla: TimeGranularity.DAY,
time_range: '100 years ago : now',
metric: 'sum__num',
adhoc_filters: [],
Original file line number Diff line number Diff line change
@@ -17,12 +17,13 @@
* under the License.
*/
import extractExtras from '../../src/query/extractExtras';
import { TimeGranularity } from '../../src/time-format/types';

describe('extractExtras', () => {
const baseQueryFormData = {
datasource: '1__table',
granularity_sqla: 'ds',
time_grain_sqla: 'PT1M',
time_grain_sqla: TimeGranularity.MINUTE,
viz_type: 'my_viz',
};

8 changes: 1 addition & 7 deletions superset-frontend/src/SqlLab/fixtures.ts
Original file line number Diff line number Diff line change
@@ -89,12 +89,6 @@ export const table = {
referred_schema: 'carapal',
options: {},
},
{
unique: false,
column_names: ['druid_datasource_id'],
type: 'index' as ColumnKeyTypeType,
name: 'druid_datasource_id',
},
],
},
{
@@ -266,7 +260,7 @@ export const queries = [
userId: 1,
executedSql:
'SELECT * \nFROM (SELECT created_on, changed_on, id, slice_name, ' +
'druid_datasource_id, table_id, datasource_type, datasource_name, ' +
'table_id, datasource_type, datasource_name, ' +
'viz_type, params, created_by_fk, changed_by_fk, description, ' +
'cache_timeout, perm\nFROM superset.slices) AS inner_qry \n LIMIT 1000',
changed_on: '2016-10-19T20:56:12',
97 changes: 0 additions & 97 deletions superset-frontend/src/dashboard/util/filterboxMigrationHelper.ts
Original file line number Diff line number Diff line change
@@ -51,9 +51,6 @@ interface SliceData {
granularity_sqla?: string;
time_grain_sqla?: string;
time_range?: string;
druid_time_origin?: string;
show_druid_time_granularity?: boolean;
show_druid_time_origin?: boolean;
show_sqla_time_column?: boolean;
show_sqla_time_granularity?: boolean;
viz_type: string;
@@ -205,12 +202,8 @@ export default function getNativeFilterConfig(
adhoc_filters = [],
datasource = '',
date_filter = false,
druid_time_origin,
filter_configs = [],
granularity,
granularity_sqla,
show_druid_time_granularity = false,
show_druid_time_origin = false,
show_sqla_time_column = false,
show_sqla_time_granularity = false,
time_grain_sqla,
@@ -343,96 +336,6 @@ export default function getNativeFilterConfig(
}
filterConfig.push(timeColumnFilter);
}

if (show_druid_time_granularity) {
const { scope, immune }: FilterScopeType =
scopesByChartId[TIME_FILTER_MAP.granularity] ||
DASHBOARD_FILTER_SCOPE_GLOBAL;
const druidGranularityFilter: Filter = {
id: `NATIVE_FILTER-${shortid.generate()}`,
description: 'time grain filter',
controlValues: {},
name: TIME_FILTER_LABELS.granularity,
filterType: FILTER_COMPONENT_FILTER_TYPES.FILTER_TIMEGRAIN,
targets: [
{
datasetId: parseInt(datasource.split('__')[0], 10),
},
],
cascadeParentIds: [],
defaultDataMask: {},
type: NativeFilterType.NATIVE_FILTER,
scope: {
rootPath: scope,
excluded: immune,
},
};
filterBoxToFilterComponentMap[key][TIME_FILTER_MAP.granularity] =
druidGranularityFilter.id;
const dashboardDefaultValues = getDashboardDefaultValues(
key,
TIME_FILTER_MAP.granularity,
);
if (!isEmpty(dashboardDefaultValues)) {
druidGranularityFilter.defaultDataMask = {
extraFormData: {
granularity_sqla: (dashboardDefaultValues ||
granularity) as string,
},
filterState: {
value: setValuesInArray(dashboardDefaultValues, granularity),
},
};
}
filterConfig.push(druidGranularityFilter);
}

if (show_druid_time_origin) {
const { scope, immune }: FilterScopeType =
scopesByChartId[TIME_FILTER_MAP.druid_time_origin] ||
DASHBOARD_FILTER_SCOPE_GLOBAL;
const druidOriginFilter: Filter = {
id: `NATIVE_FILTER-${shortid.generate()}`,
description: 'time column filter',
controlValues: {},
name: TIME_FILTER_LABELS.druid_time_origin,
filterType: FILTER_COMPONENT_FILTER_TYPES.FILTER_TIMECOLUMN,
targets: [
{
datasetId: parseInt(datasource.split('__')[0], 10),
},
],
cascadeParentIds: [],
defaultDataMask: {},
type: NativeFilterType.NATIVE_FILTER,
scope: {
rootPath: scope,
excluded: immune,
},
};
filterBoxToFilterComponentMap[key][
TIME_FILTER_MAP.druid_time_origin
] = druidOriginFilter.id;
const dashboardDefaultValues = getDashboardDefaultValues(
key,
TIME_FILTER_MAP.druid_time_origin,
);
if (!isEmpty(dashboardDefaultValues)) {
druidOriginFilter.defaultDataMask = {
extraFormData: {
granularity_sqla: (dashboardDefaultValues ||
druid_time_origin) as string,
},
filterState: {
value: setValuesInArray(
dashboardDefaultValues,
druid_time_origin,
),
},
};
}
filterConfig.push(druidOriginFilter);
}
}

filter_configs.forEach(config => {
Original file line number Diff line number Diff line change
@@ -28,7 +28,6 @@ export default function getFilterConfigsFromFormdata(form_data = {}) {
date_filter,
filter_configs = [],
show_druid_time_granularity,
show_druid_time_origin,
show_sqla_time_column,
show_sqla_time_granularity,
} = form_data;
@@ -101,13 +100,6 @@ export default function getFilterConfigsFromFormdata(form_data = {}) {
};
}

if (show_druid_time_origin) {
updatedColumns = {
...updatedColumns,
[TIME_FILTER_MAP.druid_time_origin]: form_data.druid_time_origin,
};
}

configs = {
...configs,
columns: updatedColumns,
Original file line number Diff line number Diff line change
@@ -138,9 +138,9 @@ export const useSimpleTabFilterProps = (props: Props) => {
operator === Operators.IS_NULL || operator === Operators.IS_NOT_NULL
);
}
return !(
props.adhocFilter.clause === CLAUSES.HAVING &&
HAVING_OPERATORS.indexOf(operator) === -1
return (
props.adhocFilter.clause !== CLAUSES.HAVING ||
HAVING_OPERATORS.indexOf(operator) !== -1
);
};
const onSubjectChange = (id: string) => {
Loading

0 comments on commit 4957d61

Please sign in to comment.