From 10614d21526f044db024e07acdcaa0b0201d4d05 Mon Sep 17 00:00:00 2001 From: evazion Date: Sat, 29 Jul 2017 01:38:21 -0500 Subject: [PATCH] artists: show success/error message when updating artists. --- app/controllers/artists_controller.rb | 1 + app/models/artist.rb | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/app/controllers/artists_controller.rb b/app/controllers/artists_controller.rb index 8ba5bb468..f8581237a 100644 --- a/app/controllers/artists_controller.rb +++ b/app/controllers/artists_controller.rb @@ -62,6 +62,7 @@ class ArtistsController < ApplicationController def update @artist.update(params[:artist], :as => CurrentUser.role) + flash[:notice] = @artist.valid? ? "Artist updated" : @artist.errors.full_messages.join("; ") respond_with(@artist) end diff --git a/app/models/artist.rb b/app/models/artist.rb index b190df3f4..fa9750f56 100644 --- a/app/models/artist.rb +++ b/app/models/artist.rb @@ -10,6 +10,7 @@ class Artist < ApplicationRecord validates_uniqueness_of :name validate :validate_name validate :validate_wiki, :on => :create + after_validation :merge_validation_errors belongs_to :creator, :class_name => "User" has_many :members, :class_name => "Artist", :foreign_key => "group_name", :primary_key => "name" has_many :urls, :dependent => :destroy, :class_name => "ArtistUrl" @@ -535,6 +536,13 @@ class Artist < ApplicationRecord extend SearchMethods include ApiMethods + def merge_validation_errors + errors[:urls].clear + urls.select(&:invalid?).each do |url| + errors[:url] << url.errors.full_messages.join("; ") + end + end + def status if is_banned? && is_active? "Banned"