private function getHierarchyAsTreeNode($hierarchy) { $node = new TreeNode(); if (isset($hierarchy['children'])) { $node->setData(array('name' => $hierarchy['name'], 'id' => $hierarchy['id'], 'current_class' => '')); $node->setId($hierarchy['id']); $hierarchy = $hierarchy['children']; } else { $node->setId('root'); } foreach ($hierarchy as $item) { $node->addChild($this->getHierarchyAsTreeNode($item)); } return $node; }
protected function getTreeNode($id, $title, $artifactLinks = '') { if (is_array($artifactLinks)) { $artifactLinks = implode(', ', $artifactLinks); } $nodeData = array('id' => $id, 'title' => $title, 'artifactlinks' => $artifactLinks); $node = new TreeNode($nodeData); $node->setId($id); return $node; }
private function getParentNode(Tracker_Artifact $parent, array &$cache_alreaydy_built_parents) { if (!isset($cache_alreaydy_built_parents[$parent->getId()])) { $parent_node = new TreeNode(); $parent_node->setId($parent->getId()); $parent_node->setObject($parent); $cache_alreaydy_built_parents[$parent->getId()] = $parent_node; } return $cache_alreaydy_built_parents[$parent->getId()]; }
/** * Create a tree from the given list according to the hierarchy definition * * @param DataAccessResult $artifacts * @param array $tracker_ids * @param Tracker_Hierarchy $hierarchy * * @return \TreeNode */ public function buildTreeWithCompleteList($artifacts, array $tracker_ids, Tracker_Hierarchy $hierarchy) { $root = new TreeNode(); $root->setId(0); if ($artifacts) { list($artifacts_by_id, $artifacts_by_tracker) = $this->indexArtifactsByIdAndTracker($artifacts); $tracker_ids = $hierarchy->sortTrackerIds($tracker_ids); $this->organizeArtifactsInTrackerHierarchy($root, $hierarchy, $artifacts_by_id, $artifacts_by_tracker, $tracker_ids); } return $root; }
private function buildTreeNode() { $root = new TreeNode(); $root->setId(0); foreach (func_get_args() as $arg) { $node = new TreeNode(); $node->setObject($arg); $node->setId($arg->getId()); $root->addChild($node); } return $root; }
public function setUp() { parent::setUp(); $report = new MockTracker_Report(); $release_tracker_id = 743; $release_tracker = aTracker()->withId($release_tracker_id)->build(); $art_link_release_field_id = 131; $art_link_release_field = mock('Tracker_CrossSearch_ArtifactReportField'); stub($art_link_release_field)->getTracker()->returns($release_tracker); stub($art_link_release_field)->getArtifactLinkFieldName()->returns('art_link_' . $art_link_release_field_id); $art_link_release_criterion = new Tracker_Report_Criteria(null, $report, $art_link_release_field, 0, true); $sprint_tracker_id = 365; $sprint_tracker = aTracker()->withId($sprint_tracker_id)->build(); $art_link_sprint_field_id = 511; $art_link_sprint_field = mock('Tracker_CrossSearch_ArtifactReportField'); stub($art_link_sprint_field)->getTracker()->returns($sprint_tracker); stub($art_link_sprint_field)->getArtifactLinkFieldName()->returns('art_link_' . $art_link_sprint_field_id); $art_link_sprint_criterion = new Tracker_Report_Criteria(null, $report, $art_link_sprint_field, 0, true); $criteria = array($art_link_release_criterion, $art_link_sprint_criterion); $this->sprint_id = '354'; $this->sprint = stub('Tracker_Artifact')->getTitle()->returns('The planning known as Sprint'); $this->release_id = '666'; $this->release = stub('Tracker_Artifact')->getTitle()->returns('I release I can fly'); $artifact_node = new TreeNode(); $artifact_node->setId(1); $artifact_node->setData(array('id' => 123, 'title' => 'foo', 'last_changeset_id' => '567', 'art_link_' . $art_link_sprint_field_id => $this->sprint_id, 'art_link_' . $art_link_release_field_id => $this->release_id)); $tree_of_artifacts = new TreeNode(); $tree_of_artifacts->setId(0); $tree_of_artifacts->addChild($artifact_node); $this->artifact_factory = new MockTracker_ArtifactFactory(); $factory = new MockTracker_FormElementFactory(); $tracker = new MockTracker(); $artifact = new MockTracker_Artifact(); $this->user = mock('PFUser'); $artifact->setReturnValue('getTracker', $tracker); stub($this->artifact_factory)->getArtifactById(123)->returns($artifact); $this->view = new Tracker_CrossSearch_SearchContentView($report, $criteria, $tree_of_artifacts, $this->artifact_factory, $factory, $this->user); }
protected function getATreeNode($tree_node_id, $artifact_links = array(), $classname = "planning-draggable-alreadyplanned") { $node = new TreeNode(array('id' => $tree_node_id, 'artifact_id' => $tree_node_id, 'title' => 'Artifact ' . $tree_node_id, 'class' => $classname, 'uri' => '/bar', 'xref' => 'art #' . $tree_node_id, 'editLabel' => null, 'allowedChildrenTypes' => array())); $node->setId($tree_node_id); foreach ($artifact_links as $node_child) { $node->addChild($node_child); } return $node; }
function testRenderShouldPadTheArtifactsAccordingToTheirLevel() { $service = new MockService(); $criteria = $this->GivenCriteria(); $artifacts = array(array('id' => '6', 'last_changeset_id' => '12345', 'title' => 'As a user I want to search on shared fields', 'artifactlinks' => '8'), array('id' => '8', 'last_changeset_id' => '56789', 'title' => 'Add the form', 'artifactlinks' => '')); $root = new TreeNode(); $node0 = new TreeNode($artifacts[0]); $node0->setId($artifacts[0]['id']); $node1 = new TreeNode($artifacts[1]); $node1->setId($artifacts[1]['id']); $root->addChild($node0); $node0->addChild($node1); $view = $this->GivenASearchView($service, $criteria, $artifacts, $root); $output = $this->renderAndGetContent($view); $pattern = '(.*)?(tree-node-6)(.*)?(node-indent)(.*)?(node-last-left)(.*)?(node-tree)(.*)?(node-indent)(.*)?(node-minus-tree)(.*)?(node-child)'; $pattern .= '(.*)?(tree-node-8)(.*)?(node-blank)(.*)?'; $this->assertPattern("%^{$pattern}\$%ism", $output); }
private function makeNodeFor($tracker, $current_tracker) { $current_class = ''; if ($tracker->getId() == $current_tracker->getId()) { $current_class = 'tracker-hierarchy-current'; } $node = new TreeNode(array('name' => $tracker->getName(), 'id' => $tracker->getId(), 'current_class' => $current_class)); $node->setId($tracker->getId()); return $node; }