Project

General

Profile

« Previous | Next » 

Revision 95e00758

Added by Andreas Kohlbecker almost 4 years ago

ref #9010 showing status notes, source and annotations

View differences:

modules/cdm_dataportal/includes/descriptions.inc
558 558
      'names_used_in_source' => array()
559 559
    );
560 560

  
561
    usort($entity->sources, 'compare_original_sources');
561
    // some entity types only have single sources:
562
    if(isset($entity->source) && is_object($entity->source)){
563
      $sources = [$entity->source];
564
    } else if(isset($entity->sources)) {
565
      $sources = $entity->sources;
566
    } else {
567
      $sources = [];
568
    }
569
    usort($sources, 'compare_original_sources');
562 570

  
563 571
    if ($config['sources_as_content'] == 1) {
564
      foreach ($entity->sources as $source) {
572
      foreach ($sources as $source) {
565 573
        if (_is_original_source_type($source)) {
566 574
          $reference_citation = render_original_source(
567 575
            $source,
modules/cdm_dataportal/includes/taxon-node.inc
27 27
function compose_taxon_node_status(array $taxon_nodes){
28 28

  
29 29
  $render_array = [];
30
  RenderHints::pushToRenderStack("taxon_nodes");
31
  RenderHints::setFootnoteListKey('taxon_nodes');
30 32
  if($taxon_nodes && count($taxon_nodes) > 0){
31 33
    $label_plural = false;
32
    $state_markup_tokens = [];
34
    $status_markup_tokens = [];
33 35
    foreach ($taxon_nodes as $taxon_node){
36

  
37
      $annotations_and_sources = handle_annotations_and_sources($taxon_node,
38
        array(
39
        'sources_as_content' => false,
40
        'link_to_name_used_in_source' => false,
41
        'link_to_reference' => true,
42
        'add_footnote_keys' => false,
43
        'bibliography_aware' => false),
44
        '',
45
        null);
46

  
34 47
      if(isset($taxon_node->status)){
35 48
        $state_label = strtolower($taxon_node->status);
36
        $classification_markup = ' <span class="' . html_class_attribute_ref($taxon_node->classification) .'">[' . $taxon_node->classification->titleCache . ']</span>';
37
        $state_markup = '<span class="' . html_class_attribute_ref($taxon_node) .'">' . $state_label . '%s</span>'; // %s will be replaced by the $classification_markup or by ''
38
        $state_markup_tokens[] = [
39
          'states' => $state_markup,
40
          'classification' => $classification_markup,
41
          'closing_tag' => '</span>'
49
        if(isset($taxon_node->statusNote_L10n->text)){
50
          $state_label .= ' <span class="status-note">(' . $taxon_node->statusNote_L10n->text . ')</span>';
51
        }
52
        $status_markup_tokens[]  = [
53
          'status' => '<span class="' . html_class_attribute_ref($taxon_node) .'">' . $state_label . $annotations_and_sources['foot_note_keys']  .  '%s</span>', // %s will be replaced by the $classification_markup or by '',
54
          'classification' => ' <span class="' . html_class_attribute_ref($taxon_node->classification) .'">[' . $taxon_node->classification->titleCache . ']</span>'
42 55
        ];
43 56
      }
57

  
44 58
    }
45
    if(count($state_markup_tokens) > 0){
46
      $state_markup = [];
47
      $label_plural |= count($state_markup_tokens) > 1;
59
    if(count($status_markup_tokens) > 0){
60
      $status_markup = [];
61
      $label_plural |= count($status_markup_tokens) > 1;
48 62
      $label = $label_plural ? t('Placement status') : t('Placement status');
49
      if(count($state_markup_tokens) > 1){
50
        foreach ($state_markup_tokens as $tokes){
51
          $state_markup[] = sprintf($tokes['states'], $tokes['classification']);
63
      if(count($status_markup_tokens) > 1){
64
        foreach ($status_markup_tokens as $tokes){
65
          $status_markup[] = sprintf($tokes['status'], $tokes['classification']);
52 66
        }
53 67
      } else {
54
        foreach ($state_markup_tokens as $tokes){
55
          $state_markup[] = sprintf($tokes['states'], '');
68
        foreach ($status_markup_tokens as $tokes){
69
          $status_markup[] = sprintf($tokes['status'], '');
56 70
        }
57 71
      }
58
      $render_array['taxon-node-status'] = markup_to_render_array($label . ': ' . join('; ', $state_markup));
72
      $render_array['taxon-node-status'] = markup_to_render_array($label . ': ' . join('; ', $status_markup) . theme('cdm_footnotes', array('footnoteListKey' => RenderHints::getFootnoteListKey())));
59 73
      $render_array['taxon-node-status']['#prefix'] = '<div class="taxon-node-status">';
60 74
      $render_array['taxon-node-status']['#suffix'] = '</div>';
61 75
    }
62 76
  }
77
  RenderHints::getFootnoteListKey();
78
  RenderHints::popFromRenderStack();
63 79
  return $render_array;
64 80
}
src/main/java/eu/etaxonomy/dataportal/pages/TaxonPage.java
80 80
        return taxonNodeStatus;
81 81
    }
82 82

  
83
    public List<TaxonNodeStatusElement> getTaxonNodeStatus() {
83
    public List<TaxonNodeStatusElement> getTaxonNodeStates() {
84 84
        List<TaxonNodeStatusElement> statusEls = new ArrayList<>();
85 85
        List<WebElement> taxonNodeStatus = portalContent.findElements(By.className("taxon-node-status"));
86 86
        for(WebElement el : taxonNodeStatus) {
src/test/java/eu/etaxonomy/dataportal/selenium/tests/reference/TaxonNodeStatusTest.java
63 63

  
64 64
        assertTrue(p.getTaxonNodeStatusContainer().get(0).getText().startsWith("Placement status: "));
65 65

  
66
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStatus();
66
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStates();
67 67
        assertEquals(1, statusElements.size());
68 68
        TaxonNodeStatusElement statusElement = statusElements.get(0);
69 69
        assertEquals(2, statusElement.getTaxonNodeStatus().size());
......
71 71
        TaxonNodeStatusData tnsData_0 = statusElement.getTaxonNodeStatus().get(0);
72 72
        assertEquals("TaxonNode", tnsData_0.getTaxonNodeRef().getCdmType());
73 73
        assertEquals("402ea023-07be-4335-9274-1c3e30a7df3f", tnsData_0.getTaxonNodeRef().getUuid().toString());
74
        assertEquals("doubtful", tnsData_0.getStatusText().trim());
74
        assertEquals("doubtful (The placement has been made for software testing purposes only)", tnsData_0.getStatusText().trim());
75 75

  
76 76
        assertEquals("Classification", tnsData_0.getClassificationRef().getCdmType());
77 77
        assertEquals("2ab81d37-125d-47e6-8450-6aafd5f4b043", tnsData_0.getClassificationRef().getUuid().toString());
......
94 94

  
95 95
        assertTrue("Expecting sigular", p.getTaxonNodeStatusContainer().get(0).getText().startsWith("Placement status: "));
96 96

  
97
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStatus();
97
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStates();
98 98
        assertEquals(1, statusElements.size());
99 99
        TaxonNodeStatusElement statusElement = statusElements.get(0);
100 100
        assertEquals(1, statusElement.getTaxonNodeStatus().size());
......
115 115

  
116 116
        assertTrue(p.getTaxonNodeStatusContainer().get(0).getText().startsWith("Placement status: "));
117 117

  
118
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStatus();
118
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStates();
119 119
        assertEquals(1, statusElements.size());
120 120
        TaxonNodeStatusElement statusElement = statusElements.get(0);
121 121
        assertEquals(1, statusElement.getTaxonNodeStatus().size());
......
134 134

  
135 135
        assertTrue("Expecting sigular", p.getTaxonNodeStatusContainer().get(0).getText().startsWith("Placement status: "));
136 136

  
137
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStatus();
137
        List<TaxonNodeStatusElement> statusElements = p.getTaxonNodeStates();
138 138
        assertEquals(1, statusElements.size());
139 139
        TaxonNodeStatusElement statusElement = statusElements.get(0);
140 140
        assertEquals(1, statusElement.getTaxonNodeStatus().size());

Also available in: Unified diff