diff options
| author | Frederic Guillot <fred@kanboard.net> | 2015-01-04 21:14:57 -0500 |
|---|---|---|
| committer | Frederic Guillot <fred@kanboard.net> | 2015-01-04 21:14:57 -0500 |
| commit | d1d04d6feeebeba2aea5333d7a4229fcec799f75 (patch) | |
| tree | 51da4416973b2b60f3d50d5acddf2c4c258c1ff3 /app/Controller/Export.php | |
| parent | 07b07c7697439dc0e6bdf87f65b4b3bd46f6bfc8 (diff) | |
Add subtasks export and move export actions to a specific controller
Diffstat (limited to 'app/Controller/Export.php')
| -rw-r--r-- | app/Controller/Export.php | 75 |
1 files changed, 75 insertions, 0 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')); + } +} |
