diff --git a/app/assets/stylesheets/sufia/admin.scss b/app/assets/stylesheets/sufia/admin.scss index a57cddbe26..0e1e60a02a 100644 --- a/app/assets/stylesheets/sufia/admin.scss +++ b/app/assets/stylesheets/sufia/admin.scss @@ -31,6 +31,11 @@ $content-background-color: #f5f5f5 !default; margin: 0; margin-bottom: 15px; padding: 0; + + > .fa { + margin-left: 6px; + margin-right: 6px; + } } } @@ -38,11 +43,21 @@ $content-background-color: #f5f5f5 !default; float: left; width: 100%; + .panel-heading, .panel-footer, .panel-body { float: left; width: 100%; } + + .panel-title { + color: $title-text-color; + display: block; + float: left; + font-size: 16px; + font-weight: 400; + line-height: 30px; + } } .title-button { diff --git a/app/controllers/sufia/admin/admin_sets_controller.rb b/app/controllers/sufia/admin/admin_sets_controller.rb index 66fb4853cf..d48dd891db 100644 --- a/app/controllers/sufia/admin/admin_sets_controller.rb +++ b/app/controllers/sufia/admin/admin_sets_controller.rb @@ -1,7 +1,42 @@ module Sufia class Admin::AdminSetsController < ApplicationController + include CurationConcerns::CollectionsControllerBehavior load_and_authorize_resource layout 'admin' + self.presenter_class = Sufia::AdminSetPresenter + + def show + add_breadcrumb t(:'sufia.controls.home'), root_path + add_breadcrumb t(:'sufia.toolbar.admin.menu'), sufia.admin_path + add_breadcrumb t(:'sufia.admin.sidebar.admin_sets'), sufia.admin_admin_sets_path + add_breadcrumb 'View Set', request.path + super + end + + # Override the default prefixes so that we use the collection partals. + def _prefixes + @_prefixes ||= ["sufia/admin/admin_sets", "collections", 'catalog'] + end + + # Overriding the way that the search builder is initialized + def collections_search_builder + collections_search_builder_class.new(self, :read) + end + + # Used for the show action + def collection_search_builder_class + Sufia::SingleAdminSetSearchBuilder + end + + # Used for the index action + def collections_search_builder_class + CurationConcerns::AdminSetSearchBuilder + end + + # Used to get the members for the show action + def collection_member_search_builder_class + Sufia::AdminSetMemberSearchBuilder + end def index authorize! :manage, AdminSet @@ -33,10 +68,10 @@ def repository private def setup_create_form - add_breadcrumb 'Home', root_path - add_breadcrumb 'Repository Dashboard', sufia.admin_path - add_breadcrumb 'Administrative Sets', sufia.admin_admin_sets_path - add_breadcrumb 'New', sufia.new_admin_admin_set_path + add_breadcrumb t(:'sufia.controls.home'), root_path + add_breadcrumb t(:'sufia.toolbar.admin.menu'), sufia.admin_path + add_breadcrumb t(:'sufia.admin.sidebar.admin_sets'), sufia.admin_admin_sets_path + add_breadcrumb 'New', sufia.new_admin_admin_set_path @form = form_class.new(@admin_set) end diff --git a/app/presenters/sufia/admin_set_presenter.rb b/app/presenters/sufia/admin_set_presenter.rb new file mode 100644 index 0000000000..13f3e5015e --- /dev/null +++ b/app/presenters/sufia/admin_set_presenter.rb @@ -0,0 +1,4 @@ +module Sufia + class AdminSetPresenter < CollectionPresenter + end +end diff --git a/app/search_builders/sufia/admin_set_member_search_builder.rb b/app/search_builders/sufia/admin_set_member_search_builder.rb new file mode 100644 index 0000000000..9e5f39b60f --- /dev/null +++ b/app/search_builders/sufia/admin_set_member_search_builder.rb @@ -0,0 +1,12 @@ +module Sufia + # Builds a query to find the members of an admin set. + class AdminSetMemberSearchBuilder < ::SearchBuilder + self.default_processor_chain += [:in_admin_set] + + # include filters into the query to only include the collection memebers + def in_admin_set(solr_parameters) + solr_parameters[:fq] ||= [] + solr_parameters[:fq] << "{!term f=isPartOf_ssim}#{blacklight_params.fetch('id')}" + end + end +end diff --git a/app/search_builders/sufia/single_admin_set_search_builder.rb b/app/search_builders/sufia/single_admin_set_search_builder.rb new file mode 100644 index 0000000000..698a9ec283 --- /dev/null +++ b/app/search_builders/sufia/single_admin_set_search_builder.rb @@ -0,0 +1,9 @@ +module Sufia + class SingleAdminSetSearchBuilder < CurationConcerns::AdminSetSearchBuilder + include CurationConcerns::SingleResult + + def initialize(context) + super(context, :read) + end + end +end diff --git a/app/views/sufia/admin/admin_sets/_sort_and_per_page.html.erb b/app/views/sufia/admin/admin_sets/_sort_and_per_page.html.erb new file mode 100644 index 0000000000..d8e6834116 --- /dev/null +++ b/app/views/sufia/admin/admin_sets/_sort_and_per_page.html.erb @@ -0,0 +1,3 @@ +