Add helper for tree views and use it

This commit is contained in:
Eike Foken
2011-04-21 20:45:38 +02:00
parent 52cd81eace
commit c4c7988b5d
3 changed files with 24 additions and 14 deletions

View File

@@ -6,19 +6,23 @@ class Projects extends CI_Controller {
* List all projects the user has access to. * List all projects the user has access to.
*/ */
public function getAvailable() { public function getAvailable() {
$this->load->model('Project'); $this->load->model('project');
$this->load->helper('tree');
$path = $this->input->get_post('node'); $path = $this->input->get_post('node');
switch($path) { switch($path) {
case '/projects/own': case '/projects/own':
$projects = $this->Project->getOwn(); $projects = $this->project->getOwn();
array_walk($projects, 'set_tree_icons', base_url() . 'assets/images/icons/document.png');
break; break;
case '/projects/shared': case '/projects/shared':
$projects = $this->Project->getShared(); $projects = $this->project->getShared();
array_walk($projects, 'set_tree_icons', base_url() . 'assets/images/icons/document.png');
break; break;
case '/projects/public': case '/projects/public':
$projects = $this->Project->getPublic(); $projects = $this->project->getPublic();
array_walk($projects, 'set_tree_icons', base_url() . 'assets/images/icons/document.png');
break; break;
default: default:
$projects = array( $projects = array(

View File

@@ -0,0 +1,9 @@
<?php defined('BASEPATH') || exit("No direct script access allowed");
if (!function_exists('set_tree_icons')) {
function set_tree_icons(&$value, $key, $icon) {
if (isset($value['text']) && !isset($value['icon'])) {
$value['icon'] = $icon;
}
}
}

View File

@@ -1,7 +1,7 @@
<?php <?php
class Project extends CI_Model { class Project extends CI_Model {
public function getOwn() { public function getOwn() {
$query = $this->db->where(array('owner' => '215cd70f310ae6ae')) $query = $this->db->where(array('owner' => '215cd70f310ae6ae'))
->order_by('lastaccess', 'desc') ->order_by('lastaccess', 'desc')
@@ -15,18 +15,17 @@ class Project extends CI_Model {
$ownProjects[$i]['cls'] = 'folder'; $ownProjects[$i]['cls'] = 'folder';
$ownProjects[$i]['text'] = $project['name']; $ownProjects[$i]['text'] = $project['name'];
$ownProjects[$i]['leaf'] = true; $ownProjects[$i]['leaf'] = true;
$ownProjects[$i]['icon'] = "/ScattPort/assets/images/icons/document.png";
$i++; $i++;
} }
return $ownProjects; return $ownProjects;
} }
public function getShared() { public function getShared() {
$this->db->select('*')->from('shares')->order_by('lastaccess', 'desc')->where(array('user_id' => '215cd70f310ae6ae')); $this->db->select('*')->from('shares')->order_by('lastaccess', 'desc')->where(array('user_id' => '215cd70f310ae6ae'));
$this->db->join('projects', 'projects.id = shares.project_id'); $this->db->join('projects', 'projects.id = shares.project_id');
$query = $this->db->get(); $query = $this->db->get();
$projects = $query->result_array(); $projects = $query->result_array();
$sharedCount = $query->num_rows(); $sharedCount = $query->num_rows();
@@ -36,13 +35,12 @@ class Project extends CI_Model {
$sharedProjects[$i]['cls'] = 'folder'; $sharedProjects[$i]['cls'] = 'folder';
$sharedProjects[$i]['text'] = $project['name']; $sharedProjects[$i]['text'] = $project['name'];
$sharedProjects[$i]['leaf'] = true; $sharedProjects[$i]['leaf'] = true;
$sharedProjects[$i]['icon'] = "/ScattPort/assets/images/icons/document.png";
$i++; $i++;
} }
return $sharedProjects; return $sharedProjects;
} }
public function getPublic() { public function getPublic() {
$query = $this->db->where(array('public' => '1')) $query = $this->db->where(array('public' => '1'))
->order_by('name', 'asc') ->order_by('name', 'asc')
@@ -56,10 +54,9 @@ class Project extends CI_Model {
$publicProjects[$i]['cls'] = 'folder'; $publicProjects[$i]['cls'] = 'folder';
$publicProjects[$i]['text'] = $project['name']; $publicProjects[$i]['text'] = $project['name'];
$publicProjects[$i]['leaf'] = true; $publicProjects[$i]['leaf'] = true;
$publicProjects[$i]['icon'] = "/ScattPort/assets/images/icons/document.png";
$i++; $i++;
} }
return $publicProjects; return $publicProjects;
} }
} }