diff --git a/controllers/task.php b/controllers/task.php index b022f37c8..e42d1eec0 100644 --- a/controllers/task.php +++ b/controllers/task.php @@ -13,15 +13,23 @@ class Task extends Base $this->response->text('Not Authorized', 401); } + $projectModel = new \Model\Project; + $defaultProject = $projectModel->getFirst(); + $values = array( 'title' => $this->request->getStringParam('title'), 'description' => $this->request->getStringParam('description'), - 'color_id' => $this->request->getStringParam('color_id'), - 'project_id' => $this->request->getIntegerParam('project_id'), + 'color_id' => $this->request->getStringParam('color_id', 'blue'), + 'project_id' => $this->request->getIntegerParam('project_id', $defaultProject['id']), 'owner_id' => $this->request->getIntegerParam('owner_id'), 'column_id' => $this->request->getIntegerParam('column_id'), ); + if ($values['column_id'] == 0) { + $boardModel = new \Model\Board; + $values['column_id'] = $boardModel->getFirstColumn($values['project_id']); + } + list($valid,) = $this->task->validateCreation($values); if ($valid && $this->task->create($values)) { diff --git a/models/board.php b/models/board.php index 66e6998f9..3142a7cc2 100644 --- a/models/board.php +++ b/models/board.php @@ -88,6 +88,12 @@ class Board extends Base return $columns; } + // Get first column id for a given project + public function getFirstColumn($project_id) + { + return $this->db->table(self::TABLE)->eq('project_id', $project_id)->asc('position')->findOneColumn('id'); + } + // Get list of columns public function getColumnsList($project_id) { diff --git a/models/project.php b/models/project.php index 7a0fb2b1e..b0c2b2ca9 100644 --- a/models/project.php +++ b/models/project.php @@ -16,6 +16,11 @@ class Project extends Base return $this->db->table(self::TABLE)->eq('id', $project_id)->findOne(); } + public function getFirst() + { + return $this->db->table(self::TABLE)->findOne(); + } + public function getAll($fetch_stats = false) { if (! $fetch_stats) {