public function linkWithParents(Codendi_Request $request, Tracker_Artifact $artifact) { $user = $request->getCurrentUser(); $ancestors = $artifact->getAllAncestors($user); if (count($ancestors) == 0) { $artifact_id = (int) $request->getValidated('link-artifact-id', 'uint', 0); $source_artifact = $this->artifact_factory->getArtifactById($artifact_id); if ($source_artifact) { foreach ($source_artifact->getAllAncestors($user) as $ancestor) { $ancestor->linkArtifact($artifact->getId(), $user); } } } }
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; }
protected function redirectToParentCreationIfNeeded(Tracker_Artifact $artifact, User $current_user, Tracker_Artifact_Redirect $redirect) { $parent_tracker = $this->tracker->getParent(); if ($parent_tracker) { if (count($artifact->getAllAncestors($current_user)) == 0) { $art_link = $this->formelement_factory->getAnArtifactLinkField($current_user, $parent_tracker); if ($art_link) { $art_link_key = 'artifact[' . $art_link->getId() . '][new_values]'; $redirect_params = array('tracker' => $parent_tracker->getId(), 'func' => 'new-artifact', $art_link_key => $artifact->getId()); $redirect->mode = Tracker_Artifact_Redirect::STATE_CREATE_PARENT; $redirect->query_parameters = $redirect_params; } } } }