diff options
Diffstat (limited to 'app/Controller')
-rw-r--r-- | app/Controller/Export.php | 75 | ||||
-rw-r--r-- | app/Controller/Project.php | 66 |
2 files changed, 75 insertions, 66 deletions
diff --git a/app/Controller/Export.php b/app/Controller/Export.php new file mode 100644 index 00000000..1997a4ea --- /dev/null +++ b/app/Controller/Export.php @@ -0,0 +1,75 @@ +<?php + +namespace Controller; + +/** + * Export controller + * + * @package controller + * @author Frederic Guillot + */ +class Export extends Base +{ + /** + * Common export method + * + * @access private + */ + private function common($model, $method, $filename, $action, $page_title) + { + $project = $this->getProject(); + $from = $this->request->getStringParam('from'); + $to = $this->request->getStringParam('to'); + + if ($from && $to) { + $data = $this->$model->$method($project['id'], $from, $to); + $this->response->forceDownload($filename.'.csv'); + $this->response->csv($data); + } + + $this->response->html($this->projectLayout('export/'.$action, array( + 'values' => array( + 'controller' => 'export', + 'action' => $action, + 'project_id' => $project['id'], + 'from' => $from, + 'to' => $to, + ), + 'errors' => array(), + 'date_format' => $this->config->get('application_date_format'), + 'date_formats' => $this->dateParser->getAvailableFormats(), + 'project' => $project, + 'title' => $page_title, + ))); + } + + /** + * Task export + * + * @access public + */ + public function tasks() + { + $this->common('taskExport', 'export', t('Tasks'), 'tasks', t('Tasks Export')); + } + + /** + * Subtask export + * + * @access public + */ + public function subtasks() + { + $this->common('subtaskExport', 'export', t('Subtasks'), 'subtasks', t('Subtasks Export')); + } + + /** + * Daily project summary export + * + * @access public + */ + public function summary() + { + $this->common('projectDailySummary', 'getAggregatedMetrics', t('Summary'), 'summary', t('Daily project summary export')); + } +} diff --git a/app/Controller/Project.php b/app/Controller/Project.php index 95779154..d0da53d0 100644 --- a/app/Controller/Project.php +++ b/app/Controller/Project.php @@ -57,72 +57,6 @@ class Project extends Base } /** - * Task export - * - * @access public - */ - public function exportTasks() - { - $project = $this->getProject(); - $from = $this->request->getStringParam('from'); - $to = $this->request->getStringParam('to'); - - if ($from && $to) { - $data = $this->taskExport->export($project['id'], $from, $to); - $this->response->forceDownload('Tasks_'.date('Y_m_d_H_i').'.csv'); - $this->response->csv($data); - } - - $this->response->html($this->projectLayout('project/export_tasks', array( - 'values' => array( - 'controller' => 'project', - 'action' => 'exportTasks', - 'project_id' => $project['id'], - 'from' => $from, - 'to' => $to, - ), - 'errors' => array(), - 'date_format' => $this->config->get('application_date_format'), - 'date_formats' => $this->dateParser->getAvailableFormats(), - 'project' => $project, - 'title' => t('Tasks Export') - ))); - } - - /** - * Daily project summary export - * - * @access public - */ - public function exportDailyProjectSummary() - { - $project = $this->getProject(); - $from = $this->request->getStringParam('from'); - $to = $this->request->getStringParam('to'); - - if ($from && $to) { - $data = $this->projectDailySummary->getAggregatedMetrics($project['id'], $from, $to); - $this->response->forceDownload('Daily_Summary_'.date('Y_m_d_H_i').'.csv'); - $this->response->csv($data); - } - - $this->response->html($this->projectLayout('project/export_daily_summary', array( - 'values' => array( - 'controller' => 'project', - 'action' => 'exportDailyProjectSummary', - 'project_id' => $project['id'], - 'from' => $from, - 'to' => $to, - ), - 'errors' => array(), - 'date_format' => $this->config->get('application_date_format'), - 'date_formats' => $this->dateParser->getAvailableFormats(), - 'project' => $project, - 'title' => t('Daily project summary export') - ))); - } - - /** * Public access management * * @access public |