コード例 #1
0
ファイル: Project.php プロジェクト: dasklney/traq
 /**
  * @return array[]
  */
 public function milestoneSelectOptions($valueField = 'id', $status = null, $sort = 'ASC')
 {
     $options = [];
     $milestones = Milestone::where('project_id = ?')->setParameter(0, $this->id)->orderBy('display_order', $sort);
     if ($status !== null) {
         $milestones->andWhere('status = ?')->setParameter(1, $status);
     }
     foreach ($milestones->execute()->fetchAll() as $milestone) {
         $options[] = ['label' => $milestone['name'], 'value' => $milestone[$valueField]];
     }
     return $options;
 }
コード例 #2
0
ファイル: Roadmap.php プロジェクト: nirix/traq
 /**
  * Show milestone.
  *
  * @param string $slug
  */
 public function showAction($slug)
 {
     list($openQuery, $startedQuery, $closedQuery) = $this->getTicketCountQueries();
     $milestone = Milestone::where('project_id = :project_id')->andWhere('slug = :slug')->addSelect("({$openQuery}) AS open_tickets")->addSelect("({$startedQuery}) AS started_tickets")->addSelect("({$closedQuery}) AS closed_tickets")->setParameter('project_id', $this->currentProject['id'])->setParameter('slug', $slug)->setParameter('open_count_is_closed', false, 'boolean')->setParameter('closed_count_is_closed', false, 'boolean')->fetch();
     $this->addCrumb($milestone['name'], $this->generateUrl('milestone', ['slug' => $milestone['slug']]));
     return $this->respondTo(function ($format) use($milestone) {
         if ($format == 'html') {
             return $this->render('roadmap/show.phtml', ['milestone' => $milestone]);
         } elseif ($format == 'json') {
             return $this->jsonResponse($milestone);
         }
     });
 }