public function updateArtifacts(PFUser $user, Codendi_Request $request) { if ($this->tracker->userIsAdmin($user)) { $masschange_aids = $request->get('masschange_aids'); if (empty($masschange_aids)) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_masschange_detail', 'no_items_selected')); $GLOBALS['Response']->redirect(TRACKER_BASE_URL . '/?tracker=' . $this->tracker->getId()); } $unsubscribe = $request->get('masschange-unsubscribe-option'); if ($unsubscribe) { $this->unsubscribeUserFromEachArtifactNotification($user, $request, $masschange_aids); } $send_notifications = $this->getSendNotificationsFromRequest($request); $masschange_data = $request->get('artifact'); if (!$unsubscribe && empty($masschange_data)) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_masschange_detail', 'no_items_selected')); $GLOBALS['Response']->redirect(TRACKER_BASE_URL . '/?tracker=' . $this->tracker->getId()); } $comment = $request->get('artifact_masschange_followup_comment'); $masschange_values_extractor = new Tracker_MasschangeDataValueExtractor(); $new_fields_data = $masschange_values_extractor->getNewValues($masschange_data); if (count($new_fields_data) > 0 || $comment !== '') { $comment_format = $request->get('comment_formatmass_change'); $this->tracker->updateArtifactsMasschange($user, $masschange_aids, $new_fields_data, $comment, $send_notifications, $comment_format); } $GLOBALS['Response']->redirect(TRACKER_BASE_URL . '/?tracker=' . $this->tracker->getId()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin', 'access_denied')); $GLOBALS['Response']->redirect(TRACKER_BASE_URL . '/?tracker=' . $this->tracker_report->getId()); } }
public function itReturnsFieldWithItNewValue() { stub($GLOBALS['Language'])->getText('global', 'unchanged')->returns('Unchanged'); $masschange_data_values_manager = new Tracker_MasschangeDataValueExtractor(); $masschange_data = array(1 => 'Unchanged', 2 => 'Value01', 3 => array('Unchanged'), 4 => array('Value02')); $expected_result = array(2 => 'Value01', 4 => array('Value02')); $this->assertEqual($expected_result, $masschange_data_values_manager->getNewValues($masschange_data)); }