genome/dgi-db

View on GitHub
app/views/shared/_claims_tab.html.haml

Summary

Maintainability
Test Coverage
/takes in variable for type of claim (drug/gene/interaction)
/lists all claims in summary form (so renders list of claim summary partial)
/similar to _drug.html.haml or _gene.html.haml but has variable claim type

- if defined? drug
  %ul(class="result-list" id="list-results")
    -drug.sorted_claims.each do |drug_claim|
      %li(class="#{drug_claim.source.source_types.first.type} claim-panel gene-drug" data-category="#{format_source_types(drug_claim.source)}" data-name="#{format_source_type_names(drug_claim.source)}" onclick="location.href='/drug_claims/#{drug_claim.source.source_db_name}/#{drug_claim.name}';")
        =render partial: 'drug_claims/drug_claim_summary', locals: { drug_claim: DrugClaimPresenter.new(drug_claim) }
- elsif defined? gene
  %ul(class="result-list" id="list-results")
    -gene.sorted_claims.each do |gene_claim|
      %li(class="#{gene_claim.source.source_types.first.type} claim-panel gene-drug" data-category="#{format_source_types(gene_claim.source)}" data-name="#{format_source_type_names(gene_claim.source)}" onclick="location.href='/gene_claims/#{gene_claim.source.source_db_name}/#{gene_claim.name}';")
        =render partial: 'gene_claims/gene_claim_summary', locals: { gene_claim: GeneClaimPresenter.new(gene_claim) }
- else
  %ul(class="result-list" id="list-results")
    -interaction.interaction_claims.sort_by{ |i| [-i.interaction_claim_attributes.length] }.each do |interaction_claim|
      %li(class="#{interaction_claim.source.source_types.first.type} claim-panel" data-category="#{format_source_types(interaction_claim.source)}" data-name="#{format_source_type_names(interaction_claim.source)}" onclick="location.href='/interaction_claims/#{interaction_claim.id}';")
        =render partial: 'interaction_claims/interaction_claim_summary', locals: { interaction_claim: InteractionClaimPresenter.new(interaction_claim) }

:css
  li.claim-panel:hover {
    background-color:rgba(220, 220, 220, 1);
    cursor: pointer;
  }