Added forge size statistics.
This commit is contained in:
parent
25e296fbb6
commit
d6c0b7a680
@ -64,9 +64,11 @@ class IDF_Views_Admin
|
|||||||
$list_display = array(
|
$list_display = array(
|
||||||
'shortname' => __('Short Name'),
|
'shortname' => __('Short Name'),
|
||||||
'name' => __('Name'),
|
'name' => __('Name'),
|
||||||
|
array('id', 'IDF_Views_Admin_projectSize', __('Repository Size')),
|
||||||
);
|
);
|
||||||
$pag->configure($list_display, array(),
|
$pag->configure($list_display, array(),
|
||||||
array('shortname'));
|
array('shortname'));
|
||||||
|
$pag->extra_classes = array('', '', 'right');
|
||||||
$pag->items_per_page = 25;
|
$pag->items_per_page = 25;
|
||||||
$pag->no_results_text = __('No projects were found.');
|
$pag->no_results_text = __('No projects were found.');
|
||||||
$pag->setFromRequest($request);
|
$pag->setFromRequest($request);
|
||||||
@ -74,6 +76,7 @@ class IDF_Views_Admin
|
|||||||
array(
|
array(
|
||||||
'page_title' => $title,
|
'page_title' => $title,
|
||||||
'projects' => $pag,
|
'projects' => $pag,
|
||||||
|
'size' => IDF_Views_Admin_getForgeSize(),
|
||||||
),
|
),
|
||||||
$request);
|
$request);
|
||||||
}
|
}
|
||||||
@ -284,3 +287,61 @@ function IDF_Views_Admin_bool($field, $item)
|
|||||||
$text = ($item->$field) ? __('Yes') : __('No');
|
$text = ($item->$field) ? __('Yes') : __('No');
|
||||||
return sprintf('<img src="'.Pluf::f('url_media').'/idf/img/%s.png" alt="%s" /> ', $img, $text);
|
return sprintf('<img src="'.Pluf::f('url_media').'/idf/img/%s.png" alt="%s" /> ', $img, $text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the size of the project.
|
||||||
|
*
|
||||||
|
* @param string Field
|
||||||
|
* @param IDF_Project
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function IDF_Views_Admin_projectSize($field, $project)
|
||||||
|
{
|
||||||
|
$size = $project->getRepositorySize();
|
||||||
|
if ($size == -1) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return Pluf_Utils::prettySize($size);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a forge size.
|
||||||
|
*
|
||||||
|
* @return array Associative array with the size of each element
|
||||||
|
*/
|
||||||
|
function IDF_Views_Admin_getForgeSize()
|
||||||
|
{
|
||||||
|
$res = array();
|
||||||
|
$res['repositories'] = 0;
|
||||||
|
foreach (Pluf::factory('IDF_Project')->getList() as $prj) {
|
||||||
|
$size = $prj->getRepositorySize();
|
||||||
|
if ($size != -1) {
|
||||||
|
$res['repositories'] += $size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -bs '
|
||||||
|
.escapeshellarg(Pluf::f('upload_path'));
|
||||||
|
$out = split(' ', shell_exec($cmd), 2);
|
||||||
|
$res['downloads'] = $out[0];
|
||||||
|
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -bs '
|
||||||
|
.escapeshellarg(Pluf::f('upload_issue_path'));
|
||||||
|
$out = split(' ', shell_exec($cmd), 2);
|
||||||
|
$res['attachments'] = $out[0];
|
||||||
|
$res['total'] = $res['repositories'] + $res['downloads'] + $res['attachments'];
|
||||||
|
// TODO: now we need the db
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the database size as given by the database.
|
||||||
|
*
|
||||||
|
* @return int Database size
|
||||||
|
*/
|
||||||
|
function IDF_Views_Admin_getForgeDbSize()
|
||||||
|
{
|
||||||
|
|
||||||
|
// MySQL: SHOW TABLE STATUS FROM database;
|
||||||
|
// then sum Data_length and Index_length for each table
|
||||||
|
// PostgreSQL:
|
||||||
|
// Directly stats the database file
|
||||||
|
}
|
||||||
|
@ -1,8 +1,21 @@
|
|||||||
{extends "idf/gadmin/projects/base.html"}
|
{extends "idf/gadmin/projects/base.html"}
|
||||||
|
|
||||||
{block docclass}yui-t2{assign $inIndex=true}{/block}
|
{block docclass}yui-t3{assign $inIndex=true}{/block}
|
||||||
|
|
||||||
{block body}
|
{block body}
|
||||||
{$projects.render}
|
{$projects.render}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
{block context}
|
||||||
|
<div class="issue-submit-info">
|
||||||
|
<ul>
|
||||||
|
<li>{trans 'Repository size:'} {$size['repositories']|size}</li>
|
||||||
|
<li>{trans 'Attachment size:'} {$size['attachments']|size}</li>
|
||||||
|
<li>{trans 'Download size:'} {$size['downloads']|size}</li>
|
||||||
|
<li>{trans 'Forge size:'} {$size['total']|size}</li>
|
||||||
|
</ul>
|
||||||
|
<p>{trans 'The forge size does not include the database space yet.'}</p>
|
||||||
|
</div>
|
||||||
|
{/block}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user