Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Fix Analytics Dashboard for Sqlite and PostgreSQL drivers
Browse files Browse the repository at this point in the history
  • Loading branch information
cdujeu committed Feb 28, 2015
1 parent 55d0c2e commit 97bc2cb
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 16 deletions.
23 changes: 19 additions & 4 deletions core/src/plugins/log.sql/class.sqlLogDriver.php
Expand Up @@ -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"]);
Expand All @@ -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"]);
}
}

Expand Down
24 changes: 12 additions & 12 deletions core/src/plugins/log.sql/queries.json
Expand Up @@ -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",
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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"
}
]

0 comments on commit 97bc2cb

Please sign in to comment.