Suggestions: Prioritize preferred visualizations for suggestion list (#67326)

Prioritize preferred visualizations for suggestion list.
This commit is contained in:
Sarah Zinger 2023-06-20 08:40:28 -04:00 committed by GitHub
parent d5d3db9a6e
commit 65d85ca9bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 0 deletions

View File

@ -338,6 +338,29 @@ scenario('Given default loki logs data', (ctx) => {
});
});
scenario('Given a preferredVisualisationType', (ctx) => {
ctx.setData([
toDataFrame({
meta: {
preferredVisualisationType: 'table',
},
fields: [
{
name: 'Trace Id',
type: FieldType.number,
values: [1, 2, 3],
config: {},
},
{ name: 'Trace Group', type: FieldType.string, values: ['traceGroup1', 'traceGroup2', 'traceGroup3'] },
],
}),
]);
it('should return the preferred visualization first', () => {
expect(ctx.names()[0]).toEqual(SuggestionName.Table);
});
});
function repeatFrame(count: number, frame: DataFrame): DataFrame[] {
const frames: DataFrame[] = [];
for (let i = 0; i < count; i++) {

View File

@ -54,6 +54,14 @@ export async function getAllSuggestions(data?: PanelData, panel?: PanelModel): P
}
return list.sort((a, b) => {
if (builder.dataSummary.preferredVisualisationType) {
if (a.pluginId === builder.dataSummary.preferredVisualisationType) {
return -1;
}
if (b.pluginId === builder.dataSummary.preferredVisualisationType) {
return 1;
}
}
return (b.score ?? VisualizationSuggestionScore.OK) - (a.score ?? VisualizationSuggestionScore.OK);
});
}