Example #1
0
 protected function getChildDataProject(Project $project, $options = null)
 {
     $data = array();
     switch ($options) {
         case 'subprojects':
             $children = $project->getSubProjects();
             foreach ($children as $child) {
                 $item = new stdClass();
                 $item->id = get_class($child) . '-' . $child->id;
                 $item->text = $child->title . ' <a href="' . build_url('project', 'view', array('id' => $child->id)) . '"><img src="' . resource('images/bullet_go.png') . '" /></a>';
                 $item->expanded = false;
                 $item->classes = "project-item iconed";
                 $item->hasChildren = true;
                 $data[] = $item;
             }
             break;
         case 'milestones':
             $children = $project->getMilestones();
             foreach ($children as $child) {
                 $item = new stdClass();
                 $item->id = get_class($child) . '-' . $child->id . '-tasks';
                 $item->text = $child->title . ' <a href="' . build_url('project', 'view', array('id' => $child->id)) . '"><img src="' . resource('images/bullet_go.png') . '" /></a>';
                 $item->expanded = false;
                 $item->classes = "tree-milestone iconed";
                 $item->hasChildren = true;
                 $data[] = $item;
             }
             break;
         case 'features':
             $items = $this->featureService->getFeatures(array('projectid=' => $project->id));
             foreach ($items as $child) {
                 $item = new stdClass();
                 $item->id = get_class($child) . '-' . $child->id . '-tasks';
                 $item->text = $child->title . ' <a href="' . build_url('feature', 'edit', array('id' => $child->id)) . '"><img src="' . resource('images/bullet_go.png') . '" /></a>';
                 $item->expanded = false;
                 $item->classes = "tree-feature iconed";
                 $item->hasChildren = true;
                 $data[] = $item;
             }
             break;
         case 'requests':
             $items = $this->issueService->getIssues(array('projectid=' => $project->id, 'status <> ' => Issue::STATUS_CLOSED));
             foreach ($items as $child) {
                 $item = new stdClass();
                 $item->id = get_class($child) . '-' . $child->id . '-tasks';
                 $item->text = $child->title . ' <a href="' . build_url('issue', 'edit', array('id' => $child->id)) . '"><img src="' . resource('images/bullet_go.png') . '" /></a>';
                 $item->expanded = false;
                 $item->classes = "tree-request iconed";
                 $item->hasChildren = true;
                 $data[] = $item;
             }
             break;
         case 'tasks':
             $items = $this->projectService->getTasks(array('projectid=' => $project->id, 'complete=' => 0));
             foreach ($items as $child) {
                 $item = new stdClass();
                 $item->id = get_class($child) . '-' . $child->id . '';
                 ob_start();
                 $this->view->percentageBar($child->getPercentage());
                 $bar = ob_get_clean();
                 $item->text = $bar . $child->title . ' <a href="' . build_url('task', 'edit', array('id' => $child->id)) . '"><img src="' . resource('images/bullet_go.png') . '" /></a>';
                 $item->expanded = false;
                 $item->classes = "tree-task iconed";
                 $item->hasChildren = false;
                 $data[] = $item;
             }
             break;
         default:
             $subProjects = $project->getSubProjects();
             if (count($subProjects)) {
                 $option = new stdClass();
                 $option->text = 'Sub Projects';
                 $option->id = get_class($project) . '-' . $project->id . '-subprojects';
                 $option->classes = "tree-folder iconed";
                 $option->hasChildren = true;
                 $data[] = $option;
             }
             if ($project->hasMilestones()) {
                 $option = new stdClass();
                 $option->text = 'Milestones';
                 $option->id = get_class($project) . '-' . $project->id . '-milestones';
                 $option->classes = "tree-folder iconed";
                 $option->hasChildren = true;
                 $data[] = $option;
             }
             // see if there are features
             $items = $this->featureService->getFeatures(array('projectid=' => $project->id));
             if (count($items)) {
                 $option = new stdClass();
                 $option->text = 'Features';
                 $option->id = get_class($project) . '-' . $project->id . '-features';
                 $option->classes = "tree-folder iconed";
                 $option->hasChildren = true;
                 $data[] = $option;
             }
             // see if there are requests
             $items = $this->issueService->getIssues(array('projectid=' => $project->id, 'status <> ' => Issue::STATUS_CLOSED));
             if (count($items)) {
                 $option = new stdClass();
                 $option->text = 'Requests';
                 $option->id = get_class($project) . '-' . $project->id . '-requests';
                 $option->classes = "tree-folder iconed";
                 $option->hasChildren = true;
                 $data[] = $option;
             }
             break;
     }
     return $data;
 }