summaryrefslogtreecommitdiff
path: root/app/Controller
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2015-01-04 21:14:57 -0500
committerFrederic Guillot <fred@kanboard.net>2015-01-04 21:14:57 -0500
commitd1d04d6feeebeba2aea5333d7a4229fcec799f75 (patch)
tree51da4416973b2b60f3d50d5acddf2c4c258c1ff3 /app/Controller
parent07b07c7697439dc0e6bdf87f65b4b3bd46f6bfc8 (diff)
Add subtasks export and move export actions to a specific controller
Diffstat (limited to 'app/Controller')
-rw-r--r--app/Controller/Export.php75
-rw-r--r--app/Controller/Project.php66
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