diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/buildQuery.ts b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/buildQuery.ts index 36bcb96515..3dc7bf87a3 100644 --- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/buildQuery.ts +++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/buildQuery.ts @@ -16,15 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -import { buildQueryContext, QueryFormData } from '@superset-ui/core'; +import { + buildQueryContext, + normalizeOrderBy, + QueryFormData, +} from '@superset-ui/core'; export default function buildQuery(formData: QueryFormData) { - const { metric, sort_by_metric, groupby } = formData; + const { groupby } = formData; return buildQueryContext(formData, baseQueryObject => [ { ...baseQueryObject, - ...(sort_by_metric && { orderby: [[metric, false]] }), + orderby: normalizeOrderBy(baseQueryObject).orderby, ...(groupby && { groupby }), }, ]); diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controlPanel.tsx index 7242e737f6..38615455c5 100644 --- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controlPanel.tsx +++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controlPanel.tsx @@ -59,9 +59,10 @@ const config: ControlPanelConfig = { [metricsControlSetItem, allColumnsControlSetItem], [percentMetricsControlSetItem], [timeSeriesLimitMetricControlSetItem, orderByControlSetItem], + [orderDescendingControlSetItem], serverPaginationControlSetRow, [rowLimitControlSetItem, serverPageLengthControlSetItem], - [includeTimeControlSetItem, orderDescendingControlSetItem], + [includeTimeControlSetItem], [showTotalsControlSetItem], ['adhoc_filters'], emitFilterControl, diff --git a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx index 93002bd49b..d2f52e8e9b 100644 --- a/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx +++ b/superset-frontend/plugins/plugin-chart-handlebars/src/plugin/controls/orderBy.tsx @@ -18,6 +18,7 @@ */ import { ControlSetItem, Dataset } from '@superset-ui/chart-controls'; import { t } from '@superset-ui/core'; +import { isEmpty } from 'lodash'; import { isAggMode, isRawMode } from './shared'; export const orderByControlSetItem: ControlSetItem = { @@ -45,7 +46,12 @@ export const orderDescendingControlSetItem: ControlSetItem = { label: t('Sort descending'), default: true, description: t('Whether to sort descending or ascending'), - visibility: isAggMode, + visibility: ({ controls }) => + !!( + isAggMode({ controls }) && + controls?.timeseries_limit_metric.value && + !isEmpty(controls?.timeseries_limit_metric.value) + ), resetOnHide: false, }, };