From d848a577f4954c3bc1bc6ab99d895ccfe133aed2 Mon Sep 17 00:00:00 2001 From: v-zhuravlev Date: Mon, 20 Oct 2025 15:09:36 +0300 Subject: [PATCH] feat(commonlib): Add table rows styles in requests panels. --- common-lib/CHANGELOG.md | 3 +++ common-lib/common/panels.libsonnet | 1 + .../panels/requests/table/base.libsonnet | 9 +++++++++ .../panels/requests/table/duration.libsonnet | 20 +++++++++++++++++++ .../panels/requests/table/errors.libsonnet | 20 +++++++++++++++++++ .../panels/requests/table/main.libsonnet | 6 ++++++ .../panels/requests/table/rate.libsonnet | 20 +++++++++++++++++++ 7 files changed, 79 insertions(+) create mode 100644 common-lib/common/panels/requests/table/base.libsonnet create mode 100644 common-lib/common/panels/requests/table/duration.libsonnet create mode 100644 common-lib/common/panels/requests/table/errors.libsonnet create mode 100644 common-lib/common/panels/requests/table/main.libsonnet create mode 100644 common-lib/common/panels/requests/table/rate.libsonnet diff --git a/common-lib/CHANGELOG.md b/common-lib/CHANGELOG.md index 9774efde5..ee83d0395 100644 --- a/common-lib/CHANGELOG.md +++ b/common-lib/CHANGELOG.md @@ -1,3 +1,6 @@ +# 0.4.2 +- [Panels] Add table rows styles in requests panels. + # 0.4.0 - [Signal] Add defaultSignalSource param to set default signal source. diff --git a/common-lib/common/panels.libsonnet b/common-lib/common/panels.libsonnet index 00276ef48..0ff93ba97 100644 --- a/common-lib/common/panels.libsonnet +++ b/common-lib/common/panels.libsonnet @@ -36,5 +36,6 @@ local g = import './g.libsonnet'; requests: { timeSeries: import './panels/requests/timeSeries/main.libsonnet', stat: import './panels/requests/stat/main.libsonnet', + table: import './panels/requests/table/main.libsonnet', }, } diff --git a/common-lib/common/panels/requests/table/base.libsonnet b/common-lib/common/panels/requests/table/base.libsonnet new file mode 100644 index 000000000..c120e15de --- /dev/null +++ b/common-lib/common/panels/requests/table/base.libsonnet @@ -0,0 +1,9 @@ +local g = import '../../../g.libsonnet'; +local base = import '../../generic/table/base.libsonnet'; +local table = g.panel.table; +local fieldOverride = g.panel.table.fieldOverride; +local custom = table.fieldConfig.defaults.custom; +local defaults = table.fieldConfig.defaults; +local options = table.options; +base { +} diff --git a/common-lib/common/panels/requests/table/duration.libsonnet b/common-lib/common/panels/requests/table/duration.libsonnet new file mode 100644 index 000000000..067e1c4a7 --- /dev/null +++ b/common-lib/common/panels/requests/table/duration.libsonnet @@ -0,0 +1,20 @@ +local g = import '../../../g.libsonnet'; +local duration = import '../stat/duration.libsonnet'; +local base = import './base.libsonnet'; +local table = g.panel.table; +local fieldOverride = table.fieldOverride; + +base { + local this = self, + + new(): error 'not supported', + stylize(): error 'not supported', + + // when attached to table, this function applies style to row named 'name="Duration"' + stylizeByName(name='Duration'): + table.standardOptions.withOverridesMixin( + fieldOverride.byName.new(name) + + fieldOverride.byName.withProperty('custom.cellOptions', { type: 'color-text' }) + + fieldOverride.byName.withPropertiesFromOptions(duration.stylize(allLayers=false),) + ), +} diff --git a/common-lib/common/panels/requests/table/errors.libsonnet b/common-lib/common/panels/requests/table/errors.libsonnet new file mode 100644 index 000000000..c31beaffb --- /dev/null +++ b/common-lib/common/panels/requests/table/errors.libsonnet @@ -0,0 +1,20 @@ +local g = import '../../../g.libsonnet'; +local errors = import '../stat/errors.libsonnet'; +local base = import './base.libsonnet'; +local table = g.panel.table; +local fieldOverride = table.fieldOverride; + +base { + local this = self, + + new(): error 'not supported', + stylize(): error 'not supported', + + // when attached to table, this function applies style to row named 'name="Errors"' + stylizeByName(name='Errors'): + table.standardOptions.withOverridesMixin( + fieldOverride.byName.new(name) + + fieldOverride.byName.withProperty('custom.cellOptions', { type: 'color-text' }) + + fieldOverride.byName.withPropertiesFromOptions(errors.stylize(allLayers=false),) + ), +} diff --git a/common-lib/common/panels/requests/table/main.libsonnet b/common-lib/common/panels/requests/table/main.libsonnet new file mode 100644 index 000000000..14e5f90e5 --- /dev/null +++ b/common-lib/common/panels/requests/table/main.libsonnet @@ -0,0 +1,6 @@ +{ + base: import './base.libsonnet', + errors: import './errors.libsonnet', + rate: import './rate.libsonnet', + duration: import './duration.libsonnet', +} diff --git a/common-lib/common/panels/requests/table/rate.libsonnet b/common-lib/common/panels/requests/table/rate.libsonnet new file mode 100644 index 000000000..43ffbe93b --- /dev/null +++ b/common-lib/common/panels/requests/table/rate.libsonnet @@ -0,0 +1,20 @@ +local g = import '../../../g.libsonnet'; +local rate = import '../stat/rate.libsonnet'; +local base = import './base.libsonnet'; +local table = g.panel.table; +local fieldOverride = table.fieldOverride; + +base { + local this = self, + + new(): error 'not supported', + stylize(): error 'not supported', + + // when attached to table, this function applies style to row named 'name="Rate"' + stylizeByName(name='Rate'): + table.standardOptions.withOverridesMixin( + fieldOverride.byName.new(name) + + fieldOverride.byName.withProperty('custom.cellOptions', { type: 'color-text' }) + + fieldOverride.byName.withPropertiesFromOptions(rate.stylize(allLayers=false),) + ), +}