From d5a2336a77ec61d8be8b17857a0d8e5d4b6f97b0 Mon Sep 17 00:00:00 2001 From: Brian Lloyd Date: Fri, 17 Jul 2020 16:22:34 -0600 Subject: [PATCH] Implement SUM function for graphs --- ui/include/classes/api/managers/CHistoryManager.php | 4 ++-- ui/include/classes/graphdraw/CPieGraphDraw.php | 11 +++++++++++ ui/include/defines.inc.php | 1 + ui/include/views/js/configuration.graph.edit.js.php | 2 ++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ui/include/classes/api/managers/CHistoryManager.php b/ui/include/classes/api/managers/CHistoryManager.php index 8cbfb141d0..2f141dfd19 100644 --- a/ui/include/classes/api/managers/CHistoryManager.php +++ b/ui/include/classes/api/managers/CHistoryManager.php @@ -933,11 +933,11 @@ class CHistoryManager { foreach ($items as $item) { if ($item['source'] === 'history') { - $sql_select = 'COUNT(*) AS count,AVG(value) AS avg,MIN(value) AS min,MAX(value) AS max'; + $sql_select = 'COUNT(*) AS count,AVG(value) AS avg,MIN(value) AS min,MAX(value) AS max,SUM(value) as sum'; $sql_from = ($item['value_type'] == ITEM_VALUE_TYPE_UINT64) ? 'history_uint' : 'history'; } else { - $sql_select = 'SUM(num) AS count,AVG(value_avg) AS avg,MIN(value_min) AS min,MAX(value_max) AS max'; + $sql_select = 'SUM(num) AS count,AVG(value_avg) AS avg,MIN(value_min) AS min,MAX(value_max) AS max,SUM(value_avg) as sum'; $sql_from = ($item['value_type'] == ITEM_VALUE_TYPE_UINT64) ? 'trends_uint' : 'trends'; } diff --git a/ui/include/classes/graphdraw/CPieGraphDraw.php b/ui/include/classes/graphdraw/CPieGraphDraw.php index eee112e462..d67e0d001d 100644 --- a/ui/include/classes/graphdraw/CPieGraphDraw.php +++ b/ui/include/classes/graphdraw/CPieGraphDraw.php @@ -208,6 +208,7 @@ class CPieGraphDraw extends CGraphDraw { $this->data[$item['itemid']]['min'] = $row['min']; $this->data[$item['itemid']]['max'] = $row['max']; $this->data[$item['itemid']]['avg'] = $row['avg']; + $this->data[$item['itemid']]['sum'] = $row['sum']; $this->data[$item['itemid']]['clock'] = $row['clock']; } unset($result); @@ -226,6 +227,9 @@ class CPieGraphDraw extends CGraphDraw { case CALC_FNC_LST: $fncName = 'last'; break; + case CALC_FNC_SUM: + $fncName = 'sum'; + break; case CALC_FNC_AVG: default: $fncName = 'avg'; @@ -296,6 +300,10 @@ class CPieGraphDraw extends CGraphDraw { $fncName = 'last'; $fncRealName = _('last'); break; + case CALC_FNC_SUM: + $fncName = 'sum'; + $fncRealName = _('sum'); + break; case CALC_FNC_AVG: default: $fncName = 'avg'; @@ -730,6 +738,9 @@ class CPieGraphDraw extends CGraphDraw { case CALC_FNC_LST: $fncName = 'last'; break; + case CALC_FNC_SUM: + $fncName = 'sum'; + break; case CALC_FNC_AVG: default: $fncName = 'avg'; diff --git a/ui/include/defines.inc.php b/ui/include/defines.inc.php index d1b2b27e06..d218303b91 100644 --- a/ui/include/defines.inc.php +++ b/ui/include/defines.inc.php @@ -849,6 +849,7 @@ define('PROFILE_TYPE_STR', 3); define('CALC_FNC_MIN', 1); define('CALC_FNC_AVG', 2); define('CALC_FNC_MAX', 4); +define('CALC_FNC_SUM', 5); define('CALC_FNC_ALL', 7); define('CALC_FNC_LST', 9); diff --git a/ui/include/views/js/configuration.graph.edit.js.php b/ui/include/views/js/configuration.graph.edit.js.php index e64873c722..bfd2fef6d2 100644 --- a/ui/include/views/js/configuration.graph.edit.js.php +++ b/ui/include/views/js/configuration.graph.edit.js.php @@ -206,6 +206,7 @@ + @@ -269,6 +270,7 @@ + -- 2.24.3 (Apple Git-128)