diff --git a/core/src/plugins/log.sql/class.sqlLogDriver.php b/core/src/plugins/log.sql/class.sqlLogDriver.php index b637c3d191..ffd12db1cc 100644 --- a/core/src/plugins/log.sql/class.sqlLogDriver.php +++ b/core/src/plugins/log.sql/class.sqlLogDriver.php @@ -86,6 +86,7 @@ public function processQuery($actionName, &$httpVars, &$fileVars){ if($query === false){ throw new Exception("Cannot find query ".$query_name); } + $pg = ($this->sqlDriver["driver"] == "postgre"); $start = 0; $count = 30; if(isSet($httpVars["start"])) $start = intval($httpVars["start"]); @@ -104,20 +105,34 @@ public function processQuery($actionName, &$httpVars, &$fileVars){ $q = $query["SQL"]; $q = str_replace("AJXP_CURSOR_DATE", $dateCursor, $q); + if($pg){ + $q = str_replace("ORDER BY logdate DESC", "ORDER BY DATE(logdate) DESC",$q); + } //$q .= " LIMIT $start, $count"; $res = dibi::query($q); $all = $res->fetchAll(); $allDates = array(); foreach($all as $row => &$data){ + // PG: Recapitalize keys + if($pg){ + foreach($data as $k => $v){ + $data[ucfirst($k)] = $v; + } + } if(isSet($data["Date"])){ - $key = date($dKeyFormat, $data["Date"]->getTimestamp()); - $data["Date_sortable"] = $data["Date"]->getTimestamp(); + if(is_a($data["Date"], "DibiDateTime")){ + $tStamp = $data["Date"]->getTimestamp(); + }else { + $tStamp = strtotime($data["Date"]); + } + $key = date($dKeyFormat, $tStamp); + $data["Date_sortable"] = $tStamp; $data["Date"] = $key; $allDates[$key] = true; } - if(isSet($data["File Name"])){ - $data["File Name"] = AJXP_Utils::safeBasename($data["File Name"]); + if(isSet($data["File"])){ + $data["File"] = AJXP_Utils::safeBasename($data["File"]); } } diff --git a/core/src/plugins/log.sql/queries.json b/core/src/plugins/log.sql/queries.json index c27d758062..152022ee31 100644 --- a/core/src/plugins/log.sql/queries.json +++ b/core/src/plugins/log.sql/queries.json @@ -19,7 +19,7 @@ "NAME":"cumulated_shares", "LABEL":"# Files Shared", "FIGURE":"total", - "SQL":"SELECT COUNT( DISTINCT id ) AS total FROM ajxp_log WHERE severity = \"INFO\" AND user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"New Share%\" OR message LIKE \"New Share%\" )" + "SQL":"SELECT COUNT( DISTINCT id ) AS total FROM ajxp_log WHERE severity = \"INFO\" AND ajxp_log.user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"New Share%\" OR message LIKE \"New Share%\" )" }, { "NAME":"cumulated_users", @@ -31,13 +31,13 @@ "NAME":"webui_cumulated_logins", "LABEL":"Web Logins", "FIGURE":"total", - "SQL":"SELECT COUNT( DISTINCT id ) AS total FROM ajxp_log WHERE user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"Log In%\" OR message LIKE \"Log In%\") AND ( params LIKE \"%WebUI%\" ) AND AJXP_CURSOR_DATE" + "SQL":"SELECT COUNT( DISTINCT id ) AS total FROM ajxp_log WHERE ajxp_log.user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"Log In%\" OR message LIKE \"Log In%\") AND ( params LIKE \"%WebUI%\" ) AND AJXP_CURSOR_DATE" }, { "NAME":"api_cumulated_logins", "LABEL":"API Logins", "FIGURE":"total", - "SQL":"SELECT COUNT( DISTINCT id ) AS total FROM ajxp_log WHERE user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"Log In%\" OR message LIKE \"Log In%\") AND ( params NOT LIKE \"%WebUI%\" ) AND AJXP_CURSOR_DATE" + "SQL":"SELECT COUNT( DISTINCT id ) AS total FROM ajxp_log WHERE ajxp_log.user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"Log In%\" OR message LIKE \"Log In%\") AND ( params NOT LIKE \"%WebUI%\" ) AND AJXP_CURSOR_DATE" }, { "SEPARATOR":true, @@ -48,22 +48,22 @@ "LABEL":"Unique users per day", "AXIS":{ "x":"Date", - "y":"Users Connected", + "y":"Connections", "order":"Date_sortable" }, "DIAGRAM":"bar", - "SQL":"SELECT DATE( logdate )AS Date, COUNT( DISTINCT user ) AS \"Users Connected\" FROM ajxp_log WHERE user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND AJXP_CURSOR_DATE GROUP BY DATE( logdate ) ORDER BY logdate DESC " + "SQL":"SELECT DATE( logdate )AS Date, COUNT( DISTINCT ajxp_log.user ) AS Connections FROM ajxp_log WHERE ajxp_log.user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND AJXP_CURSOR_DATE GROUP BY DATE( logdate ) ORDER BY logdate DESC " }, { "NAME":"connections_per_day", "LABEL":"Total connections per day", "AXIS":{ "x":"Date", - "y":"Users Connections", + "y":"Connections", "order":"Date_sortable" }, "DIAGRAM":"bar", - "SQL":"SELECT DATE( logdate )AS Date, COUNT( DISTINCT id ) AS \"Users Connections\" FROM ajxp_log WHERE user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN (SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND AJXP_CURSOR_DATE AND (params LIKE \"Log In%\" OR message LIKE \"Log In%\" ) AND ( params LIKE \"%WebUI%\" ) GROUP BY DATE( logdate ) ORDER BY logdate DESC" + "SQL":"SELECT DATE( logdate )AS Date, COUNT( DISTINCT id ) AS Connections FROM ajxp_log WHERE ajxp_log.user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE severity = \"INFO\" AND login NOT IN (SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND AJXP_CURSOR_DATE AND (params LIKE \"Log In%\" OR message LIKE \"Log In%\" ) AND ( params LIKE \"%WebUI%\" ) GROUP BY DATE( logdate ) ORDER BY logdate DESC" }, { "SEPARATOR":true, @@ -78,7 +78,7 @@ "order":"Date_sortable" }, "DIAGRAM":"bar", - "SQL":"SELECT DATE(logdate) AS Date, COUNT(distinct id) AS \"Downloads\" FROM ajxp_log WHERE severity = \"INFO\" AND (params like \"Download%\" OR message like \"Download%\" ) AND AJXP_CURSOR_DATE GROUP BY DATE(logdate) ORDER BY logdate DESC" + "SQL":"SELECT DATE(logdate) AS Date, COUNT(distinct id) AS Downloads FROM ajxp_log WHERE severity = \"INFO\" AND (params like \"Download%\" OR message like \"Download%\" ) AND AJXP_CURSOR_DATE GROUP BY DATE(logdate) ORDER BY logdate DESC" }, { "NAME":"uploads_per_day", @@ -89,7 +89,7 @@ "order":"Date_sortable" }, "DIAGRAM":"bar", - "SQL":"SELECT DATE(logdate) AS Date, COUNT(distinct id) AS \"Uploads\" FROM ajxp_log WHERE severity = \"INFO\" AND (message like \"Upload%\" OR message like \"Upload%\") AND AJXP_CURSOR_DATE GROUP BY DATE(logdate) ORDER BY logdate DESC" + "SQL":"SELECT DATE(logdate) AS Date, COUNT(distinct id) AS Uploads FROM ajxp_log WHERE severity = \"INFO\" AND (message like \"Upload%\" OR message like \"Upload%\") AND AJXP_CURSOR_DATE GROUP BY DATE(logdate) ORDER BY logdate DESC" }, { "NAME":"sharedfiles_per_day", @@ -100,16 +100,16 @@ "order":"Date_sortable" }, "DIAGRAM":"bar", - "SQL":"SELECT DATE( logdate )AS Date, COUNT( DISTINCT id ) AS \"Shares\" FROM ajxp_log WHERE severity = \"INFO\" AND AJXP_CURSOR_DATE AND user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"New Share%\" OR message LIKE \"New Share%\" ) GROUP BY DATE( logdate ) ORDER BY logdate DESC" + "SQL":"SELECT DATE( logdate )AS Date, COUNT( DISTINCT id ) AS Shares FROM ajxp_log WHERE severity = \"INFO\" AND AJXP_CURSOR_DATE AND ajxp_log.user IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE login NOT IN ( SELECT DISTINCT login FROM ajxp_user_rights WHERE repo_uuid = \"ajxp.parent_user\" ) ) AND (params LIKE \"New Share%\" OR message LIKE \"New Share%\" ) GROUP BY DATE( logdate ) ORDER BY logdate DESC" }, { "NAME":"most_downloaded", "LABEL":"Most downloaded files", "AXIS":{ - "x":"File Name", + "x":"File", "y":"Downloaded" }, "DIAGRAM": "pie", - "SQL":"SELECT SUBSTRING(params,7) AS \"File Name\", COUNT( 1 ) AS Downloaded FROM ajxp_log WHERE severity = \"INFO\" AND (params LIKE \"Download%\" OR message LIKE \"Download%\" ) AND AJXP_CURSOR_DATE GROUP BY params ORDER BY COUNT( 1 ) DESC LIMIT 20" + "SQL":"SELECT SUBSTR(params,7) AS File, COUNT( 1 ) AS Downloaded FROM ajxp_log WHERE severity = \"INFO\" AND (params LIKE \"Download%\" OR message LIKE \"Download%\" ) AND AJXP_CURSOR_DATE GROUP BY params ORDER BY COUNT( 1 ) DESC LIMIT 20" } ] \ No newline at end of file