/** @return string[] */ private function formatAllMilestonesAsSelectboxOptions(array $planning_trackers_ids, $selected_milestone_id, Tracker $backlog_tracker, PFUser $user) { $hp = Codendi_HTMLPurifier::instance(); $options = array(); $current_milestone = array(); $options[] = $this->addTopBacklogPlanningEntry($selected_milestone_id, $backlog_tracker, $user); foreach ($planning_trackers_ids as $id) { $current_milestone[$id] = null; } foreach ($this->dao->getAllMilestoneByTrackers($planning_trackers_ids) as $row) { foreach ($planning_trackers_ids as $index => $id) { $milestone_id = $row['m' . $id . '_id']; $milestone_title = $row['m' . $id . '_title']; if (!$milestone_id) { continue; } if ($current_milestone[$id] === $milestone_id) { continue; } $content = str_pad('', $index, '-') . ' ' . $hp->purify($milestone_title); $options[] = $this->getOptionForSelectBox($selected_milestone_id, $milestone_id, $content); $current_milestone[$id] = $milestone_id; } } return $options; }
public function getPaginatedSubMilestones(PFUser $user, Planning_Milestone $milestone, $limit, $offset, $order) { $milestone_artifact = $milestone->getArtifact(); $sub_milestones = array(); $total_size = 0; if ($milestone_artifact) { $sub_milestone_artifacts = $this->milestone_dao->searchPaginatedSubMilestones($milestone_artifact->getId(), $limit, $offset, $order); $total_size = $this->milestone_dao->foundRows(); $sub_milestones = $this->convertDarToArrayOfMilestones($user, $milestone, $sub_milestone_artifacts); } return new AgileDashboard_Milestone_PaginatedMilestones($sub_milestones, $total_size); }
public function getPaginatedTopMilestones(PFUser $user, Project $project, Tuleap\AgileDashboard\Milestone\Criterion\ISearchOnStatus $criterion, $limit, $offset, $order) { $top_milestones = array(); $total_size = 0; $virtual_milestone = $this->getVirtualTopMilestone($user, $project); $root_planning = $this->planning_factory->getRootPlanning($user, $virtual_milestone->getProject()->getID()); $milestone_planning_tracker_id = $virtual_milestone->getPlanning()->getPlanningTrackerId(); if ($milestone_planning_tracker_id) { $top_milestone_artifacts = $this->milestone_dao->searchPaginatedTopMilestones($milestone_planning_tracker_id, $criterion, $limit, $offset, $order); $total_size = $this->milestone_dao->foundRows(); $top_milestones = $this->convertDarToArrayOfMilestones($user, $virtual_milestone, $top_milestone_artifacts); } return new AgileDashboard_Milestone_PaginatedMilestones($top_milestones, $total_size); }