Ejemplo n.º 1
0
 /**
  * Returns top level navigation of projects.
  *
  * @param int $limit
  *
  * @return ArrayList
  */
 public function Navigation($limit = 5)
 {
     $navigation = new ArrayList();
     $currentProject = $this->getCurrentProject();
     $projects = $this->getStarredProjects();
     if ($projects->count() < 1) {
         $projects = $this->DNProjectList();
     } else {
         $limit = -1;
     }
     if ($projects->count() > 0) {
         $activeProject = false;
         if ($limit > 0) {
             $limitedProjects = $projects->limit($limit);
         } else {
             $limitedProjects = $projects;
         }
         foreach ($limitedProjects as $project) {
             $isActive = $currentProject && $currentProject->ID == $project->ID;
             if ($isActive) {
                 $activeProject = true;
             }
             $navigation->push(array('Project' => $project, 'IsActive' => $currentProject && $currentProject->ID == $project->ID));
         }
         // Ensure the current project is in the list
         if (!$activeProject && $currentProject) {
             $navigation->unshift(array('Project' => $currentProject, 'IsActive' => true));
             if ($limit > 0 && $navigation->count() > $limit) {
                 $navigation->pop();
             }
         }
     }
     return $navigation;
 }
Ejemplo n.º 2
0
 /**
  * Returns top level navigation of projects.
  *
  * @param int $limit
  *
  * @return ArrayList
  */
 public function Navigation($limit = 5)
 {
     $navigation = new ArrayList();
     $currentProject = $this->getCurrentProject();
     $currentEnvironment = $this->getCurrentEnvironment();
     $actionType = $this->getCurrentActionType();
     $projects = $this->getStarredProjects();
     if ($projects->count() < 1) {
         $projects = $this->DNProjectList();
     } else {
         $limit = -1;
     }
     if ($projects->count() > 0) {
         $activeProject = false;
         if ($limit > 0) {
             $limitedProjects = $projects->limit($limit);
         } else {
             $limitedProjects = $projects;
         }
         foreach ($limitedProjects as $project) {
             $isActive = $currentProject && $currentProject->ID == $project->ID;
             if ($isActive) {
                 $activeProject = true;
             }
             $isCurrentEnvironment = false;
             if ($project && $currentEnvironment) {
                 $isCurrentEnvironment = (bool) $project->DNEnvironmentList()->find('ID', $currentEnvironment->ID);
             }
             $navigation->push(['Project' => $project, 'IsCurrentEnvironment' => $isCurrentEnvironment, 'IsActive' => $currentProject && $currentProject->ID == $project->ID, 'IsOverview' => $actionType == self::PROJECT_OVERVIEW && !$isCurrentEnvironment && $currentProject->ID == $project->ID]);
         }
         // Ensure the current project is in the list
         if (!$activeProject && $currentProject) {
             $navigation->unshift(['Project' => $currentProject, 'IsActive' => true, 'IsCurrentEnvironment' => $currentEnvironment, 'IsOverview' => $actionType == self::PROJECT_OVERVIEW && !$currentEnvironment]);
             if ($limit > 0 && $navigation->count() > $limit) {
                 $navigation->pop();
             }
         }
     }
     return $navigation;
 }