Rework artist versions index view
- Added a changes column explicitly listing all of the changes -- This makes it more in line with the other version views now - Does a symmetric difference on the array fields to detect changes
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
module ArtistVersionsHelper
|
||||
def artist_versions_listing_type
|
||||
(params.dig(:search, :artist_id).present? && CurrentUser.is_member?) ? :revert : :standard
|
||||
end
|
||||
|
||||
def artist_version_other_names_diff(artist_version)
|
||||
new_names = artist_version.other_names
|
||||
old_names = artist_version.previous.try(:other_names)
|
||||
|
||||
@@ -29,4 +29,41 @@ class ArtistVersion < ApplicationRecord
|
||||
end
|
||||
@previous.first
|
||||
end
|
||||
|
||||
def self.status_fields
|
||||
{
|
||||
name: "Renamed",
|
||||
urls_changed: "URLs",
|
||||
other_names_changed: "OtherNames",
|
||||
group_name: "GroupName",
|
||||
was_deleted: "Deleted",
|
||||
was_undeleted: "Undeleted",
|
||||
was_banned: "Banned",
|
||||
was_unbanned: "Unbanned",
|
||||
}
|
||||
end
|
||||
|
||||
def other_names_changed
|
||||
((other_names - previous.other_names) | (previous.other_names - other_names)).length > 0
|
||||
end
|
||||
|
||||
def urls_changed
|
||||
((urls - previous.urls) | (previous.urls - urls)).length > 0
|
||||
end
|
||||
|
||||
def was_deleted
|
||||
!is_active && previous.is_active
|
||||
end
|
||||
|
||||
def was_undeleted
|
||||
is_active && !previous.is_active
|
||||
end
|
||||
|
||||
def was_banned
|
||||
is_banned && !previous.is_banned
|
||||
end
|
||||
|
||||
def was_unbanned
|
||||
!is_banned && previous.is_banned
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,24 +1,22 @@
|
||||
<div id="p-<%= artist_versions_listing_type %>-listing">
|
||||
<div id="p-<%= listing_type(:artist_id) %>-listing">
|
||||
|
||||
<%= table_for @artist_versions, {class: "striped autofit", width: "100%"} do |t| %>
|
||||
<% t.column "Name" do |artist_version| %>
|
||||
<%= link_to artist_version.name, artist_path(artist_version.artist_id) %>
|
||||
<%= link_to "»", artist_versions_path(search: {artist_id: artist_version.artist_id}) %>
|
||||
|
||||
<% if !artist_version.is_active? %>
|
||||
(deleted)
|
||||
<% end %>
|
||||
|
||||
<% if artist_version.group_name.present? %>
|
||||
<p>(group: <%= artist_version.group_name %>)</p>
|
||||
<% end %>
|
||||
<%= link_to "»", artist_versions_path(search: {artist_id: artist_version.artist_id}, anchor: "artist-version-#{artist_version.id}") %>
|
||||
<% end %>
|
||||
<% t.column "Other Names" do |artist_version| %>
|
||||
<% if artist_version.group_name.present? %>
|
||||
<p><b>Group:</b><br> <%= artist_version.group_name %></p>
|
||||
<% end %>
|
||||
<%= artist_version_other_names_diff(artist_version) %>
|
||||
<% end %>
|
||||
<% t.column "URLs", td: {class: "col-expand"} do |artist_version| %>
|
||||
<%= artist_version_urls_diff(artist_version) %>
|
||||
<% end %>
|
||||
<% t.column "Changes" do |artist_version| %>
|
||||
<%= status_diff_html(artist_version) %>
|
||||
<% end %>
|
||||
<% t.column "Updated" do |artist_version| %>
|
||||
<%= link_to_user artist_version.updater %>
|
||||
<%= link_to "»", artist_versions_path(search: { updater_name: artist_version.updater.name }) %>
|
||||
@@ -26,7 +24,7 @@
|
||||
<%= compact_time(artist_version.updated_at) %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% if artist_versions_listing_type == :revert %>
|
||||
<% if listing_type(:artist_id) == :revert %>
|
||||
<% t.column column: "control" do |artist_version| %>
|
||||
<%= link_to "Revert to", revert_artist_path(artist_version.artist_id, version_id: artist_version.id), method: :put, "data-confirm": "Are you sure you want to revert to this version?" %>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user