artists: fix error messages for invalid artist names.
* When trying to create an artist entry for a non-artist tag, set the error on the name attribute so that the artist name gets marked as incorrect in the artist edit form. * Fix a bad `Name '' cannot be blank` error message when the artist name is blank. * Fix showing wiki pages of non-artist tags in the artist edit form when the artist name conflicts with a non-artist tag (e.g. if you try to create an artist named '1girl', don't show the wiki for 1girl in the artist edit form).
This commit is contained in:
@@ -10,7 +10,7 @@ class TagNameValidator < ActiveModel::EachValidator
|
|||||||
|
|
||||||
case value
|
case value
|
||||||
when /\A_*\z/
|
when /\A_*\z/
|
||||||
record.errors.add(attribute, "'#{value}' cannot be blank")
|
record.errors.add(attribute, "cannot be blank")
|
||||||
when /\*/
|
when /\*/
|
||||||
record.errors.add(attribute, "'#{value}' cannot contain asterisks ('*')")
|
record.errors.add(attribute, "'#{value}' cannot contain asterisks ('*')")
|
||||||
when /,/
|
when /,/
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class Artist < ApplicationRecord
|
|||||||
|
|
||||||
validate :validate_tag_category
|
validate :validate_tag_category
|
||||||
validates :name, tag_name: true, uniqueness: true
|
validates :name, tag_name: true, uniqueness: true
|
||||||
|
|
||||||
before_save :update_tag_category
|
before_save :update_tag_category
|
||||||
after_save :create_version
|
after_save :create_version
|
||||||
after_save :clear_url_string_changed
|
after_save :clear_url_string_changed
|
||||||
@@ -155,7 +156,7 @@ class Artist < ApplicationRecord
|
|||||||
return unless !is_deleted? && name_changed? && tag.present?
|
return unless !is_deleted? && name_changed? && tag.present?
|
||||||
|
|
||||||
if tag.category_name != "Artist" && !tag.empty?
|
if tag.category_name != "Artist" && !tag.empty?
|
||||||
errors.add(:base, "'#{name}' is a #{tag.category_name.downcase} tag; artist entries can only be created for artist tags")
|
errors.add(:name, "'#{name}' is a #{tag.category_name.downcase} tag; artist entries can only be created for artist tags")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<%= f.input :group_name %>
|
<%= f.input :group_name %>
|
||||||
<%= f.input :url_string, label: "URLs", as: :text, input_html: { value: params.dig(:artist, :url_string) || @artist.urls.join("\n")}, hint: "You can prefix a URL with - to mark it as dead." %>
|
<%= f.input :url_string, label: "URLs", as: :text, input_html: { value: params.dig(:artist, :url_string) || @artist.urls.join("\n")}, hint: "You can prefix a URL with - to mark it as dead." %>
|
||||||
|
|
||||||
<% if @artist.wiki_page.present? %>
|
<% if @artist.tag&.artist? && @artist.wiki_page.present? %>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
<label>Wiki (<%= link_to "Edit", edit_wiki_page_path(@artist.wiki_page) %>)</label>
|
<label>Wiki (<%= link_to "Edit", edit_wiki_page_path(@artist.wiki_page) %>)</label>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user