diff --git a/frontend/src/constants/dashboard.ts b/frontend/src/constants/dashboard.ts index 3aa495d6b8..587b781906 100644 --- a/frontend/src/constants/dashboard.ts +++ b/frontend/src/constants/dashboard.ts @@ -30,4 +30,5 @@ export const QueryBuilderQueryTemplate = { export const QueryBuilderFormulaTemplate = { expression: '', disabled: false, + legend: '', }; diff --git a/frontend/src/container/FormAlertRules/QuerySection.tsx b/frontend/src/container/FormAlertRules/QuerySection.tsx index b34247e265..2450f31dcd 100644 --- a/frontend/src/container/FormAlertRules/QuerySection.tsx +++ b/frontend/src/container/FormAlertRules/QuerySection.tsx @@ -68,15 +68,20 @@ function QuerySection({ const handleFormulaChange = ({ formulaIndex, expression, + legend, toggleDisable, toggleDelete, }: IQueryBuilderFormulaHandleChange): void => { const allFormulas = formulaQueries; const current = allFormulas[formulaIndex]; - if (expression) { + if (expression !== undefined) { current.expression = expression; } + if (legend !== undefined) { + current.legend = legend; + } + if (toggleDisable) { current.disabled = !current.disabled; } @@ -179,6 +184,7 @@ function QuerySection({ formulaOnly: true, expression: 'A', disabled: false, + legend: '', }; setFormulaQueries({ ...formulas }); diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx index 02bc41198c..9a5ce5e8c5 100644 --- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx +++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx @@ -37,6 +37,14 @@ function MetricsBuilderFormula({ style={{ marginBottom: '0.5rem' }} rows={2} /> + { + handleFormulaChange({ formulaIndex, legend: event.target.value }); + }} + size="middle" + defaultValue={formulaData.legend} + addonBefore="Legend Format" + /> ); } diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx index fdb6d4b7bc..f485b4e95c 100644 --- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx +++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx @@ -85,6 +85,7 @@ function QueryBuilderQueryContainer({ const handleQueryBuilderFormulaChange = ({ formulaIndex, expression, + legend, toggleDisable, toggleDelete, }: IQueryBuilderFormulaHandleChange): void => { @@ -94,9 +95,12 @@ function QueryBuilderQueryContainer({ ]; const currentIndexFormula = allFormulas[formulaIndex as number]; - if (expression) { + if (expression !== undefined) { currentIndexFormula.expression = expression; } + if (legend !== undefined) { + currentIndexFormula.legend = legend; + } if (toggleDisable) { currentIndexFormula.disabled = !currentIndexFormula.disabled; diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts index c577b8d123..d468579d2a 100644 --- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts +++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts @@ -19,5 +19,6 @@ export interface IQueryBuilderFormulaHandleChange { formulaIndex: number | string; expression?: IMetricsBuilderFormula['expression']; toggleDisable?: IMetricsBuilderFormula['disabled']; + legend?: IMetricsBuilderFormula['legend']; toggleDelete?: boolean; } diff --git a/frontend/src/store/actions/dashboard/getQueryResults.ts b/frontend/src/store/actions/dashboard/getQueryResults.ts index 17137b13c1..88cd3bbf07 100644 --- a/frontend/src/store/actions/dashboard/getQueryResults.ts +++ b/frontend/src/store/actions/dashboard/getQueryResults.ts @@ -76,9 +76,11 @@ export async function GetMetricQueryRange({ queryData[WIDGET_QUERY_BUILDER_FORMULA_KEY_NAME].map((formula) => { const generatedFormulaPayload = {}; + legendMap[formula.name] = formula.legend || formula.name; generatedFormulaPayload.queryName = formula.name; generatedFormulaPayload.expression = formula.expression; generatedFormulaPayload.disabled = formula.disabled; + generatedFormulaPayload.legend = formula.legend; builderQueries[formula.name] = generatedFormulaPayload; }); QueryPayload.compositeMetricQuery.builderQueries = builderQueries; diff --git a/frontend/src/types/api/alerts/compositeQuery.ts b/frontend/src/types/api/alerts/compositeQuery.ts index 868eb712c4..42c0c5a753 100644 --- a/frontend/src/types/api/alerts/compositeQuery.ts +++ b/frontend/src/types/api/alerts/compositeQuery.ts @@ -28,10 +28,9 @@ export interface IBuilderQueries { // for api calls export interface IBuilderQuery extends Omit< - IMetricQuery, - 'aggregateOperator' | 'legend' | 'metricName' | 'tagFilters' - >, - Omit { + IMetricQuery, + 'aggregateOperator' | 'legend' | 'metricName' | 'tagFilters' + > { aggregateOperator: EAggregateOperator | undefined; disabled: boolean; name: string; diff --git a/frontend/src/types/api/dashboard/getAll.ts b/frontend/src/types/api/dashboard/getAll.ts index 6ae751475f..c158bff826 100644 --- a/frontend/src/types/api/dashboard/getAll.ts +++ b/frontend/src/types/api/dashboard/getAll.ts @@ -71,6 +71,7 @@ export interface IMetricsBuilderFormula { expression: string; disabled: boolean; name: string; + legend: string; } export interface IMetricsBuilderQuery { aggregateOperator: EAggregateOperator;