kinspire / branches / master / controllers / tasks_controller.php

history
<?php
class TasksController extends AppController {

	var $name = 'Tasks';
	var $helpers = array('Html', 'Form');
	var $paginate = array();

	function index() {
		$elements = $this->Task->TaskChange->Element->find('list');
		$versions = $this->Task->TaskChange->Version->find('list');
		$milestones = $this->Task->TaskChange->Milestone->find('list');
		$this->set(compact('elements', 'versions', 'milestones'));
		
		// Below you will see some bad code because I can't figure out a beter way to do it at this point in time.
		/****************************************************************************************************************/
		$types = $this->Task->TaskChange->Type->find('list');
		$typeIcons = $this->Task->TaskChange->Type->find('list', array('fields'=>array('icon_id')));
		$severities = $this->Task->TaskChange->Severity->find('list');
		$severityIcons = $this->Task->TaskChange->Severity->find('list', array('fields'=>array('icon_id')));
		$priorities = $this->Task->TaskChange->Priority->find('list');
		$priorityIcons = $this->Task->TaskChange->Priority->find('list', array('fields'=>array('icon_id')));
		$statuses = $this->Task->TaskChange->Status->find('list');
		$statusIcons = $this->Task->TaskChange->Status->find('list', array('fields'=>array('icon_id')));
		$this->set(compact('types', 'typeIcons', 'severities', 'severityIcons', 'priorities', 'priorityIcons', 'statuses', 'statusIcons'));
		/****************************************************************************************************************/
		
		$this->set('tasks', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->flash('invalid', 'index');
		}
		$this->Task->recursive = 2;
		$this->set('task', $this->Task->read(null, $id));
	}

	function add($projectId = null) {
		if (!$projectId && empty($this->data)) {
			$this->flash('noid', 'index');
		}
		
		if (!empty($this->data)) {
			if ($this->data['TaskChange']['0']['description'] == '') {
				$this->data['TaskChange']['0']['description'] = null;
			}
			
			if ($this->data['Task']['is_due'] == 0) {
				$this->data['TaskChange']['0']['due'] = null;
			}
			
			$this->data['TaskChange']['0']['is_active'] = 1;
			$this->data['TaskChange']['0']['resolution'] = null;
			$this->data['TaskChange']['0']['user_id'] = $this->Auth->user('id');
			$this->data['Task']['is_open'] = '1';
			if ($this->Task->saveAll($this->data, array('validate'=>'first')) && $this->Task->updateOpenCount($this->data['Task']['project_id'])) {
				$this->flash('saved', array('action'=>'view', $this->Task->id));
			} else {
				$this->flash('failed');
			}
		}
		$this->data['Task']['project_id'] = $projectId;
		$projects = $this->Task->Project->find('list', array('conditions' => array('id' => $this->data['Task']['project_id'])));
		$types = $this->Task->TaskChange->Type->find('list');
		$elements = $this->Task->TaskChange->Element->find('list', array('conditions' => array('project_id' => array($this->data['Task']['project_id'], 0))));
		$severities = $this->Task->TaskChange->Severity->find('list');
		$priorities = $this->Task->TaskChange->Priority->find('list', array('order' => 'order'));
		$reporters = $task_owners = $this->Task->Reporter->find('list', array('fields'=>array('username'), 'conditions' => array('id' => array($this->Auth->user('id')))));
		$versions = $this->Task->TaskChange->Version->find('list', array('conditions' => array('project_id' => array($this->data['Task']['project_id'], 0))));
		$milestones = $this->Task->TaskChange->Milestone->find('list', array('conditions' => array('project_id' => array($this->data['Task']['project_id'], 0))));
		$statuses = $this->Task->TaskChange->Status->find('list', array('order' => 'order'));
		$this->set(compact('projects', 'types', 'elements', 'severities', 'priorities', 'task_owners', 'reporters', 'versions', 'milestones', 'statuses'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->flash('invalid', 'index');
		}
		if (!empty($this->data)) {
			if ($this->Task->save($this->data)) {
				$this->flash('saved', array('action'=>'view', $this->Task->id));
			} else {
				$this->flash('failed');
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Task->read(null, $id);
		}
	}

}
?>