From f537d480ad23f77dde5d320b67483eed88de9b59 Mon Sep 17 00:00:00 2001 From: cdujeu Date: Tue, 6 Oct 2015 10:08:10 +0200 Subject: [PATCH] Auto-switch graph frequency to avoid super-heavy graphs. --- core/src/plugins/log.sql/class.sqlLogDriver.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/plugins/log.sql/class.sqlLogDriver.php b/core/src/plugins/log.sql/class.sqlLogDriver.php index 36a72c3422..51b0639163 100644 --- a/core/src/plugins/log.sql/class.sqlLogDriver.php +++ b/core/src/plugins/log.sql/class.sqlLogDriver.php @@ -85,7 +85,7 @@ private function getQuery($queryName){ return false; } - protected function processOneQuery($queryName, $start, $count, $frequency="day", $additionalFilters=array()){ + protected function processOneQuery($queryName, $start, $count, $frequency="auto", $additionalFilters=array()){ $query = $this->getQuery($queryName); if($query === false){ @@ -119,6 +119,10 @@ protected function processOneQuery($queryName, $start, $count, $frequency="day", $allDates = array(); if(isSet($query["AXIS"]) && $query["AXIS"]["x"] == "Date"){ + if($frequency == "auto"){ + if($count > 70) $frequency = "month"; + else if($count > 21) $frequency = "week"; + } $groupedSums = array(); if($frequency == "week"){ $groupByFormat = "W"; @@ -197,7 +201,7 @@ public function processQuery($actionName, &$httpVars, &$fileVars){ $query_name = $httpVars["query_name"]; $start = 0; $count = 30; - $frequency = (isSet($httpVars["frequency"])?AJXP_Utils::sanitize($httpVars["frequency"], AJXP_SANITIZE_ALPHANUM):"day"); + $frequency = (isSet($httpVars["frequency"])?AJXP_Utils::sanitize($httpVars["frequency"], AJXP_SANITIZE_ALPHANUM):"auto"); if(isSet($httpVars["start"])) $start = intval($httpVars["start"]); if(isSet($httpVars["count"])) $count = intval($httpVars["count"]); $additionalFilters = array();