artists: reorganize index page.
* Make other names searchable. * Add post count and update timestamp. * Add edit / delete / undelete links.
This commit is contained in:
@@ -38,6 +38,8 @@ class ArtistsController < ApplicationController
|
||||
|
||||
def index
|
||||
@artists = Artist.includes(:urls).paginated_search(params)
|
||||
@artists = @artists.includes(:tag) if request.format.html?
|
||||
@artists = @artists.includes(:urls) if !request.format.html?
|
||||
|
||||
if params[:redirect].to_s.truthy? && @artists.one? && @artists.first.name == Artist.normalize_name(params[:search][:any_name_or_url_matches])
|
||||
redirect_to @artists.first
|
||||
|
||||
@@ -7,4 +7,10 @@ div#c-artists, div#excerpt {
|
||||
.recent-posts h2 {
|
||||
margin: 1em 0 0.5em;
|
||||
}
|
||||
|
||||
div#a-index {
|
||||
td {
|
||||
height: 2.25em; /* should match .artist-other-name line-height */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
.wiki-other-name {
|
||||
.artist-other-name, .wiki-other-name {
|
||||
background-color: var(--wiki-page-other-name-background-color);
|
||||
padding: 3px;
|
||||
margin-right: 0.25em;
|
||||
line-height: 2.25em;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,55 @@
|
||||
<div id="c-artists">
|
||||
<div id="a-index">
|
||||
<%= render "search" %>
|
||||
<table class="striped" width="100%">
|
||||
|
||||
<table class="striped autofit">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="45%">Primary Name</th>
|
||||
<th width="45%">Secondary Names</th>
|
||||
<th width="10%">Status</th>
|
||||
<th>Name</th>
|
||||
<th>Other Names</th>
|
||||
<th>Status</th>
|
||||
<th>Updated</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @artists.each do |artist| %>
|
||||
<% if artist.visible? %>
|
||||
<%= content_tag(:tr, :id => "artist-#{artist.id}") do %>
|
||||
<td>
|
||||
<%= link_to h(artist.name), artist_path(artist) %>
|
||||
<% if !artist.group_name.blank? %>
|
||||
(group: <%= link_to(artist.group_name, artist_path(artist)) %>)
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%= artist.other_names_string %></td>
|
||||
<td><%= artist.status %></td>
|
||||
<% end %>
|
||||
<%= tag.tr id: "artist-#{artist.id}" do %>
|
||||
<td>
|
||||
<%= link_to artist.name, artist, class: "tag-type-#{Tag.categories.artist}" %>
|
||||
<span class="post-count"><%= artist.tag.try(:post_count) || 0 %></span>
|
||||
<% if !artist.group_name.blank? %>
|
||||
(group: <%= link_to artist.group_name, artist %>)
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="col-expand">
|
||||
<% artist.other_names.each do |name| %>
|
||||
<%= link_to name, artists_path(search: { any_name_matches: name }), class: "artist-other-name" %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<% if !artist.is_active? %>
|
||||
<%= link_to "Deleted", artists_path(search: { is_active: false }) %>
|
||||
<% end %>
|
||||
|
||||
<% if artist.is_banned? %>
|
||||
<%= link_to "Banned", artists_path(search: { is_banned: true }) %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<%= time_ago_in_words_tagged(artist.updated_at) %>
|
||||
</td>
|
||||
<td>
|
||||
<% if artist.editable_by?(CurrentUser.user) %>
|
||||
<%= link_to "Edit", edit_artist_path(artist) %>
|
||||
<% end %>
|
||||
|
||||
<% if artist.is_active? && artist.deletable_by?(CurrentUser.user) %>
|
||||
| <%= link_to "Delete", artist_path(artist, artist: { is_active: false }), method: :put, remote: true %>
|
||||
<% elsif !artist.is_active? && artist.deletable_by?(CurrentUser.user) %>
|
||||
| <%= link_to "Undelete", artist_path(artist, artist: { is_active: true }), method: :put, remote: true %>
|
||||
<% end %>
|
||||
</td>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</tbody>
|
||||
|
||||
Reference in New Issue
Block a user