Example #1
0
 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()];
 }
Example #4
0
 /**
  * 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;
 }
Example #8
0
 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;
 }