diff --git a/app/views/papers/_show_published.html.erb b/app/views/papers/_show_published.html.erb index e68d57ef..fd89188f 100644 --- a/app/views/papers/_show_published.html.erb +++ b/app/views/papers/_show_published.html.erb @@ -22,58 +22,6 @@ - -
-
- <%= 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 %> -
- -
Review
-

Editor: <%= github_link @paper.metadata_editor %> (<%= link_to "all papers", papers_by_editor_path(@paper.metadata_editor) %>)
Reviewers: <%= pretty_reviewers(@paper.metadata_reviewers) %>

- -
Authors
-

<%= pretty_authors(@paper.metadata_authors) %>

- -
Citation
-

<%= @paper.citation_string %>

- -
<%= render partial: "bibtex", locals: { paper: @paper } %>
-
<%= link_to "Copy citation string".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#citationstring" %> · <%= link_to "Copy BibTeX".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#bibtex" %>  <%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %>
- -
Tags
-

- <% @paper.author_tags.compact.each do |tag| %> - <%= link_to tag, papers_by_tag_path(tag: tag) %> - <% end %> -

-
Altmetrics
-
- -
Markdown badge
-

<%= image_tag @paper.status_badge_url %>   <%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %>

- -
License
-

Authors of <%= Rails.application.settings['abbreviation'] %> papers retain copyright.

-

This work is licensed under a Creative Commons Attribution 4.0 International License.

-

Creative Commons License

-
+ <%= render partial: "sidebar_published" %> diff --git a/app/views/papers/_sidebar_published.html.erb b/app/views/papers/_sidebar_published.html.erb new file mode 100644 index 00000000..900732a1 --- /dev/null +++ b/app/views/papers/_sidebar_published.html.erb @@ -0,0 +1,73 @@ +
+
+ <% 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 %> +
+ + <% unless @paper.is_a_retraction_notice? %> +
Review
+

Editor: <%= github_link @paper.metadata_editor %> (<%= link_to "all papers", papers_by_editor_path(@paper.metadata_editor) %>)
Reviewers: <%= pretty_reviewers(@paper.metadata_reviewers) %>

+ <% end %> + +
Authors
+

<%= pretty_authors(@paper.metadata_authors) %>

+ +
Citation
+

<%= @paper.citation_string %>

+ +
<%= render partial: "bibtex", locals: { paper: @paper } %>
+
<%= link_to "Copy citation string".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#citationstring" %> · <%= link_to "Copy BibTeX".html_safe, "#", class: "clipboard-btn", "data-clipboard-action": "copy", "data-clipboard-target": "#bibtex" %>  <%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %>
+ +
Tags
+

+ <% @paper.author_tags.compact.each do |tag| %> + <%= link_to tag, papers_by_tag_path(tag: tag) %> + <% end %> +

+
Altmetrics
+
+ +
Markdown badge
+

<%= image_tag @paper.status_badge_url %>   <%= octicon "paste", height: 16, class: "", "aria-label": "Copy" %>

+ +
License
+

Authors of <%= Rails.application.settings['abbreviation'] %> papers retain copyright.

+

This work is licensed under a Creative Commons Attribution 4.0 International License.

+

Creative Commons License

+
diff --git a/spec/factories/papers_factory.rb b/spec/factories/papers_factory.rb index 45f70ef9..0abf896b 100644 --- a/spec/factories/papers_factory.rb +++ b/spec/factories/papers_factory.rb @@ -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 diff --git a/spec/system/papers/show_published_spec.rb b/spec/system/papers/show_published_spec.rb new file mode 100644 index 00000000..d0d92f68 --- /dev/null +++ b/spec/system/papers/show_published_spec.rb @@ -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