diff --git a/app/assets/javascripts/katello/sync_management/sync_management.js b/app/assets/javascripts/katello/sync_management/sync_management.js index 44bfa017727..82fa59eb428 100644 --- a/app/assets/javascripts/katello/sync_management/sync_management.js +++ b/app/assets/javascripts/katello/sync_management/sync_management.js @@ -387,6 +387,20 @@ $("#sync_product_form") if ($("input[name='repoids[]']:checked").length === 0) { return false; } + }) + .on("ajax:error", function (event, response) { + let errorMessage = localize("error"); + if (response && response.responseJSON && response.responseJSON.error) { + errorMessage = response.responseJSON.error; + } + if (window.tfm && window.tfm.toastNotifications) { + window.tfm.toastNotifications.notify({ + message: errorMessage, + type: "danger", + }); + } else { + alert(errorMessage); + } }); $("#sync_toggle").on("change", function () { diff --git a/app/controllers/katello/sync_management_controller.rb b/app/controllers/katello/sync_management_controller.rb index bba9093707f..42baf785d72 100644 --- a/app/controllers/katello/sync_management_controller.rb +++ b/app/controllers/katello/sync_management_controller.rb @@ -32,8 +32,12 @@ def index end def sync - tasks = sync_repos(params[:repoids]) || [] - render :json => tasks.as_json + begin + tasks = sync_repos(params[:repoids]) || [] + render json: tasks.as_json + rescue StandardError => e + render json: { error: e.message }, status: :internal_server_error + end end def sync_status diff --git a/app/models/katello/repository.rb b/app/models/katello/repository.rb index f1daefb7681..59e2b611419 100644 --- a/app/models/katello/repository.rb +++ b/app/models/katello/repository.rb @@ -704,7 +704,7 @@ def check_ready_to_act! .uniq .map { |task| "- #{Setting['foreman_url']}/foreman_tasks/tasks/#{task&.id}" } .join("\n") - fail _("This repository has pending tasks in associated content views. Please wait for the tasks: " + errored_tasks + + fail _("Repository #{self.label} has pending tasks in associated content views. Please wait for the tasks: " + errored_tasks + " to complete before proceeding.") end end