/**
  * @return string
  */
 public function getCriterion(Tracker $backlog_tracker, PFUser $user)
 {
     $options = $this->options_provider->getSelectboxOptions($backlog_tracker, $this->milestone_provider->getMilestoneId(), $user);
     if (!$options) {
         return null;
     }
     $criterion = '';
     $criterion .= '<label for="tracker_report_crit_agiledashboard_milestone">';
     $criterion .= $GLOBALS['Language']->getText('plugin_agiledashboard', 'report_criteria_label');
     $criterion .= '</label>';
     $criterion .= '<select name="additional_criteria[' . self::FIELD_NAME . ']" id="tracker_report_crit_agiledashboard_milestone">';
     $criterion .= '<option value="" >' . $GLOBALS['Language']->getText('global', 'any') . '</option>';
     $criterion .= implode('', $options);
     $criterion .= '</select>';
     return $criterion;
 }
 /**
  * @see TRACKER_EVENT_REPORT_SAVE_ADDITIONAL_CRITERIA
  */
 public function tracker_event_report_save_additional_criteria($params)
 {
     $dao = new MilestoneReportCriterionDao();
     $project = $params['report']->getTracker()->getProject();
     $user = $this->getCurrentUser();
     $milestone_provider = new AgileDashboard_Milestone_SelectedMilestoneProvider($params['additional_criteria'], $this->getMilestoneFactory(), $user, $project);
     if ($milestone_provider->getMilestone()) {
         $dao->save($params['report']->getId(), $milestone_provider->getMilestoneId());
     } else {
         $dao->delete($params['report']->getId());
     }
 }
예제 #3
0
 private function getMilestoneFromCriteria(PFUser $user, Project $project, $additional_criteria)
 {
     $milestone_provider = new AgileDashboard_Milestone_SelectedMilestoneProvider($additional_criteria, $this->milestone_factory, $user, $project);
     return $milestone_provider->getMilestone();
 }
 public function itReturnsAnyWhenNoCriterion()
 {
     $additional_criteria = array();
     $provider = new AgileDashboard_Milestone_SelectedMilestoneProvider($additional_criteria, $this->milestone_factory, $this->user, $this->project);
     $this->assertEqual($provider->getMilestoneId(), AgileDashboard_Milestone_MilestoneReportCriterionProvider::ANY);
 }