feat: support for legend in query builderformulas (#1530)

This commit is contained in:
Pranshu Chittora 2022-08-23 11:17:49 +05:30 committed by GitHub
parent f48a884f90
commit 5e0eb05a9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 28 additions and 6 deletions

View File

@ -30,4 +30,5 @@ export const QueryBuilderQueryTemplate = {
export const QueryBuilderFormulaTemplate = { export const QueryBuilderFormulaTemplate = {
expression: '', expression: '',
disabled: false, disabled: false,
legend: '',
}; };

View File

@ -68,15 +68,20 @@ function QuerySection({
const handleFormulaChange = ({ const handleFormulaChange = ({
formulaIndex, formulaIndex,
expression, expression,
legend,
toggleDisable, toggleDisable,
toggleDelete, toggleDelete,
}: IQueryBuilderFormulaHandleChange): void => { }: IQueryBuilderFormulaHandleChange): void => {
const allFormulas = formulaQueries; const allFormulas = formulaQueries;
const current = allFormulas[formulaIndex]; const current = allFormulas[formulaIndex];
if (expression) { if (expression !== undefined) {
current.expression = expression; current.expression = expression;
} }
if (legend !== undefined) {
current.legend = legend;
}
if (toggleDisable) { if (toggleDisable) {
current.disabled = !current.disabled; current.disabled = !current.disabled;
} }
@ -179,6 +184,7 @@ function QuerySection({
formulaOnly: true, formulaOnly: true,
expression: 'A', expression: 'A',
disabled: false, disabled: false,
legend: '',
}; };
setFormulaQueries({ ...formulas }); setFormulaQueries({ ...formulas });

View File

@ -37,6 +37,14 @@ function MetricsBuilderFormula({
style={{ marginBottom: '0.5rem' }} style={{ marginBottom: '0.5rem' }}
rows={2} rows={2}
/> />
<Input
onChange={(event): void => {
handleFormulaChange({ formulaIndex, legend: event.target.value });
}}
size="middle"
defaultValue={formulaData.legend}
addonBefore="Legend Format"
/>
</QueryHeader> </QueryHeader>
); );
} }

View File

@ -85,6 +85,7 @@ function QueryBuilderQueryContainer({
const handleQueryBuilderFormulaChange = ({ const handleQueryBuilderFormulaChange = ({
formulaIndex, formulaIndex,
expression, expression,
legend,
toggleDisable, toggleDisable,
toggleDelete, toggleDelete,
}: IQueryBuilderFormulaHandleChange): void => { }: IQueryBuilderFormulaHandleChange): void => {
@ -94,9 +95,12 @@ function QueryBuilderQueryContainer({
]; ];
const currentIndexFormula = allFormulas[formulaIndex as number]; const currentIndexFormula = allFormulas[formulaIndex as number];
if (expression) { if (expression !== undefined) {
currentIndexFormula.expression = expression; currentIndexFormula.expression = expression;
} }
if (legend !== undefined) {
currentIndexFormula.legend = legend;
}
if (toggleDisable) { if (toggleDisable) {
currentIndexFormula.disabled = !currentIndexFormula.disabled; currentIndexFormula.disabled = !currentIndexFormula.disabled;

View File

@ -19,5 +19,6 @@ export interface IQueryBuilderFormulaHandleChange {
formulaIndex: number | string; formulaIndex: number | string;
expression?: IMetricsBuilderFormula['expression']; expression?: IMetricsBuilderFormula['expression'];
toggleDisable?: IMetricsBuilderFormula['disabled']; toggleDisable?: IMetricsBuilderFormula['disabled'];
legend?: IMetricsBuilderFormula['legend'];
toggleDelete?: boolean; toggleDelete?: boolean;
} }

View File

@ -76,9 +76,11 @@ export async function GetMetricQueryRange({
queryData[WIDGET_QUERY_BUILDER_FORMULA_KEY_NAME].map((formula) => { queryData[WIDGET_QUERY_BUILDER_FORMULA_KEY_NAME].map((formula) => {
const generatedFormulaPayload = {}; const generatedFormulaPayload = {};
legendMap[formula.name] = formula.legend || formula.name;
generatedFormulaPayload.queryName = formula.name; generatedFormulaPayload.queryName = formula.name;
generatedFormulaPayload.expression = formula.expression; generatedFormulaPayload.expression = formula.expression;
generatedFormulaPayload.disabled = formula.disabled; generatedFormulaPayload.disabled = formula.disabled;
generatedFormulaPayload.legend = formula.legend;
builderQueries[formula.name] = generatedFormulaPayload; builderQueries[formula.name] = generatedFormulaPayload;
}); });
QueryPayload.compositeMetricQuery.builderQueries = builderQueries; QueryPayload.compositeMetricQuery.builderQueries = builderQueries;

View File

@ -28,10 +28,9 @@ export interface IBuilderQueries {
// for api calls // for api calls
export interface IBuilderQuery export interface IBuilderQuery
extends Omit< extends Omit<
IMetricQuery, IMetricQuery,
'aggregateOperator' | 'legend' | 'metricName' | 'tagFilters' 'aggregateOperator' | 'legend' | 'metricName' | 'tagFilters'
>, > {
Omit<IFormulaQuery, 'expression'> {
aggregateOperator: EAggregateOperator | undefined; aggregateOperator: EAggregateOperator | undefined;
disabled: boolean; disabled: boolean;
name: string; name: string;

View File

@ -71,6 +71,7 @@ export interface IMetricsBuilderFormula {
expression: string; expression: string;
disabled: boolean; disabled: boolean;
name: string; name: string;
legend: string;
} }
export interface IMetricsBuilderQuery { export interface IMetricsBuilderQuery {
aggregateOperator: EAggregateOperator; aggregateOperator: EAggregateOperator;