Skip to content

Commit

Permalink
Change show page for retracted/retraction papers
Browse files Browse the repository at this point in the history
  • Loading branch information
xuanxu committed Aug 11, 2023
1 parent d92d4c9 commit ed22eb5
Show file tree
Hide file tree
Showing 4 changed files with 148 additions and 55 deletions.
54 changes: 1 addition & 53 deletions app/views/papers/_show_published.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -22,58 +22,6 @@
<embed src="<%= @paper.pdf_url %>#toolbar=0&navpanes=0&scrollbar=0&statusbar=0&messages=0" type="application/pdf" style="width:100%; height:100%;" />
</object>
</div>

<div class="col-md-3 paper-sidebar">
<div class="btn-group-vertical" role="group" aria-label="...">
<%= link_to @paper.repository_url, class: 'btn paper-btn' do %>
<%= image_tag "gh-icon.svg" %>
Software repository
<% end %>
<%= link_to @paper.review_url, class: 'btn paper-btn' do %>
<%= image_tag "icon_docs.svg" %>
Paper review
<% end %>
<%= link_to @paper.pdf_url, class: 'btn paper-btn' do %>
<%= image_tag "dl-icon.svg" %>
Download paper
<% end %>
<%= link_to @paper.archive_doi_url, class: 'btn paper-btn' do %>
<%= image_tag "hist-icon.svg" %>
Software archive
<% end %>
</div>

<div class="label">Review</div>
<p>Editor: <%= github_link @paper.metadata_editor %> (<%= link_to "all papers", papers_by_editor_path(@paper.metadata_editor) %>)<br>Reviewers: <%= pretty_reviewers(@paper.metadata_reviewers) %></p>

<div class="label">Authors</div>
<p><%= pretty_authors(@paper.metadata_authors) %></p>

<div class="label">Citation</div>
<p id="citationstring" style="padding-bottom: 0px;margin: 0px;"><%= @paper.citation_string %></p>

<div id="bibtex" style="position:absolute;left:-10000px;height:0px;padding:0px;"><%= render partial: "bibtex", locals: { paper: @paper } %></div>
<div style="margin-bottom: 10px;"><%= link_to "Copy citation string".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#citationstring" %> &middot; <%= link_to "Copy BibTeX".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#bibtex" %>&nbsp;&nbsp;<%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %></div>

<div class="label">Tags</div>
<p>
<% @paper.author_tags.compact.each do |tag| %>
<span class="badge-lang"><%= link_to tag, papers_by_tag_path(tag: tag) %></span>
<% end %>
</p>
<div class="label">Altmetrics</div>
<div style='padding-bottom: 10px;' data-badge-type='donut' class='altmetric-embed' data-badge-popover='right' data-hide-no-mentions='false' data-doi="<%= @paper.doi %>"></div>

<div class="label">Markdown badge</div>
<p><%= image_tag @paper.status_badge_url %> &nbsp; <a href="#" class="clipboard-btn" data-clipboard-action="copy" data-clipboard-text="<%= @paper.markdown_code %>"><%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %></a></p>

<div class="label">License</div>
<p>Authors of <%= Rails.application.settings['abbreviation'] %> papers retain copyright.</p>
<p>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
<p><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a></p>
</div>
<%= render partial: "sidebar_published" %>
</div>
</div>
73 changes: 73 additions & 0 deletions app/views/papers/_sidebar_published.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<div class="col-md-3 paper-sidebar">
<div class="btn-group-vertical" role="group" aria-label="...">
<% if @paper.is_a_retraction_notice? %>
<%= link_to @paper.pdf_url, class: 'btn paper-btn' do %>
<%= image_tag "dl-icon.svg" %>
Download Retraction Notice
<% end %>
<%= link_to @paper.retracted_paper.seo_url, class: 'btn paper-btn danger' do %>
<%= image_tag "icon_docs.svg" %>
Retracted Paper
<% end %>
<% else %>
<% if @paper.retracted? && @paper.retraction_paper.present? %>
<%= link_to @paper.retraction_paper.seo_url, class: 'btn paper-btn' do %>
<%= image_tag "icon_docs.svg" %>
Retraction notice
<% end %>
<% end %>
<%= link_to @paper.repository_url, class: 'btn paper-btn' do %>
<%= image_tag "gh-icon.svg" %>
Software repository
<% end %>
<%= link_to @paper.review_url, class: 'btn paper-btn' do %>
<%= image_tag "icon_docs.svg" %>
Paper review
<% end %>
<%= link_to @paper.pdf_url, class: 'btn paper-btn' do %>
<%= image_tag "dl-icon.svg" %>
Download paper
<% end %>
<%= link_to @paper.archive_doi_url, class: 'btn paper-btn' do %>
<%= image_tag "hist-icon.svg" %>
Software archive
<% end %>
<% end %>
</div>

<% unless @paper.is_a_retraction_notice? %>
<div class="label">Review</div>
<p>Editor: <%= github_link @paper.metadata_editor %> (<%= link_to "all papers", papers_by_editor_path(@paper.metadata_editor) %>)<br>Reviewers: <%= pretty_reviewers(@paper.metadata_reviewers) %></p>
<% end %>

<div class="label">Authors</div>
<p><%= pretty_authors(@paper.metadata_authors) %></p>

<div class="label">Citation</div>
<p id="citationstring" style="padding-bottom: 0px;margin: 0px;"><%= @paper.citation_string %></p>

<div id="bibtex" style="position:absolute;left:-10000px;height:0px;padding:0px;"><%= render partial: "bibtex", locals: { paper: @paper } %></div>
<div style="margin-bottom: 10px;"><%= link_to "Copy citation string".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#citationstring" %> &middot; <%= link_to "Copy BibTeX".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#bibtex" %>&nbsp;&nbsp;<%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %></div>

<div class="label">Tags</div>
<p>
<% @paper.author_tags.compact.each do |tag| %>
<span class="badge-lang"><%= link_to tag, papers_by_tag_path(tag: tag) %></span>
<% end %>
</p>
<div class="label">Altmetrics</div>
<div style='padding-bottom: 10px;' data-badge-type='donut' class='altmetric-embed' data-badge-popover='right' data-hide-no-mentions='false' data-doi="<%= @paper.doi %>"></div>

<div class="label">Markdown badge</div>
<p><%= image_tag @paper.status_badge_url %> &nbsp; <a href="#" class="clipboard-btn" data-clipboard-action="copy" data-clipboard-text="<%= @paper.markdown_code %>"><%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %></a></p>

<div class="label">License</div>
<p>Authors of <%= Rails.application.settings['abbreviation'] %> papers retain copyright.</p>
<p>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.</p>
<p><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a></p>
</div>
3 changes: 1 addition & 2 deletions spec/factories/papers_factory.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@
state { 'retracted' }
accepted_at { Time.now }
review_issue_id { 0 }
retraction_paper { create(:paper) }
sequence(:doi) {|n| "10.21105/joss.0000#{n}" }
sequence(:doi) {|n| "10.21105/joss.4000#{n}" }
end

factory :submitted_paper_with_sha do
Expand Down
73 changes: 73 additions & 0 deletions spec/system/papers/show_published_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
require "rails_helper"

feature "Published paper's show page" do
before do
@accepted_paper = create(:accepted_paper, title: "Astronomy paper", doi: "10.21105/joss.00001", review_issue_id: 1)
@accepted_paper.metadata['paper']['title'] = "Astronomy paper"
@accepted_paper.metadata['paper']['authors'] = [{'given_name' => "Vera", 'last_name' => "Rubin"}]
@accepted_paper.metadata['paper']['tags'] = ["Galaxy rotation curves"]
@accepted_paper.save!

@retracted_paper = create(:retracted_paper, title: "Bad paper", doi: "10.21105/joss.00002", review_issue_id: 2)
@retracted_paper.metadata['paper']['title'] = "Bad paper"
@retracted_paper.save!

@retraction_notice = create(:accepted_paper, title: "Retraction notice for: Bad paper", doi: "10.21105/joss.00002R")
@retraction_notice.update(retracted_paper: @retracted_paper)
end

scenario "Accepted paper" do
visit paper_path(@accepted_paper)

expect(page).to have_content("Astronomy paper")
expect(page).to_not have_content("This paper has been retracted")
expect(page).to_not have_content("This paper is a retraction notice")

expect(page).to have_link("Software repository")
expect(page).to have_link("Paper review")
expect(page).to have_link("Download paper")
expect(page).to have_link("Software archive")

expect(page).to_not have_link("Retraction notice")
expect(page).to_not have_link("Retracted Paper")
expect(page).to_not have_link("Download Retraction Notice")
end

scenario "Retracted paper" do
visit paper_path(@retracted_paper)

expect(page).to have_content("Bad paper")
expect(page).to have_content("This paper has been retracted")
expect(page).to_not have_content("This paper is a retraction notice")

expect(page).to have_link("Software repository")
expect(page).to have_link("Paper review")
expect(page).to have_link("Download paper")
expect(page).to have_link("Software archive")

expect(page).to have_link("Retraction notice")
expect(page).to have_link("read details here")

expect(page).to_not have_link("Retracted Paper")
expect(page).to_not have_link("Download Retraction Notice")
end

scenario "Retraction notice" do
visit paper_path(@retraction_notice)

expect(page).to have_content("Retraction notice for: Bad paper")
expect(page).to have_content("This paper is a retraction notice for: Bad paper")
expect(page).to_not have_content("This paper has been retracted")

expect(page).to_not have_link("Software repository")
expect(page).to_not have_link("Paper review")
expect(page).to_not have_link("Download paper")
expect(page).to_not have_link("Software archive")

expect(page).to_not have_link("Retraction notice")
expect(page).to_not have_link("read details here")

expect(page).to have_link("Retracted Paper")
expect(page).to have_link("Download Retraction Notice")
end
end

0 comments on commit ed22eb5

Please sign in to comment.