From 287e4c573efd7910aaf61a28dfc4e5f6f9e5609c Mon Sep 17 00:00:00 2001 From: liorkletter <22118580+Git-Lior@users.noreply.github.com> Date: Mon, 31 Jul 2023 11:52:26 +0300 Subject: [PATCH] Added sortBy parameter to Table panel --- CHANGELOG.rst | 1 + grafanalib/core.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f9486255..5399ac2c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -13,6 +13,7 @@ Changelog * Extended SqlTarget to support parsing queries from files * Fix AlertCondition backwards compatibility (``useNewAlerts`` default to ``False``) * Added RateMetricAgg_ for ElasticSearch +* Added ``sortBy`` parameter to Table panel .. _`Bar_Chart`: https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/bar-chart/ .. _`RateMetricAgg`: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-rate-aggregation.html diff --git a/grafanalib/core.py b/grafanalib/core.py index 67a08839..6f368642 100644 --- a/grafanalib/core.py +++ b/grafanalib/core.py @@ -3179,6 +3179,18 @@ def to_json_data(self): } +@attr.s +class TableSortByField(object): + displayName = attr.ib(default="") + desc = attr.ib(default=False) + + def to_json_data(self): + return { + 'displayName': self.displayName, + 'desc': self.desc, + } + + @attr.s class Table(Panel): """Generates Table panel json structure @@ -3197,6 +3209,7 @@ class Table(Panel): :param overrides: To override the base characteristics of certain data :param showHeader: Show the table header :param unit: units + :param sortBy: Sort rows by table fields """ align = attr.ib(default='auto', validator=instance_of(str)) @@ -3210,6 +3223,7 @@ class Table(Panel): showHeader = attr.ib(default=True, validator=instance_of(bool)) span = attr.ib(default=6), unit = attr.ib(default='', validator=instance_of(str)) + sortBy = attr.ib(default=attr.Factory(list)) @classmethod def with_styled_columns(cls, columns, styles=None, **kwargs): @@ -3241,7 +3255,8 @@ def to_json_data(self): 'mappings': self.mappings, 'minSpan': self.minSpan, 'options': { - 'showHeader': self.showHeader + 'showHeader': self.showHeader, + 'sortBy': self.sortBy }, 'type': TABLE_TYPE, }