todo stats extendable
This commit is contained in:
parent
5c04bb515f
commit
5449139080
@ -1,5 +1,8 @@
|
||||
<?php
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SYSTEM\DBD');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/stats','SYSTEM\SAI');
|
||||
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq','SYSTEM\DBD');
|
||||
|
||||
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_todo');
|
||||
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_todo');
|
||||
\SYSTEM\SAI\saimod_sys_todo::register('\SYSTEM\SAI\todo_stats_gen');
|
||||
\SYSTEM\SAI\saimod_sys_todo::register('\SYSTEM\SAI\todo_stats_user');
|
||||
@ -2,6 +2,19 @@
|
||||
namespace SYSTEM\SAI;
|
||||
|
||||
class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
|
||||
private static $stats = array(); //only strings!
|
||||
|
||||
private static function check_stats($stats){
|
||||
if( !\class_exists($stats) ||
|
||||
!\is_array($parents = \class_parents($stats)) ||
|
||||
!\array_search('SYSTEM\SAI\todo_stats', $parents)){
|
||||
return false;}
|
||||
return true;}
|
||||
|
||||
public static function register($stats){
|
||||
if(!self::check_stats($stats)){
|
||||
throw new \SYSTEM\LOG\ERROR('Problem with your TodoStats class: '.$stats);}
|
||||
array_push(self::$stats,$stats);}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_close($todo){
|
||||
\SYSTEM\DBD\SYS_SAIMOD_TODO_CLOSE::QI(array($todo));
|
||||
@ -63,31 +76,26 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
|
||||
}
|
||||
|
||||
public static function statistics(){
|
||||
$res = array();
|
||||
$res[0] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN::Q1();
|
||||
$res[1] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER::Q1();
|
||||
$res[2] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN::Q1();
|
||||
$res[3] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER::Q1();
|
||||
$vars = array();
|
||||
$vars['todo_count'] = $res[0]['count']+$res[1]['count'];
|
||||
$vars['doto_count'] = $res[2]['count']+$res[3]['count'];
|
||||
$vars['todo_perc'] = round(floatval($vars['todo_count']) / floatval($vars['todo_count']+$vars['doto_count']) * 100,2);
|
||||
$vars['doto_perc'] = round(floatval($vars['doto_count']) / floatval($vars['todo_count']+$vars['doto_count']) * 100,2);
|
||||
$vars['todo_gen_count'] = $res[0]['count'];
|
||||
$vars['doto_gen_count'] = $res[2]['count'];
|
||||
$vars['todo_gen_perc'] = round(floatval($vars['todo_gen_count']) / floatval($vars['todo_gen_count']+$vars['doto_gen_count']) * 100,2);
|
||||
$vars['doto_gen_perc'] = round(floatval($vars['doto_gen_count']) / floatval($vars['todo_gen_count']+$vars['doto_gen_count']) * 100,2);
|
||||
$vars['todo_user_count'] = $res[1]['count'];
|
||||
$vars['doto_user_count'] = $res[3]['count'];
|
||||
$vars['todo_user_perc'] = round(floatval($vars['todo_user_count']) / floatval($vars['todo_user_count']+$vars['doto_user_count']) * 100,2);
|
||||
$vars['doto_user_perc'] = round(floatval($vars['doto_user_count']) / floatval($vars['todo_user_count']+$vars['doto_user_count']) * 100,2);;
|
||||
|
||||
$vars['project_perc'] = round(floatval($vars['doto_gen_perc'])/2+floatval($vars['doto_user_perc'])/2,2);
|
||||
return $vars;
|
||||
$result = array();
|
||||
$result['project'] = 0;
|
||||
$result['data'] = array();
|
||||
foreach(self::$stats as $stat){
|
||||
$data = \call_user_func(array($stat, 'stats'));
|
||||
$result['data'][] = $data;
|
||||
$result['project'] += $data->perc;}
|
||||
$result['project'] = round($result['project'] / (count($result['data'])),2);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_stats(){
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_stats.tpl'), self::statistics());}
|
||||
$vars = array();
|
||||
$stats = self::statistics();
|
||||
$vars['project'] = $stats['project'];
|
||||
$vars['entries'] = '';
|
||||
foreach($stats['data'] as $stat){
|
||||
$vars['entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_stats_entry.tpl'), $stat);
|
||||
}
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_stats.tpl'), $vars);}
|
||||
|
||||
private static function time_elapsed_string($ptime)
|
||||
{
|
||||
|
||||
10
sai/modules/saimod_sys_todo/stats/todo_stats_gen.php
Normal file
10
sai/modules/saimod_sys_todo/stats/todo_stats_gen.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace SYSTEM\SAI;
|
||||
|
||||
class todo_stats_gen extends todo_stats {
|
||||
public static function stats() {
|
||||
$res = array();
|
||||
$res[0] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN::Q1();
|
||||
$res[2] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN::Q1();
|
||||
return new \SYSTEM\SAI\todo_stats_data('Generated ToDos',floatval($res[2]['count']),floatval($res[0]['count']+$res[2]['count']));}
|
||||
}
|
||||
10
sai/modules/saimod_sys_todo/stats/todo_stats_user.php
Normal file
10
sai/modules/saimod_sys_todo/stats/todo_stats_user.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace SYSTEM\SAI;
|
||||
|
||||
class todo_stats_user extends todo_stats {
|
||||
public static function stats() {
|
||||
$res = array();
|
||||
$res[0] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER::Q1();
|
||||
$res[2] = \SYSTEM\DBD\SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER::Q1();
|
||||
return new \SYSTEM\SAI\todo_stats_data('User ToDos',floatval($res[2]['count']),floatval($res[0]['count']+$res[2]['count']));}
|
||||
}
|
||||
7
sai/modules/saimod_sys_todo/todo_stats.php
Normal file
7
sai/modules/saimod_sys_todo/todo_stats.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
namespace SYSTEM\SAI;
|
||||
|
||||
class todo_stats {
|
||||
public static function stats() {
|
||||
return new \SYSTEM\SAI\todo_stats_data();}
|
||||
}
|
||||
14
sai/modules/saimod_sys_todo/todo_stats_data.php
Normal file
14
sai/modules/saimod_sys_todo/todo_stats_data.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace SYSTEM\SAI;
|
||||
class todo_stats_data {
|
||||
var $name = '';
|
||||
var $part = 0;
|
||||
var $whole = 1;
|
||||
var $perc = 0;
|
||||
public function __construct($name='',$part=0,$whole=1) {
|
||||
$this->name = $name;
|
||||
$this->part = $part;
|
||||
$this->whole = $whole;
|
||||
$this->perc = round($this->part / $this->whole * 100,2);
|
||||
}
|
||||
}
|
||||
@ -1,42 +1,15 @@
|
||||
<table class="sai_table" style="width: 100%">
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Name</th>
|
||||
<th>Count</th>
|
||||
<th>%</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ToDo_All</td>
|
||||
<td>${todo_count}</td>
|
||||
<td>${todo_perc}%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ToDo_Gen</td>
|
||||
<td>${todo_gen_count}</td>
|
||||
<td>${todo_gen_perc}%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ToDo_User</td>
|
||||
<td>${todo_user_count}</td>
|
||||
<td>${todo_user_perc}%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DoTo_All</td>
|
||||
<td>${doto_count}</td>
|
||||
<td>${doto_perc}%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DoTo_Gen</td>
|
||||
<td>${doto_gen_count}</td>
|
||||
<td>${doto_gen_perc}%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DoTo_User</td>
|
||||
<td>${doto_user_count}</td>
|
||||
<td>${doto_user_perc}%</td>
|
||||
<th>All</th>
|
||||
<th>Done</th>
|
||||
</tr>
|
||||
${entries}
|
||||
<tr>
|
||||
<td>Project</td>
|
||||
<td></td>
|
||||
<td>${project_perc}%</td>
|
||||
<td></td>
|
||||
<td>${project}%</td>
|
||||
</tr>
|
||||
</table>
|
||||
6
sai/modules/saimod_sys_todo/tpl/todo_stats_entry.tpl
Normal file
6
sai/modules/saimod_sys_todo/tpl/todo_stats_entry.tpl
Normal file
@ -0,0 +1,6 @@
|
||||
<tr>
|
||||
<td>${name}</td>
|
||||
<td>${part}</td>
|
||||
<td>${whole}</td>
|
||||
<td>${perc}%</td>
|
||||
</tr>
|
||||
Loading…
x
Reference in New Issue
Block a user