[v10.0.x] Templating: Fix cell macro date formatting (#75173)

Templating: Fix cell macro date formatting (#75159)

Closes #70301

(cherry picked from commit 0884f78110)

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
This commit is contained in:
grafana-delivery-bot[bot]
2023-09-20 17:17:52 +01:00
committed by GitHub
co-authored by kay delaney
parent de6e27e262
commit 86a6ebd700
2 changed files with 14 additions and 3 deletions
@@ -541,4 +541,12 @@ describe('fixCellTemplateExpressions', () => {
'${__data.fields[10]} asd ${__data.fields[15]} asd ${__data.fields[20]}'
);
});
it('Should handle date formatting', () => {
expect(
fixCellTemplateExpressions('$__cell_10:date:iso asd ${__cell_15:date:seconds} asd [[__cell_20:date:YYYY-MM]]')
).toEqual(
'${__data.fields[10]:date:iso} asd ${__data.fields[15]:date:seconds} asd ${__data.fields[20]:date:YYYY-MM}'
);
});
});
@@ -373,9 +373,12 @@ function getDisplayText(display: DisplayValue, fallback: string): string {
}
export function fixCellTemplateExpressions(str: string) {
return str.replace(/\${__cell_(\d+)}|\[\[__cell_(\d+)\]\]|\$__cell_(\d+)/g, (match, fmt1, fmt2, fmt3) => {
return `\${__data.fields[${fmt1 ?? fmt2 ?? fmt3}]}`;
});
return str.replace(
/\${__cell_(\d+)(.*?)}|\[\[__cell_(\d+)(.*?)\]\]|\$__cell_(\d+)(\S*)/g,
(match, cellNum1, fmt1, cellNum2, fmt2, cellNum3, fmt3) => {
return `\${__data.fields[${cellNum1 ?? cellNum2 ?? cellNum3}]${fmt1 ?? fmt2 ?? fmt3}}`;
}
);
}
/**