diff --git a/app/helpers/wiki_page_versions_helper.rb b/app/helpers/wiki_page_versions_helper.rb index f23886c82..44b1b3ba6 100644 --- a/app/helpers/wiki_page_versions_helper.rb +++ b/app/helpers/wiki_page_versions_helper.rb @@ -1,4 +1,17 @@ module WikiPageVersionsHelper + def wiki_page_version_status_diff(wiki_page_version) + cur = wiki_page_version + prev = wiki_page_version.previous + + return "New" if prev.blank? + + status = [] + status += ["Renamed"] if cur.title != prev.title + status += ["Deleted"] if cur.is_deleted? && !prev.is_deleted? + status += ["Undeleted"] if !cur.is_deleted? && prev.is_deleted? + status.join(" ") + end + def wiki_page_diff(thispage, otherpage) pattern = Regexp.new('(?:<.+?>)|(?:\w+)|(?:[ \t]+)|(?:\r?\n)|(?:.+?)') other_names_pattern = Regexp.new('\S+|\s+') diff --git a/app/models/wiki_page_version.rb b/app/models/wiki_page_version.rb index 1f39a5467..aa86a4206 100644 --- a/app/models/wiki_page_version.rb +++ b/app/models/wiki_page_version.rb @@ -5,8 +5,6 @@ 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) @@ -41,7 +39,6 @@ class WikiPageVersion < ApplicationRecord 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) diff --git a/app/views/wiki_page_versions/_global_listing.html.erb b/app/views/wiki_page_versions/_global_listing.html.erb index 884868429..03fbbf14a 100644 --- a/app/views/wiki_page_versions/_global_listing.html.erb +++ b/app/views/wiki_page_versions/_global_listing.html.erb @@ -2,34 +2,32 @@ + - - - <% if CurrentUser.is_moderator? %> - - <% end %> + <% @wiki_page_versions.each do |wiki_page_version| %> - - - - <% if CurrentUser.is_moderator? %> - - <% end %> + + <% end %> diff --git a/app/views/wiki_page_versions/_page_listing.html.erb b/app/views/wiki_page_versions/_page_listing.html.erb index 332286a81..5d6cabe85 100644 --- a/app/views/wiki_page_versions/_page_listing.html.erb +++ b/app/views/wiki_page_versions/_page_listing.html.erb @@ -6,13 +6,8 @@ - - - - <% if CurrentUser.is_moderator? %> - - <% end %> + @@ -30,21 +25,18 @@ - - - <% if CurrentUser.is_moderator? %> - - <% end %> + <% end %> diff --git a/app/views/wiki_page_versions/index.html.erb b/app/views/wiki_page_versions/index.html.erb index f28821b7a..06e7f9fe2 100644 --- a/app/views/wiki_page_versions/index.html.erb +++ b/app/views/wiki_page_versions/index.html.erb @@ -3,7 +3,7 @@ <%= render "wiki_pages/sidebar" %>
-

Wiki Pages

+

Wiki Page History

<% if params.dig(:search, :wiki_page_id).present? %> <%= render "page_listing" %> diff --git a/app/views/wiki_pages/_recent_changes.html.erb b/app/views/wiki_pages/_recent_changes.html.erb index 02868a9ad..74312bcac 100644 --- a/app/views/wiki_pages/_recent_changes.html.erb +++ b/app/views/wiki_pages/_recent_changes.html.erb @@ -1,5 +1,5 @@
-

Recent Changes (<%= link_to "all", wiki_pages_path(:order => "time") %>)

+

Recent Changes (<%= link_to "all", wiki_page_versions_path %>)

TitleDelIP AddressStatus Last edited
- <%= link_to wiki_page_version.title, wiki_page_version_path(wiki_page_version) %> + + <%= link_to_if wiki_page_version.previous.present?, "diff", diff_wiki_page_versions_path(otherpage: wiki_page_version.previous.try(:id), thispage: wiki_page_version.id) %> <%= wiki_page_version.is_deleted? ? "Y" : "" %><%= link_to "wiki", wiki_page_path(wiki_page_version.wiki_page_id) %> - <%= link_to_ip wiki_page_version.updater_ip_addr %> - + <%= link_to "?", wiki_page_path(wiki_page_version.wiki_page_id) %> + <%= link_to wiki_page_version.title, wiki_page_version %> + <%= link_to "»", wiki_page_versions_path(search: { wiki_page_id: wiki_page_version.wiki_page_id }) %> + <%= wiki_page_version_status_diff(wiki_page_version) %> <%= compact_time(wiki_page_version.updated_at) %> - <% if wiki_page_version.updater %> - by - <%= link_to_user wiki_page_version.updater %> + by + <%= link_to_user wiki_page_version.updater %> + <% if CurrentUser.is_moderator? %> + (<%= link_to_ip wiki_page_version.updater_ip_addr %>) <% end %> + <%= link_to "»", wiki_page_versions_path(search: { updater_id: wiki_page_version.updater.id }) %>
TitleDelIP AddressStatus Last edited
<%= radio_button_tag "otherpage", wiki_page_version.id, (i == 0) %> - <%= link_to wiki_page_version.title, wiki_page_version_path(wiki_page_version) %> + <%= link_to "?", wiki_page_path(wiki_page_version.wiki_page_id) %> + <%= link_to wiki_page_version.title, wiki_page_version %> <%= wiki_page_version.is_deleted? ? "Y" : "" %><%= link_to "wiki", wiki_page_path(wiki_page_version.wiki_page_id) %> - <%= link_to_ip wiki_page_version.updater_ip_addr %> - <%= wiki_page_version_status_diff(wiki_page_version) %> <%= compact_time(wiki_page_version.updated_at) %> - <% if wiki_page_version.updater %> - by - <%= link_to_user wiki_page_version.updater %> + by + <%= link_to_user wiki_page_version.updater %> + <% if CurrentUser.is_moderator? %> + (<%= link_to_ip wiki_page_version.updater_ip_addr %>) <% end %> + <%= link_to "»", wiki_page_versions_path(search: { updater_id: wiki_page_version.updater.id }) %>