File 0005-UI-Clearer-error-when-creating-group-with-no-childre.patch of Package hawk2.3651
From da62acedd89e918b84540a9e2bb342c18c723178 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristoffer=20Gr=C3=B6nlund?= <krig@koru.se>
Date: Wed, 2 Nov 2016 16:38:29 +0100
Subject: [PATCH 05/10] UI: Clearer error when creating group with no children
(bsc#1006169)
---
hawk/app/helpers/form_helper.rb | 10 ++++++----
hawk/app/models/group.rb | 7 ++++++-
hawk/app/models/resource.rb | 5 ++++-
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/hawk/app/helpers/form_helper.rb b/hawk/app/helpers/form_helper.rb
index 4309e60..d6e5869 100644
--- a/hawk/app/helpers/form_helper.rb
+++ b/hawk/app/helpers/form_helper.rb
@@ -28,10 +28,12 @@ module FormHelper
end
def errors_for(record)
- content_tag(
- :div,
- simple_format(record.errors[:base].first), class: "alert alert-danger", role: "alert"
- ) unless record.errors[:base].empty? || record.errors[:base].first.nil?
+ safe_join(record.errors[:base].map do |err|
+ content_tag(
+ :div,
+ simple_format(err), class: "alert alert-danger", role: "alert"
+ ) unless err.nil?
+ end)
end
def form_for(record, options, &proc)
diff --git a/hawk/app/models/group.rb b/hawk/app/models/group.rb
index 04d2df6..51c0c07 100644
--- a/hawk/app/models/group.rb
+++ b/hawk/app/models/group.rb
@@ -7,7 +7,12 @@ class Group < Resource
validate do |record|
# TODO(must): Ensure children are sanitized
- errors.add :children, _("No Group children specified") if record.children.empty?
+ if record.children.empty?
+ # Delete previously detected errors as they are confusing,
+ # but caused by not having any children (bsc#1006169)
+ record.errors.delete :base
+ record.errors.add :base, _("Group cannot be empty, expected at least one child")
+ end
end
def mapping
diff --git a/hawk/app/models/resource.rb b/hawk/app/models/resource.rb
index 3447577..1724219 100644
--- a/hawk/app/models/resource.rb
+++ b/hawk/app/models/resource.rb
@@ -24,7 +24,10 @@ class Resource < Record
i.crm_configure ['cib new', cli, 'verify', 'commit'].join("\n")
end
err.lines.each do |l|
- record.errors.add :base, l[7..-1] if l.start_with? "ERROR:"
+ if l.start_with? "ERROR:"
+ record.errors.add :base, l[7..-1]
+ break
+ end
end if rc != 0
end
end
--
2.10.1