/** * @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()); } }
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); }