public function getErrorMessage() { $backlog_item_name = $this->artifact->getTitle(); $tracker_name = $this->artifact->getTracker()->getName(); $uri = $this->artifact->getUri(); return $GLOBALS['Language']->getText('plugin_cardwall', 'cells_not_displayed', array($backlog_item_name, $tracker_name, $uri)); }
public function __construct(Tracker_Artifact $artifact) { $this->id = $artifact->getId(); $this->title = $artifact->getTitle(); $this->url = $artifact->getUri(); $this->artifact = $artifact; $this->color = $this->artifact->getTracker()->getColor(); $this->type = $this->artifact->getTracker()->getName(); $this->short_type = $this->artifact->getTracker()->getItemName(); }
public function __construct(Tracker_Artifact $artifact, $redirect_to_self) { $this->id = $artifact->getId(); $this->title = $artifact->getTitle(); $this->url = $artifact->getUri(); $this->redirect_to_self = $redirect_to_self; $this->artifact = $artifact; $this->type = $this->artifact->getTracker()->getName(); $this->color = $this->artifact->getTracker()->getColor(); }
private function displayTrackerSwitcher(PFUser $current_user) { $project = null; if ($this->source_artifact) { $project = $this->source_artifact->getTracker()->getProject(); $GLOBALS['Response']->addFeedback('warning', $GLOBALS['Language']->getText('plugin_tracker', 'linked_to', array($this->source_artifact->fetchDirectLinkToArtifact(), $this->tracker_switcher->fetchTrackerSwitcher($current_user, ' ', $project, $this->tracker))), CODENDI_PURIFIER_DISABLED); } else { $GLOBALS['Response']->addFeedback('error', 'Error the artifact to link doesn\'t exist'); } $GLOBALS['Response']->displayFeedback(); }
public function process(Tracker_Artifact $artifact, array $fields_data) { $tracker_data = array(); //only when a previous changeset exists if (!$artifact->getLastChangeset() instanceof Tracker_Artifact_Changeset_Null) { foreach ($artifact->getLastChangeset()->getValues() as $key => $field) { if ($field instanceof Tracker_Artifact_ChangesetValue_Date || $field instanceof Tracker_Artifact_ChangesetValue_List) { $tracker_data[$key] = $field->getValue(); } } } //replace where appropriate with submitted values foreach ($fields_data as $key => $value) { $tracker_data[$key] = $value; } //addlastUpdateDate and submitted on if available foreach ($this->formelement_factory->getAllFormElementsForTracker($artifact->getTracker()) as $field) { if ($field instanceof Tracker_FormElement_Field_LastUpdateDate) { $tracker_data[$field->getId()] = date("Y-m-d"); } if ($field instanceof Tracker_FormElement_Field_SubmittedOn) { $tracker_data[$field->getId()] = $artifact->getSubmittedOn(); } if ($field instanceof Tracker_FormElement_Field_Date && !array_key_exists($field->getId(), $tracker_data)) { //user doesn't have access to field $tracker_data[$field->getId()] = $field->getValue($field->getId()); } } return $tracker_data; }
private function getSubChildrenBelongingToTracker(Tracker_Artifact $source_artifact, Tracker $expected_tracker, User $user) { $hierarchy = $this->getParentTrackersAndStopAtGivenTracker($expected_tracker, $source_artifact->getTracker()); if ($hierarchy) { return $this->recursivelyFindChildrenBelongingToTracker($source_artifact, $expected_tracker, $user, $hierarchy); } }
private function artifactMatchTriggerValue(Tracker_Artifact $sibling, Tracker_Workflow_Trigger_FieldValue $trigger) { if ($trigger->getField()->getTracker() == $sibling->getTracker()) { return $trigger->isSetForArtifact($sibling); } return true; }
private function storeFieldsValues(Tracker_Artifact $artifact, array $fields_data, PFUser $submitter, $changeset_id) { $used_fields = $this->formelement_factory->getUsedFields($artifact->getTracker()); foreach ($used_fields as $field) { $this->saveNewChangesetForField($field, $artifact, $fields_data, $submitter, $changeset_id); } }
public function getField(Tracker_Artifact $artifact) { $mapping = $this->config->getMappingFor($artifact->getTracker()); if ($mapping) { return $mapping->getField(); } return $this->semantic_status_provider->getField($artifact); }
/** * * @param Tracker_Artifact $artifact * * @return Tracker_FormElement_Field[] */ public function getFields(Tracker_Artifact $artifact) { $diplayed_fields = array(); $tracker = $artifact->getTracker(); foreach ($this->getDisplayedFields($tracker) as $field) { $diplayed_fields[] = $field; } return $diplayed_fields; }
private function getAugmentedDataFromRequest(Codendi_Request $request) { //this handles the 100 value on multi-select boxes $fields_data = $request->get('artifact'); $fields_data['request_method_called'] = 'artifact-update'; $this->artifact->getTracker()->augmentDataFromRequest($fields_data); unset($fields_data['request_method_called']); return $fields_data; }
private function setItemTitle(Tracker_Artifact $artifact) { $title = $artifact->getTitle(); $xref = $artifact->getXRef(); $class = $artifact->getTracker()->getColor(); $this->item_title = $title; $this->item_class = $class; $this->item_xref = $xref; }
private function getParentInSameHierarchy(Tracker $expected_parent_tracker, Tracker_Artifact $source_artifact, User $user) { if ($source_artifact->getTracker() == $expected_parent_tracker) { return $source_artifact; } else { $parent = $source_artifact->getParent($user); if ($parent) { return $this->getParentInSameHierarchy($expected_parent_tracker, $parent, $user); } } }
private function getAssigneeIds(Tracker_Artifact $artifact) { $contributor_field = $artifact->getTracker()->getContributorField(); if ($contributor_field) { $assignee = $artifact->getValue($contributor_field); if ($assignee) { return $assignee->getValue(); } } return array(); }
/** * @param ArtifactValuesRepresentation[] $values * @param Tracker_Artifact $artifact */ public function getFieldsDataOnUpdate(array $values, Tracker_Artifact $artifact) { $new_values = array(); $indexed_fields = $this->getIndexedFields($artifact->getTracker()); foreach ($values as $value) { $array_representation = $value->toArray(); $field = $this->getField($indexed_fields, $array_representation); $new_values[$field->getId()] = $field->getFieldDataFromRESTValue($array_representation, $artifact); } return $new_values; }
/** * Validate the fields contained in $fields_data, and update $fields_data for invalid data * $fields_data is an array of [field_id] => field_data * * @param array $fields_data The field data * * @return boolean true if all fields are valid, false otherwise. This function update $field_data (set values to null if not valid) */ public function validate(Tracker_Artifact $artifact, $fields_data) { $is_valid = true; $used_fields = $this->formelement_factory->getUsedFields($artifact->getTracker()); foreach ($used_fields as $field) { $submitted_value = $this->getSubmittedValue($field, $fields_data); if ($this->canValidateField($artifact, $field)) { $is_valid = $this->validateField($artifact, $field, $submitted_value) && $is_valid; } } return $is_valid; }
private function findNearestMilestoneWithBacklogTracker(Tracker $expected_backlog_tracker, Tracker_Artifact $source_artifact, User $user) { $planning = $this->planning_factory->getPlanningByPlanningTracker($source_artifact->getTracker()); if ($planning && $planning->getBacklogTracker() == $expected_backlog_tracker) { return $this->milestone_factory->getMilestoneFromArtifactWithPlannedArtifacts($source_artifact, $user); } else { $parent = $source_artifact->getParent($user); if ($parent) { return $this->findNearestMilestoneWithBacklogTracker($expected_backlog_tracker, $parent, $user); } } }
private function getBaseArtifact(Tracker_Artifact $artifact, array &$properties) { $last_changeset = $artifact->getLastChangeset(); $last_changeset_id = $last_changeset ? $last_changeset->getId() : -1; $properties = array('id' => $artifact->getId(), 'group_id' => $artifact->getTracker()->getGroupId(), 'tracker_id' => $artifact->getTrackerId(), 'last_changeset_id' => $last_changeset_id); $this->artifact_properties_extractor->extractTrackerUserGroups($artifact, $properties); $this->artifact_properties_extractor->extractArtifactUserGroups($artifact, $properties); if ($last_changeset) { $this->artifact_properties_extractor->extractArtifactTextFields($artifact, $last_changeset, $properties); $this->artifact_properties_extractor->extractArtifactDateFields($artifact, $last_changeset, $properties); } }
public function exportAttachmentsInArchive(Tracker_Artifact $artifact, ZipArchive $archive) { $file_fields = $this->form_element_factory->getUsedFileFields($artifact->getTracker()); $last_changeset = $artifact->getLastChangeset(); if (!$last_changeset) { return; } foreach ($file_fields as $field) { $value = $last_changeset->getValue($field); if ($value) { $this->addFilesIntoArchive($value, $archive); } } }
private function linkWithMilestoneArtifact(User $user, Tracker_Artifact $artifact, Tracker_Artifact $source_artifact = null) { $last_ancestor = $source_artifact; if ($source_artifact) { foreach ($source_artifact->getAllAncestors($user) as $ancestor) { $planning = $this->planning_factory->getPlanningByPlanningTracker($ancestor->getTracker()); if ($planning && $planning->getBacklogTracker() == $artifact->getTracker()) { $ancestor->linkArtifact($artifact->getId(), $user); $last_ancestor = $ancestor; } } } return $last_ancestor; }
public function extractArtifactDateFields(Tracker_Artifact $artifact, Tracker_Artifact_Changeset $last_changeset, array &$properties) { $tracker = $artifact->getTracker(); $custom_date_fields = $this->form_element_factory->getUsedCustomDateFields($tracker); foreach ($custom_date_fields as $date_field) { $last_changeset_value = $last_changeset->getValue($date_field); if ($last_changeset->getValue($date_field) && $last_changeset_value) { $properties[$date_field->getName()] = date('c', $last_changeset_value->getTimestamp()); } } $core_date_fields = $this->form_element_factory->getCoreDateFields($tracker); foreach ($core_date_fields as $date_field) { if ($date_field instanceof Tracker_FormElement_Field_SubmittedOn) { $properties[$date_field->getName()] = date('c', $artifact->getSubmittedOn()); } elseif ($date_field instanceof Tracker_FormElement_Field_LastUpdateDate) { $properties[$date_field->getName()] = date('c', $artifact->getLastUpdateDate()); } } $last_modified = $artifact->getLastUpdateDate(); if ($last_modified === -1) { $last_modified = $artifact->getSubmittedOn(); } $properties[self::LAST_UPDATE_PROPERTY] = date('c', $last_modified); }
/** * Index an artifact * * @param Tracker_Artifact $artifact The artifact to index */ public function indexArtifactUpdate(Tracker_Artifact $artifact) { $this->initializeMapping($artifact->getTracker()); $this->logger->debug('[Tracker] Elasticsearch index artifact #' . $artifact->getId() . ' in tracker #' . $artifact->getTrackerId()); $this->client->index($artifact->getTrackerId(), $artifact->getId(), $this->tracker_data_factory->getFormattedArtifact($artifact)); }
public function queueArtifactDelete(Tracker_Artifact $artifact) { if ($this->plugin->isAllowed($artifact->getTracker()->getGroupId())) { $this->system_event_manager->createEvent(SystemEvent_FULLTEXTSEARCH_TRACKER_ARTIFACT_DELETE::NAME, $this->implodeParams(array($artifact->getId(), $artifact->getTrackerId())), SystemEvent::PRIORITY_MEDIUM, SystemEvent::OWNER_APP); } }
private function getUserUGroups(PFUser $user, Tracker_Artifact $artifact) { return $user->getUgroups($artifact->getTracker()->getProject()->getID(), array()); }
private function redirectToTopPlanning(Tracker_Artifact $artifact, $requested_planning, Tracker_Artifact_Redirect $redirect) { $redirect->base_url = '/plugins/agiledashboard/'; $group_id = null; if ($artifact->getTracker() && $artifact->getTracker()->getProject()) { $group_id = $artifact->getTracker()->getProject()->getID(); } $redirect->query_parameters = array('group_id' => $group_id, 'action' => 'show-top', 'pane' => $requested_planning['pane']); }
private function checkUserCanViewArtifact(Tracker_Artifact $artifact, PFUser $user) { if (!$artifact->userCanView($user)) { throw new SoapFault(get_artifact_fault, 'Permission Denied: you cannot access this artifact'); } $tracker = $artifact->getTracker(); if (!$tracker) { throw new SoapFault(get_tracker_factory_fault, 'Could Not Get Tracker', 'getArtifact'); } $this->getProjectById($tracker->getProject()->getGroupId(), 'getArtifact'); $this->checkUserCanViewTracker($tracker, $user); }
/** * Create a Milestone corresponding to given artifact * * @param Tracker_Artifact $artifact * * @return Planning_ArtifactMilestone */ public function getMilestoneFromArtifact(Tracker_Artifact $artifact, TreeNode $planned_artifacts = null) { $tracker = $artifact->getTracker(); $planning = $this->planning_factory->getPlanningByPlanningTracker($tracker); return new Planning_ArtifactMilestone($tracker->getProject(), $planning, $artifact, $planned_artifacts); }
private function getFieldValue(Tracker_FormElementFactory $form_element_factory, User $user, Tracker_Artifact $artifact, $field_name) { $field = $form_element_factory->getComputableFieldByNameForUser($artifact->getTracker()->getId(), $field_name, $user); if ($field) { return $field->getComputedValue($user, $artifact); } return 0; }
/** * Instanciate a new object based on a artifact * * @param Tracker_Artifact $artifact * * @return Tracker_ArtifactLinkInfo */ public static function buildFromArtifact(Tracker_Artifact $artifact) { $tracker = $artifact->getTracker(); $klass = __CLASS__; return new $klass($artifact->getId(), $tracker->getItemName(), $tracker->getGroupId(), $tracker->getId(), $artifact->getLastChangeset()->getId()); }
/** * Update cross references of this field * * @param Tracker_Artifact $artifact the artifact that is currently updated * @param array $values the array of added and removed artifact links ($values['added_values'] is a string and $values['removed_values'] is an array of artifact ids */ protected function updateCrossReferences(Tracker_Artifact $artifact, $values) { $added_artifact_ids = array(); if (array_key_exists('new_values', $values)) { if (trim($values['new_values']) != '') { $added_artifact_ids = explode(',', $values['new_values']); } } $removed_artifact_ids = array(); if (array_key_exists('removed_values', $values)) { $removed_artifact_ids = $values['removed_values']; } $af = $this->getArtifactFactory(); $rm = $this->getReferenceManager(); $current_user = $this->getCurrentUser(); foreach ($added_artifact_ids as $added_artifact_id) { $artifact_target = $af->getArtifactById((int) trim($added_artifact_id)); $artifactlink = new Tracker_ArtifactLinkInfo($artifact_target->getId(), $artifact_target->getTracker()->getItemname(), $artifact_target->getTracker()->getGroupId(), $artifact_target->getTracker()->getId(), $artifact_target->getLastChangeset()->getId()); $source_tracker = $artifact->getTracker(); $rm->extractCrossRef($artifactlink->getLabel(), $artifact->getId(), Tracker_Artifact::REFERENCE_NATURE, $source_tracker->getGroupId(), $current_user->getId(), $source_tracker->getItemName()); } // TODO : remove the removed elements }