summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/views/custom_field_enumerations/create.js.erb7
-rw-r--r--app/views/custom_field_enumerations/index.html.erb4
-rw-r--r--test/system/custom_field_enumerations_test.rb36
3 files changed, 45 insertions, 2 deletions
diff --git a/app/views/custom_field_enumerations/create.js.erb b/app/views/custom_field_enumerations/create.js.erb
index 9a9d40433..a81da16cb 100644
--- a/app/views/custom_field_enumerations/create.js.erb
+++ b/app/views/custom_field_enumerations/create.js.erb
@@ -1,2 +1,9 @@
+$('#errorExplanation').remove();
+
+<% if @value.valid? %>
$('#content').html('<%= escape_javascript(render(:template => 'custom_field_enumerations/index')) %>');
+<% else %>
+$('form#add-element').prepend('<%= escape_javascript(error_messages_for(@value)) %>');
+<% end %>
+
$('#custom_field_enumeration_name').focus();
diff --git a/app/views/custom_field_enumerations/index.html.erb b/app/views/custom_field_enumerations/index.html.erb
index 66a0977fd..83e9d59c9 100644
--- a/app/views/custom_field_enumerations/index.html.erb
+++ b/app/views/custom_field_enumerations/index.html.erb
@@ -26,9 +26,9 @@
<% end %>
<% end %>
-<p><%= l(:label_enumeration_new) %></p>
+<%= form_tag custom_field_enumerations_path(@custom_field), :method => 'post', :remote => true, id: 'add-element' do %>
+ <p><%= l(:label_enumeration_new) %></p>
-<%= form_tag custom_field_enumerations_path(@custom_field), :method => 'post', :remote => true do %>
<p><%= text_field_tag 'custom_field_enumeration[name]', '', :size => 40 %>
<%= submit_tag(l(:button_add)) %></p>
<% end %>
diff --git a/test/system/custom_field_enumerations_test.rb b/test/system/custom_field_enumerations_test.rb
new file mode 100644
index 000000000..2ef64b0b3
--- /dev/null
+++ b/test/system/custom_field_enumerations_test.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+# Redmine - project management software
+# Copyright (C) 2006-2020 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.expand_path('../../application_system_test_case', __FILE__)
+
+class CustomFieldEnumerationsTest < ApplicationSystemTestCase
+ fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles,
+ :trackers, :projects_trackers, :enabled_modules, :issue_statuses, :issues,
+ :enumerations, :custom_fields, :custom_values, :custom_fields_trackers,
+ :watchers, :journals, :journal_details
+
+ def test_add_empty_value
+ custom_field = IssueCustomField.generate!(field_format: 'enumeration')
+ log_user('admin', 'admin')
+ visit "custom_fields/#{custom_field.id}/enumerations"
+
+ click_on 'Add'
+ assert page.has_css?('#errorExplanation', text: 'Name cannot be blank')
+ end
+end