diff --git a/app/views/rails_admin/main/show.html.haml b/app/views/rails_admin/main/show.html.haml index 73e55f0a42..8532779d4a 100644 --- a/app/views/rails_admin/main/show.html.haml +++ b/app/views/rails_admin/main/show.html.haml @@ -1,6 +1,6 @@ - @model_config.show.with(object: @object, view: self, controller: self.controller).visible_groups.each do |fieldset| - unless (fields = fieldset.with(object: @object, view: self, controller: self.controller).visible_fields).empty? - - if !(values = fields.map{ |f| f.formatted_value.presence }).compact.empty? || !RailsAdmin::config.compact_show_view + - unless (fields = fields.reject{ |f| RailsAdmin::config.compact_show_view && f.formatted_value.nil? || f.formatted_value == '' }).empty? .fieldset %h4 = fieldset.label @@ -8,9 +8,8 @@ %p= fieldset.help %dl - fields.each_with_index do |field, index| - - unless values[index].nil? && RailsAdmin::config.compact_show_view - %dt - %span.label.label-info{class: "#{field.type_css_class} #{field.css_class}"} - = field.label - %dd.well - = field.pretty_value + %dt + %span.label.label-info{class: "#{field.type_css_class} #{field.css_class}"} + = field.label + %dd.well + = field.pretty_value diff --git a/spec/integration/config/show/rails_admin_config_show_spec.rb b/spec/integration/config/show/rails_admin_config_show_spec.rb index fa55fc62e3..f203b7720c 100644 --- a/spec/integration/config/show/rails_admin_config_show_spec.rb +++ b/spec/integration/config/show/rails_admin_config_show_spec.rb @@ -27,7 +27,13 @@ def do_request end describe 'compact_show_view' do - it 'hides empty fields in show view by default' do + it 'hides nil fields in show view by default' do + do_request + is_expected.not_to have_css('.logo_url_field') + end + + it 'hides blank fields in show view by default' do + team.update logo_url: '' do_request is_expected.not_to have_css('.logo_url_field') end @@ -40,6 +46,15 @@ def do_request do_request is_expected.to have_css('.logo_url_field') end + + describe 'with boolean field' do + let(:player) { FactoryBot.create :player, retired: false } + + it 'does not hide false value' do + visit show_path(model_name: 'player', id: player.id) + is_expected.to have_css('.retired_field') + end + end end describe 'bindings' do