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
|
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)
|
def artist_version_other_names_diff(artist_version)
|
||||||
new_names = artist_version.other_names
|
new_names = artist_version.other_names
|
||||||
old_names = artist_version.previous.try(:other_names)
|
old_names = artist_version.previous.try(:other_names)
|
||||||
|
|||||||
@@ -29,4 +29,41 @@ class ArtistVersion < ApplicationRecord
|
|||||||
end
|
end
|
||||||
@previous.first
|
@previous.first
|
||||||
end
|
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
|
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| %>
|
<%= table_for @artist_versions, {class: "striped autofit", width: "100%"} do |t| %>
|
||||||
<% t.column "Name" do |artist_version| %>
|
<% t.column "Name" do |artist_version| %>
|
||||||
<%= link_to artist_version.name, artist_path(artist_version.artist_id) %>
|
<%= link_to artist_version.name, artist_path(artist_version.artist_id) %>
|
||||||
<%= link_to "»", artist_versions_path(search: {artist_id: artist_version.artist_id}) %>
|
<%= link_to "»", artist_versions_path(search: {artist_id: artist_version.artist_id}, anchor: "artist-version-#{artist_version.id}") %>
|
||||||
|
|
||||||
<% if !artist_version.is_active? %>
|
|
||||||
(deleted)
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if artist_version.group_name.present? %>
|
|
||||||
<p>(group: <%= artist_version.group_name %>)</p>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% t.column "Other Names" do |artist_version| %>
|
<% 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) %>
|
<%= artist_version_other_names_diff(artist_version) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% t.column "URLs", td: {class: "col-expand"} do |artist_version| %>
|
<% t.column "URLs", td: {class: "col-expand"} do |artist_version| %>
|
||||||
<%= artist_version_urls_diff(artist_version) %>
|
<%= artist_version_urls_diff(artist_version) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% t.column "Changes" do |artist_version| %>
|
||||||
|
<%= status_diff_html(artist_version) %>
|
||||||
|
<% end %>
|
||||||
<% t.column "Updated" do |artist_version| %>
|
<% t.column "Updated" do |artist_version| %>
|
||||||
<%= link_to_user artist_version.updater %>
|
<%= link_to_user artist_version.updater %>
|
||||||
<%= link_to "»", artist_versions_path(search: { updater_name: artist_version.updater.name }) %>
|
<%= link_to "»", artist_versions_path(search: { updater_name: artist_version.updater.name }) %>
|
||||||
@@ -26,7 +24,7 @@
|
|||||||
<%= compact_time(artist_version.updated_at) %>
|
<%= compact_time(artist_version.updated_at) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if artist_versions_listing_type == :revert %>
|
<% if listing_type(:artist_id) == :revert %>
|
||||||
<% t.column column: "control" do |artist_version| %>
|
<% 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?" %>
|
<%= 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 %>
|
<% end %>
|
||||||
|
|||||||
Reference in New Issue
Block a user