diff --git a/app/components/blacklight/document/actions_component.rb b/app/components/blacklight/document/actions_component.rb index 791a4a56e8..ce83f0ff53 100644 --- a/app/components/blacklight/document/actions_component.rb +++ b/app/components/blacklight/document/actions_component.rb @@ -2,7 +2,7 @@ module Blacklight module Document - # Render a bookmark widget to bookmark / unbookmark a document + # Render a the set of actions for a document. One of the default actions is the bookmark control. class ActionsComponent < Blacklight::Component renders_many :actions, (lambda do |action:, component: nil, **kwargs| component ||= action.component || Blacklight::Document::ActionComponent diff --git a/app/components/blacklight/document/bookmark_component.rb b/app/components/blacklight/document/bookmark_component.rb index d901bbb407..b2c0b35030 100644 --- a/app/components/blacklight/document/bookmark_component.rb +++ b/app/components/blacklight/document/bookmark_component.rb @@ -3,14 +3,15 @@ module Blacklight module Document # Render a bookmark widget to bookmark / unbookmark a document - class BookmarkComponent < Blacklight::Component + class BookmarkComponent < Blacklight::Document::ActionComponent # @param [Blacklight::Document] document # @param [Boolean] checked # @param [Object] bookmark_path the rails route to use for bookmarks - def initialize(document:, checked: nil, bookmark_path: nil) + def initialize(document:, action: nil, checked: nil, bookmark_path: nil, **kwargs) @document = document @checked = checked @bookmark_path = bookmark_path + super(document: document, action: action, **kwargs) end def bookmarked? diff --git a/app/views/catalog/_bookmark_control.html.erb b/app/views/catalog/_bookmark_control.html.erb index c6a7e94f0a..9e8beace4b 100644 --- a/app/views/catalog/_bookmark_control.html.erb +++ b/app/views/catalog/_bookmark_control.html.erb @@ -1 +1 @@ -<%= render Blacklight::Document::BookmarkComponent.new(document: document) %> +<%= render Blacklight::Document::BookmarkComponent.new(document: document, action: document_action_config) %> diff --git a/lib/generators/blacklight/templates/catalog_controller.rb b/lib/generators/blacklight/templates/catalog_controller.rb index 535731243c..4026c63daa 100644 --- a/lib/generators/blacklight/templates/catalog_controller.rb +++ b/lib/generators/blacklight/templates/catalog_controller.rb @@ -56,13 +56,13 @@ class <%= controller_name.classify %>Controller < ApplicationController # config.index.search_bar_component = MyApp::SearchBarComponent # config.index.document_actions.delete(:bookmark) - config.add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?) + config.add_results_document_tool(:bookmark, component: Blacklight::Document::BookmarkComponent, if: :render_bookmarks_control?) config.add_results_collection_tool(:sort_widget) config.add_results_collection_tool(:per_page_widget) config.add_results_collection_tool(:view_type_group) - config.add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?) + config.add_show_tools_partial(:bookmark, component: Blacklight::Document::BookmarkComponent, if: :render_bookmarks_control?) config.add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params) config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params) config.add_show_tools_partial(:citation)