diff --git a/app/models/wiki_page_version.rb b/app/models/wiki_page_version.rb index 21f0ba4e8..cac29dec0 100644 --- a/app/models/wiki_page_version.rb +++ b/app/models/wiki_page_version.rb @@ -4,6 +4,8 @@ class WikiPageVersion < ApplicationRecord belongs_to :artist, optional: true delegate :visible?, :to => :wiki_page + extend Memoist + module SearchMethods def for_user(user_id) where("updater_id = ?", user_id) @@ -35,6 +37,11 @@ class WikiPageVersion < ApplicationRecord title.tr("_", " ") end + def previous + WikiPageVersion.where("wiki_page_id = ? and id < ?", wiki_page_id, id).order("id desc").first + end + memoize :previous + def category_name Tag.category_for(title) end diff --git a/app/views/wiki_pages/_secondary_links.html.erb b/app/views/wiki_pages/_secondary_links.html.erb index 0002d3f99..c4470fe24 100644 --- a/app/views/wiki_pages/_secondary_links.html.erb +++ b/app/views/wiki_pages/_secondary_links.html.erb @@ -1,7 +1,9 @@ <% content_for(:secondary_links) do %>
  • <%= render "wiki_pages/quick_search" %>
  • + <%= subnav_link_to "Listing", wiki_pages_path %> + <%= subnav_link_to "Search", search_wiki_pages_path %> <% if CurrentUser.is_member? %> @@ -12,20 +14,33 @@ <% if @wiki_page && @wiki_page.new_record? && @wiki_page.try(:tag).present? %>
  • |
  • + <%= subnav_link_to "Posts (#{@wiki_page.tag.post_count})", posts_path(:tags => @wiki_page.title) %> + <% elsif @wiki_page && !@wiki_page.new_record? %>
  • |
  • + <%= subnav_link_to "Posts (#{@wiki_page.tag.try(:post_count) || 0})", posts_path(:tags => @wiki_page.title) %> + <%= subnav_link_to "History", wiki_page_versions_path(:search => {:wiki_page_id => @wiki_page.id}) %> + <% if CurrentUser.is_member? %> <%= subnav_link_to "Edit", edit_wiki_page_path(@wiki_page), "data-shortcut": "e" %> <% end %> + <% if CurrentUser.is_builder? && !@wiki_page.is_deleted? %> <%= subnav_link_to "Delete", wiki_page_path(@wiki_page), :remote => true, :method => :delete, :"data-shortcut" => "shift+d", :"data-confirm" => "Are you sure you want to delete this wiki page?" %> <% end %> + <% elsif @wiki_page_version %>
  • |
  • + <%= subnav_link_to "Newest", wiki_page_path(@wiki_page_version.wiki_page_id) %> + + <% if @wiki_page_version.previous %> + <%= subnav_link_to "Diff", diff_wiki_page_versions_path(:otherpage => @wiki_page_version.id, :thispage => @wiki_page_version.previous.id) %> + <% end %> + <% if CurrentUser.is_member? %> <%= subnav_link_to "Revert to", revert_wiki_page_path(@wiki_page_version.wiki_page_id, :version_id => @wiki_page_version.id), :method => :put, :data => {:confirm => "Are you sure you want to revert to this version?"} %> <% end %> diff --git a/public/robots.txt b/public/robots.txt index 1ded15aa8..978abc9ab 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -51,4 +51,4 @@ Disallow: /users Disallow: /wiki_page_versions Disallow: /wiki_pages/new Disallow: /wiki_pages/revert -Disallow: /wiki_pages/show_or_new +Disallow: /wiki_pages/show_or_new \ No newline at end of file