diff --git a/application/controllers/jobs.php b/application/controllers/jobs.php index 03dad37..f488e03 100644 --- a/application/controllers/jobs.php +++ b/application/controllers/jobs.php @@ -4,7 +4,7 @@ class Jobs extends CI_Controller { public function getOwn() { $query = $this->db->order_by('progress', 'desc') - ->get_where('jobs', array('started_by' => $this->session->user_data('id'))); + ->get_where('jobs', array('started_by' => $this->session->user_data('user_id'))); $count = $query->num_rows(); $jobs = $query->result_array(); @@ -39,7 +39,7 @@ class Jobs extends CI_Controller { public function listResultsNotSeen() { $query = $this->db->order_by('started_at', 'asc') - ->get_where('jobs', array('started_by' => $this->session->user_data('id'), 'seen' => '0')); + ->get_where('jobs', array('started_by' => $this->session->user_data('user_id'), 'seen' => '0')); $count = $query->num_rows(); $jobs = $query->result_array(); diff --git a/application/controllers/projects.php b/application/controllers/projects.php index e897d6a..2735759 100644 --- a/application/controllers/projects.php +++ b/application/controllers/projects.php @@ -65,10 +65,10 @@ class Projects extends CI_Controller { } public function detail($projects, $area, $id) { - $result = $this->db->get_where('projects', array('id' => $id))->row_array(); + $project = $this->project->get($id); $this->output ->set_content_type('application/json') - ->set_output(json_encode(array('result' => $result))); + ->set_output(json_encode($project)); } /** diff --git a/application/models/project.php b/application/models/project.php index cee6f53..fb267e5 100644 --- a/application/models/project.php +++ b/application/models/project.php @@ -14,7 +14,7 @@ class Project extends CI_Model { * @return array The user's projects. */ public function getOwn() { - $query = $this->db->where(array('owner' => $this->session->user_data('id'))) + $query = $this->db->where(array('owner' => $this->session->user_data('user_id'))) ->order_by('lastaccess', 'desc') ->get('projects'); $projects = $query->result_array(); @@ -38,7 +38,7 @@ class Project extends CI_Model { * @return array The shared projects. */ public function getShared() { - $this->db->select('*')->from('shares')->order_by('lastaccess', 'desc')->where(array('user_id' => $this->session->user_data('id'))); + $this->db->select('*')->from('shares')->order_by('lastaccess', 'desc')->where(array('user_id' => $this->session->user_data('user_id'))); $this->db->join('projects', 'projects.id = shares.project_id'); $query = $this->db->get(); @@ -80,6 +80,18 @@ class Project extends CI_Model { return $publicProjects; } + + /** + * Get a specific project from the database. + * + * @param type $project_id The project to get. + */ + public function get($project_id) { + $result = $this->db->get_where('projects', array('id' => $project_id))->row_array(); + + $this->db->query('UPDATE `projects` SET `lastaccess` = NOW() WHERE `id`='.$this->db->escape($project_id).';'); + return $result; + } /** * Get all available configurations from a specific project. @@ -102,21 +114,25 @@ class Project extends CI_Model { */ public function search($needle) { - // get matching projects that are public or belong directly to the user - $query = $this->db->where('public','1') - ->or_where('owner', $this->session->userdata('id')) - ->like('name', $needle)->get('projects'); - $results = $query->result_array(); + // get matching projects that are public + $query = $this->db->query("SELECT * FROM `projects` WHERE `public`='1' AND `name` LIKE ".$this->db->escape('%'.$needle.'%')); + $public_results = $query->result_array(); + + // or belong directly to the user + $query = $this->db->query("SELECT * FROM `projects` WHERE `owner`=".$this->db->escape($this->session->userdata('user_id')) + ." AND `name` LIKE ".$this->db->escape('%'.$needle.'%')); + $own_results = $query->result_array(); + // get matching projects that are shared to the user $this->db->select('*')->from('shares') - ->where(array('user_id' => $this->session->userdata('id'))) + ->where(array('user_id' => $this->session->userdata('user_id'))) ->like('name', $needle); $this->db->join('projects', 'projects.id = shares.project_id'); $query = $this->db->get(); - $own_results = $query->result_array(); + $shared_results = $query->result_array(); - return array_merge($results, $own_results); + return array_merge($own_results, $shared_results); } } \ No newline at end of file