@@ -142,29 +142,35 @@ def initialized_default_configuration?
142
142
# set to nil if a checkbox is prefered to the icon
143
143
property :bookmark_icon_component , default : Blacklight ::Icons ::BookmarkIconComponent
144
144
145
- # @!attribute index
146
- # General configuration for all views
145
+ # @!attribute defaults
146
+ # Default configuration for all views
147
147
# @return [Blacklight::Configuration::ViewConfig::Index]
148
- property :index , default : ViewConfig :: Index . new (
148
+ property :defaults , default : ViewConfig . new (
149
149
# document presenter class used by helpers and views
150
150
document_presenter_class : nil ,
151
- # document presenter used for json responses
152
- json_presenter_class : Blacklight ::JsonPresenter ,
153
151
# component class used to render a document
154
152
document_component : Blacklight ::DocumentComponent ,
155
153
document_embed_component : nil ,
156
154
document_metadata_component : Blacklight ::DocumentMetadataComponent ,
157
155
document_thumbnail_component : Blacklight ::Document ::ThumbnailComponent ,
158
156
document_title_component : Blacklight ::DocumentTitleComponent ,
159
- sidebar_component : Blacklight ::Search ::SidebarComponent ,
160
- dropdown_component : Blacklight ::System ::DropdownComponent ,
161
157
# solr field to use to render a document title
162
158
title_field : nil ,
163
159
# solr field to use to render format-specific partials
164
- display_type_field : nil ,
160
+ display_type_field : nil
161
+ )
162
+
163
+ # @!attribute index
164
+ # General configuration for search views
165
+ # @return [Blacklight::Configuration::ViewConfig::Index]
166
+ property :index , default : ViewConfig ::Index . new (
167
+ document_actions : NestedOpenStructWithHashAccess . new ( ToolConfig ) ,
168
+ # document presenter used for json responses
169
+ json_presenter_class : Blacklight ::JsonPresenter ,
170
+ sidebar_component : Blacklight ::Search ::SidebarComponent ,
171
+ dropdown_component : Blacklight ::System ::DropdownComponent ,
165
172
# the "field access" key to use to look up the document display fields
166
173
document_fields_key : :index_fields ,
167
- document_actions : NestedOpenStructWithHashAccess . new ( ToolConfig ) ,
168
174
collection_actions : NestedOpenStructWithHashAccess . new ( ToolConfig ) ,
169
175
# what field, if any, to use to render grouped results
170
176
group : false ,
@@ -190,9 +196,7 @@ def initialized_default_configuration?
190
196
# Additional configuration when displaying a single document
191
197
# @return [Blacklight::Configuration::ViewConfig::Show]
192
198
property :show , default : ViewConfig ::Show . new (
193
- # document presenter class used by helpers and views
194
- document_presenter_class : nil ,
195
- document_component : Blacklight ::DocumentComponent ,
199
+ document_actions : NestedOpenStructWithHashAccess . new ( ToolConfig ) ,
196
200
document_thumbnail_component : nil ,
197
201
show_tools_component : Blacklight ::Document ::ShowToolsComponent ,
198
202
show_header_tools_component : nil ,
@@ -205,7 +209,6 @@ def initialized_default_configuration?
205
209
# Set this to a hash with additional arguments to merge into the route,
206
210
# or set `controller: :current` to route to the current controller.
207
211
route : nil ,
208
- document_actions : NestedOpenStructWithHashAccess . new ( ToolConfig ) ,
209
212
header_actions : NestedOpenStructWithHashAccess . new ( ToolConfig )
210
213
)
211
214
@@ -214,8 +217,8 @@ def initialized_default_configuration?
214
217
# @return [Hash{Symbol => Blacklight::Configuration::ViewConfig}]
215
218
property :action_mapping , default : NestedOpenStructWithHashAccess . new (
216
219
ViewConfig ,
217
- default : { top_level_config : :index } ,
218
- show : { top_level_config : :show } ,
220
+ default : { top_level_config : :index , default_top_level_config : :defaults } ,
221
+ show : { top_level_config : :show , default_top_level_config : :index } ,
219
222
citation : { parent_config : :show } ,
220
223
email_record : { top_level_config : :email } ,
221
224
sms_record : { top_level_config : :sms }
@@ -660,7 +663,12 @@ def action_config(action, default: :index)
660
663
661
664
action_config = action_config . reverse_merge ( self [ action_config . top_level_config ] ) if action_config . top_level_config
662
665
action_config = action_config . reverse_merge ( show ) if default == :show && action_config . top_level_config != :show
663
- action_config . reverse_merge ( index )
666
+ action_config = action_config . reverse_merge ( self [ action_config . default_top_level_config ] )
667
+
668
+ # provide backwards compatibility for e.g. the show action falling back on the index defaults
669
+ action_config = action_config . reverse_merge ( defaults ) if action_config . default_top_level_config == :index
670
+
671
+ action_config
664
672
end
665
673
end
666
674
end
0 commit comments