Merge branch 'master' of git://projects.ceondo.com/indefero
This commit is contained in:
@@ -344,25 +344,51 @@ function IDF_Views_Admin_projectSize($field, $project)
|
||||
*
|
||||
* @return array Associative array with the size of each element
|
||||
*/
|
||||
function IDF_Views_Admin_getForgeSize()
|
||||
function IDF_Views_Admin_getForgeSize($force=false)
|
||||
{
|
||||
$conf = new IDF_Gconf();
|
||||
$conf->setModel((object) array('_model'=>'IDF_Forge', 'id'=> 1));
|
||||
$res = array();
|
||||
$res['repositories'] = 0;
|
||||
foreach (Pluf::factory('IDF_Project')->getList() as $prj) {
|
||||
$size = $prj->getRepositorySize();
|
||||
$size = $prj->getRepositorySize($force);
|
||||
if ($size != -1) {
|
||||
$res['repositories'] += $size;
|
||||
}
|
||||
}
|
||||
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '
|
||||
.escapeshellarg(Pluf::f('upload_path'));
|
||||
$out = explode(' ', shell_exec($cmd), 2);
|
||||
$res['downloads'] = $out[0]*1024;
|
||||
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '
|
||||
.escapeshellarg(Pluf::f('upload_issue_path'));
|
||||
$out = explode(' ', shell_exec($cmd), 2);
|
||||
$res['attachments'] = $out[0]*1024;
|
||||
$res['database'] = IDF_Views_Admin_getForgeDbSize();
|
||||
$last_eval = $conf->getVal('downloads_size_check_date', 0);
|
||||
if (Pluf::f('idf_no_size_check', false) or
|
||||
(!$force and $last_eval > time()-172800)) {
|
||||
$res['downloads'] = $conf->getVal('downloads_size', 0);
|
||||
} else {
|
||||
$conf->setVal('downloads_size_check_date', time());
|
||||
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '
|
||||
.escapeshellarg(Pluf::f('upload_path'));
|
||||
$out = explode(' ', shell_exec($cmd), 2);
|
||||
$res['downloads'] = $out[0]*1024;
|
||||
$conf->setVal('downloads_size', $res['downloads']);
|
||||
}
|
||||
$last_eval = $conf->getVal('attachments_size_check_date', 0);
|
||||
if (Pluf::f('idf_no_size_check', false) or
|
||||
(!$force and $last_eval > time()-172800)) {
|
||||
$res['attachments'] = $conf->getVal('attachments_size', 0);
|
||||
} else {
|
||||
$conf->setVal('attachments_size_check_date', time());
|
||||
$cmd = Pluf::f('idf_exec_cmd_prefix', '').'du -sk '
|
||||
.escapeshellarg(Pluf::f('upload_path'));
|
||||
$out = explode(' ', shell_exec($cmd), 2);
|
||||
$res['attachments'] = $out[0]*1024;
|
||||
$conf->setVal('attachments_size', $res['attachments']);
|
||||
}
|
||||
$last_eval = $conf->getVal('database_size_check_date', 0);
|
||||
if (Pluf::f('idf_no_size_check', false) or
|
||||
(!$force and $last_eval > time()-172800)) {
|
||||
$res['database'] = $conf->getVal('database_size', 0);
|
||||
} else {
|
||||
$conf->setVal('database_size_check_date', time());
|
||||
$res['database'] = IDF_Views_Admin_getForgeDbSize();
|
||||
$conf->setVal('database_size', $res['database']);
|
||||
}
|
||||
$res['total'] = $res['repositories'] + $res['downloads'] + $res['attachments'] + $res['database'];
|
||||
return $res;
|
||||
}
|
||||
|
@@ -152,6 +152,29 @@ class IDF_Views_Download
|
||||
if ($request->method == 'POST') {
|
||||
$fname = $upload->file;
|
||||
@unlink(Pluf::f('upload_path').'/'.$prj->shortname.'/files/'.$fname);
|
||||
/**
|
||||
* [signal]
|
||||
*
|
||||
* IDF_Upload::delete
|
||||
*
|
||||
* [sender]
|
||||
*
|
||||
* IDF_Form_UpdateUpload
|
||||
*
|
||||
* [description]
|
||||
*
|
||||
* This signal allows an application to perform a set of tasks
|
||||
* just before the deletion of the corresponding object in the
|
||||
* database but just after the deletion from the storage.
|
||||
*
|
||||
* [parameters]
|
||||
*
|
||||
* array('upload' => $upload);
|
||||
*
|
||||
*/
|
||||
$params = array('upload' => $upload);
|
||||
Pluf_Signal::send('IDF_Upload::delete',
|
||||
'IDF_Views_Download', $params);
|
||||
$upload->delete();
|
||||
$request->user->setMessage(__('The file has been deleted.'));
|
||||
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Download::index',
|
||||
|
@@ -475,44 +475,45 @@ class IDF_Views_Project
|
||||
|
||||
/**
|
||||
* Administrate the source control.
|
||||
*
|
||||
* There, the login/password of the subversion remote repo can be
|
||||
* change together with the webhook url.
|
||||
*/
|
||||
public $adminSource_precond = array('IDF_Precondition::projectOwner');
|
||||
public function adminSource($request, $match)
|
||||
{
|
||||
$prj = $request->project;
|
||||
$title = sprintf(__('%s Source'), (string) $prj);
|
||||
$form = null;
|
||||
$remote_svn = false;
|
||||
if ($request->conf->getVal('scm') == 'svn' and
|
||||
strlen($request->conf->getVal('svn_remote_url')) > 0) {
|
||||
$remote_svn = true;
|
||||
$extra = array(
|
||||
'conf' => $request->conf,
|
||||
);
|
||||
if ($request->method == 'POST') {
|
||||
$form = new IDF_Form_SourceConf($request->POST, $extra);
|
||||
if ($form->isValid()) {
|
||||
foreach ($form->cleaned_data as $key=>$val) {
|
||||
$request->conf->setVal($key, $val);
|
||||
}
|
||||
$request->user->setMessage(__('The project source configuration has been saved.'));
|
||||
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Project::adminSource',
|
||||
array($prj->shortname));
|
||||
return new Pluf_HTTP_Response_Redirect($url);
|
||||
|
||||
$remote_svn = ($request->conf->getVal('scm') == 'svn' and
|
||||
strlen($request->conf->getVal('svn_remote_url')) > 0);
|
||||
$extra = array(
|
||||
'conf' => $request->conf,
|
||||
'remote_svn' => $remote_svn,
|
||||
);
|
||||
if ($request->method == 'POST') {
|
||||
$form = new IDF_Form_SourceConf($request->POST, $extra);
|
||||
if ($form->isValid()) {
|
||||
foreach ($form->cleaned_data as $key=>$val) {
|
||||
$request->conf->setVal($key, $val);
|
||||
}
|
||||
} else {
|
||||
$params = array();
|
||||
foreach (array('svn_username', 'svn_password') as $key) {
|
||||
$_val = $request->conf->getVal($key, false);
|
||||
if ($_val !== false) {
|
||||
$params[$key] = $_val;
|
||||
}
|
||||
}
|
||||
if (count($params) == 0) {
|
||||
$params = null; //Nothing in the db, so new form.
|
||||
}
|
||||
$form = new IDF_Form_SourceConf($params, $extra);
|
||||
$request->user->setMessage(__('The project source configuration has been saved.'));
|
||||
$url = Pluf_HTTP_URL_urlForView('IDF_Views_Project::adminSource',
|
||||
array($prj->shortname));
|
||||
return new Pluf_HTTP_Response_Redirect($url);
|
||||
}
|
||||
} else {
|
||||
$params = array();
|
||||
foreach (array('svn_username', 'svn_password', 'webhook_url') as $key) {
|
||||
$_val = $request->conf->getVal($key, false);
|
||||
if ($_val !== false) {
|
||||
$params[$key] = $_val;
|
||||
}
|
||||
}
|
||||
if (count($params) == 0) {
|
||||
$params = null; //Nothing in the db, so new form.
|
||||
}
|
||||
$form = new IDF_Form_SourceConf($params, $extra);
|
||||
}
|
||||
$scm = $request->conf->getVal('scm', 'git');
|
||||
$options = array(
|
||||
@@ -530,6 +531,7 @@ class IDF_Views_Project
|
||||
'repository_size' => $prj->getRepositorySize(),
|
||||
'page_title' => $title,
|
||||
'form' => $form,
|
||||
'hookkey' => $prj->getPostCommitHookKey(),
|
||||
),
|
||||
$request);
|
||||
}
|
||||
|
Reference in New Issue
Block a user