curate 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +14 -0
- data/app/controllers/application_controller.rb +69 -0
- data/app/controllers/catalog_controller.rb +336 -0
- data/app/controllers/classify_concerns_controller.rb +29 -0
- data/app/controllers/common_objects_controller.rb +27 -0
- data/app/controllers/curation_concern/base_controller.rb +26 -0
- data/app/controllers/curation_concern/generic_files_controller.rb +82 -0
- data/app/controllers/dashboard_controller.rb +85 -0
- data/app/controllers/downloads_controller.rb +22 -0
- data/app/controllers/errors_controller.rb +19 -0
- data/app/controllers/help_requests_controller.rb +38 -0
- data/app/controllers/terms_of_service_agreements_controller.rb +44 -0
- data/app/controllers/welcome_controller.rb +14 -0
- data/app/helpers/application_helper.rb +89 -0
- data/app/helpers/blacklight_helper.rb +19 -0
- data/app/helpers/common_objects_helper.rb +5 -0
- data/app/inputs/multi_value_input.rb +71 -0
- data/app/models/access_right.rb +53 -0
- data/app/models/classify_concern.rb +30 -0
- data/app/models/contributor_agreement.rb +58 -0
- data/app/models/digital_object_identifier.rb +83 -0
- data/app/models/doi_config.rb +26 -0
- data/app/models/help_request.rb +34 -0
- data/app/models/mint_doi.rb +51 -0
- data/app/models/mint_purl.rb +40 -0
- data/app/models/object_access.rb +17 -0
- data/app/models/purl.rb +18 -0
- data/app/models/purl_config.rb +10 -0
- data/app/models/repo_object.rb +24 -0
- data/app/models/solr_document.rb +35 -0
- data/app/repository_datastreams/file_content_datastream.rb +36 -0
- data/app/repository_models/curation_concern/embargoable.rb +43 -0
- data/app/repository_models/curation_concern/with_access_right.rb +31 -0
- data/app/repository_models/generic_file.rb +36 -0
- data/app/services/anti_virus_scanner.rb +28 -0
- data/app/services/curation_concern.rb +22 -0
- data/app/services/curation_concern/base_actor.rb +48 -0
- data/app/services/curation_concern/generic_file_actor.rb +38 -0
- data/app/validators/future_date_validator.rb +19 -0
- data/app/views/_footer.html.erb +19 -0
- data/app/views/_ga.html.erb +6 -0
- data/app/views/_logo.html.erb +34 -0
- data/app/views/_masthead.html.erb +34 -0
- data/app/views/catalog/_bookmark_control.html.erb +25 -0
- data/app/views/catalog/_bookmark_form.html.erb +8 -0
- data/app/views/catalog/_citation.html.erb +11 -0
- data/app/views/catalog/_constraints.html.erb +6 -0
- data/app/views/catalog/_constraints_element.html.erb +20 -0
- data/app/views/catalog/_delete_partials/_default.html.erb +29 -0
- data/app/views/catalog/_did_you_mean.html.erb +10 -0
- data/app/views/catalog/_document.html.erb +19 -0
- data/app/views/catalog/_document_list.html.erb +2 -0
- data/app/views/catalog/_edit_partials/_default.html.erb +58 -0
- data/app/views/catalog/_edit_partials/_default_details.html.erb +13 -0
- data/app/views/catalog/_email_form.html.erb +11 -0
- data/app/views/catalog/_facet_layout.html.erb +12 -0
- data/app/views/catalog/_facet_limit.html.erb +19 -0
- data/app/views/catalog/_facet_selected.html.erb +12 -0
- data/app/views/catalog/_facets.html.erb +5 -0
- data/app/views/catalog/_folder_control.html.erb +12 -0
- data/app/views/catalog/_home.html.erb +2 -0
- data/app/views/catalog/_home_text.html.erb +10 -0
- data/app/views/catalog/_index_default.html.erb +11 -0
- data/app/views/catalog/_index_partials/_default_group.html.erb +37 -0
- data/app/views/catalog/_marc_view.html.erb +33 -0
- data/app/views/catalog/_opensearch_response_metadata.html.erb +2 -0
- data/app/views/catalog/_previous_next_doc.html.erb +6 -0
- data/app/views/catalog/_refworks_form.html.erb +7 -0
- data/app/views/catalog/_results_pagination.html.erb +6 -0
- data/app/views/catalog/_search_form.html.erb +20 -0
- data/app/views/catalog/_show_default.html.erb +9 -0
- data/app/views/catalog/_show_partials/_default.html.erb +22 -0
- data/app/views/catalog/_show_partials/_default_details.html.erb +15 -0
- data/app/views/catalog/_show_partials/_facets.html.erb +52 -0
- data/app/views/catalog/_show_sidebar.html.erb +1 -0
- data/app/views/catalog/_show_tools.html.erb +46 -0
- data/app/views/catalog/_sms_form.html.erb +21 -0
- data/app/views/catalog/_sort_and_per_page.html.erb +38 -0
- data/app/views/catalog/_uva_tabs.html.erb +10 -0
- data/app/views/catalog/about.html.erb +0 -0
- data/app/views/catalog/citation.html.erb +1 -0
- data/app/views/catalog/email.erb +1 -0
- data/app/views/catalog/endnote.endnote.erb +1 -0
- data/app/views/catalog/index.atom.builder +109 -0
- data/app/views/catalog/index.html.erb +55 -0
- data/app/views/catalog/index.rss.builder +19 -0
- data/app/views/catalog/librarian_view.html.erb +3 -0
- data/app/views/catalog/opensearch.json.erb +0 -0
- data/app/views/catalog/opensearch.xml.builder +10 -0
- data/app/views/catalog/send_email_record.erb +0 -0
- data/app/views/catalog/show.endnote.erb +1 -0
- data/app/views/catalog/show.html.erb +40 -0
- data/app/views/catalog/show.refworks.erb +1 -0
- data/app/views/catalog/sms.erb +1 -0
- data/app/views/classify_concerns/new.html.erb +24 -0
- data/app/views/common_objects/_generic_file.html.erb +0 -0
- data/app/views/common_objects/_senior_thesis.html.erb +2 -0
- data/app/views/common_objects/show.html.erb +11 -0
- data/app/views/common_objects/show_stub_information.html.erb +13 -0
- data/app/views/curation_concern/_content_license.html.erb +16 -0
- data/app/views/curation_concern/_contributor_agreement.html.erb +27 -0
- data/app/views/curation_concern/_doi.html.erb +43 -0
- data/app/views/curation_concern/_media_display.html.erb +1 -0
- data/app/views/curation_concern/_permission.html.erb +39 -0
- data/app/views/curation_concern/_related_files.html.erb +46 -0
- data/app/views/curation_concern/generic_files/_attributes.html.erb +63 -0
- data/app/views/curation_concern/generic_files/_form.html.erb +57 -0
- data/app/views/curation_concern/generic_files/edit.html.erb +5 -0
- data/app/views/curation_concern/generic_files/new.html.erb +5 -0
- data/app/views/curation_concern/generic_files/show.html.erb +12 -0
- data/app/views/curation_concern/senior_theses/_attributes.html.erb +13 -0
- data/app/views/curation_concern/senior_theses/_form.html.erb +88 -0
- data/app/views/curation_concern/senior_theses/edit.html.erb +15 -0
- data/app/views/curation_concern/senior_theses/new.html.erb +14 -0
- data/app/views/curation_concern/senior_theses/show.html.erb +18 -0
- data/app/views/dashboard/_constraints.html.erb +22 -0
- data/app/views/dashboard/_did_you_mean.html.erb +26 -0
- data/app/views/dashboard/_document_list.html.erb +20 -0
- data/app/views/dashboard/_facet_layout.html.erb +27 -0
- data/app/views/dashboard/_facet_limit.html.erb +35 -0
- data/app/views/dashboard/_facet_pagination.html.erb +25 -0
- data/app/views/dashboard/_facet_selected.html.erb +28 -0
- data/app/views/dashboard/_facets.html.erb +22 -0
- data/app/views/dashboard/_index_partials/_default_group.html.erb +37 -0
- data/app/views/dashboard/_index_partials/_list_files.html.erb +66 -0
- data/app/views/dashboard/_index_partials/_thumbnail_display.html.erb +0 -0
- data/app/views/dashboard/_results_pagination.html.erb +22 -0
- data/app/views/dashboard/_search_form.html.erb +36 -0
- data/app/views/dashboard/_show_partials/_default.html.erb +38 -0
- data/app/views/dashboard/_show_partials/_default_details.html.erb +31 -0
- data/app/views/dashboard/_show_partials/_facets.html.erb +103 -0
- data/app/views/dashboard/_sort_and_per_page.html.erb +18 -0
- data/app/views/dashboard/facet.html.erb +38 -0
- data/app/views/dashboard/get_related_file.html.erb +4 -0
- data/app/views/dashboard/index.html.erb +60 -0
- data/app/views/errors/401.html.erb +5 -0
- data/app/views/errors/404.html.erb +16 -0
- data/app/views/errors/500.html.erb +10 -0
- data/app/views/help_requests/new.html.erb +60 -0
- data/app/views/layouts/application.html.erb +14 -0
- data/app/views/layouts/boilerplate.html.erb +28 -0
- data/app/views/layouts/common_objects.html.erb +45 -0
- data/app/views/layouts/curate_nd.html.erb +55 -0
- data/app/views/layouts/curate_nd/1_column.html.erb +22 -0
- data/app/views/layouts/curate_nd/2_column.html.erb +26 -0
- data/app/views/layouts/curate_nd/catalog.html.erb +22 -0
- data/app/views/layouts/curate_nd/dashboard.html.erb +22 -0
- data/app/views/layouts/hydra-head.html.erb +95 -0
- data/app/views/shared/_action_bar.html.erb +30 -0
- data/app/views/shared/_flash_message.html.erb +9 -0
- data/app/views/shared/_site_search.html.erb +18 -0
- data/app/views/terms_of_service_agreements/new.html.erb +136 -0
- data/app/views/welcome/index.html.erb +21 -0
- data/app/workers/characterize_job.rb +4 -0
- data/app/workers/doi_worker.rb +16 -0
- data/config/routes.rb +35 -0
- data/lib/curate.rb +6 -0
- data/lib/curate/engine.rb +46 -0
- data/lib/curate/version.rb +1 -1
- data/spec/abilities/generic_file_abilities_spec.rb +55 -0
- data/spec/controllers/application_controller_spec.rb +38 -0
- data/spec/controllers/classify_concerns_controller_spec.rb +36 -0
- data/spec/controllers/common_objects_controller_spec.rb +112 -0
- data/spec/controllers/curation_concern/base_controller_spec.rb +14 -0
- data/spec/controllers/curation_concern/generic_files_controller_spec.rb +156 -0
- data/spec/controllers/dashboard_controller_spec.rb +85 -0
- data/spec/controllers/downloads_controller_spec.rb +42 -0
- data/spec/controllers/help_requests_controller_spec.rb +42 -0
- data/spec/controllers/terms_of_service_agreements_controller_spec.rb +30 -0
- data/spec/controllers/welcome_controller_spec.rb +10 -0
- data/spec/dummy/app/models/solr_document.rb +4 -0
- data/spec/dummy/app/models/user.rb +13 -0
- data/spec/dummy/config/application.rb +8 -1
- data/spec/dummy/config/database.yml +21 -22
- data/spec/dummy/config/doi.yml +11 -0
- data/spec/dummy/config/fedora.yml +20 -0
- data/spec/dummy/config/initializers/devise.rb +232 -0
- data/spec/dummy/config/initializers/hydra_config.rb +41 -0
- data/spec/dummy/config/initializers/mailboxer.rb +17 -0
- data/spec/dummy/config/initializers/redis_config.rb +45 -0
- data/spec/dummy/config/initializers/sufia.rb +66 -0
- data/spec/dummy/config/purl.yml +15 -0
- data/spec/dummy/config/redis.yml +6 -0
- data/spec/dummy/config/role_map_ci.yml +15 -0
- data/spec/dummy/config/role_map_cucumber.yml +10 -0
- data/spec/dummy/config/role_map_development.yml +12 -0
- data/spec/dummy/config/role_map_pre_production.yml +2 -0
- data/spec/dummy/config/role_map_production.yml +2 -0
- data/spec/dummy/config/role_map_test.yml +15 -0
- data/spec/dummy/config/routes.rb +4 -55
- data/spec/dummy/config/solr.yml +17 -0
- data/spec/dummy/db/migrate/20130130142162_create_purl.rb +55 -0
- data/spec/dummy/db/migrate/20130312135359_create_help_requests.rb +22 -0
- data/spec/dummy/db/migrate/20130408165008_create_users.rb +11 -0
- data/spec/dummy/db/migrate/20130408165009_acts_as_follower_migration.rb +31 -0
- data/spec/dummy/db/migrate/20130408165010_add_social_to_users.rb +27 -0
- data/spec/dummy/db/migrate/20130408165011_create_single_use_links.rb +12 -0
- data/spec/dummy/db/migrate/20130408165012_add_ldap_attrs_to_user.rb +41 -0
- data/spec/dummy/db/migrate/20130408165013_add_avatars_to_users.rb +23 -0
- data/spec/dummy/db/migrate/20130408165014_create_checksum_audit_logs.rb +34 -0
- data/spec/dummy/db/migrate/20130408165015_create_version_committers.rb +29 -0
- data/spec/dummy/db/migrate/20130408165016_add_groups_to_users.rb +25 -0
- data/spec/dummy/db/migrate/20130408165017_create_local_authorities.rb +64 -0
- data/spec/dummy/db/migrate/20130408165018_create_trophies.rb +10 -0
- data/spec/dummy/db/migrate/20130408165022_create_mailboxer.mailboxer_engine.rb +62 -0
- data/spec/dummy/db/migrate/20130408165023_add_notified_object.mailboxer_engine.rb +18 -0
- data/spec/dummy/db/migrate/20130408165024_add_notification_code.mailboxer_engine.rb +14 -0
- data/spec/dummy/db/migrate/20130408165025_add_attachments.mailboxer_engine.rb +10 -0
- data/spec/dummy/db/migrate/20130408165026_rename_receipts_read.mailboxer_engine.rb +10 -0
- data/spec/dummy/db/schema.rb +197 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/fedora_conf/conf/development/fedora.fcfg +953 -0
- data/spec/dummy/fedora_conf/conf/test/fedora.fcfg +953 -0
- data/spec/dummy/log/development.log +1791 -0
- data/spec/dummy/log/test.log +176333 -0
- data/spec/dummy/solr_conf/conf/schema.xml +692 -0
- data/spec/dummy/solr_conf/conf/solrconfig.xml +299 -0
- data/spec/dummy/solr_conf/solr.xml +35 -0
- data/spec/factories/create_curation_concern.rb +11 -0
- data/spec/factories/create_generic_file.rb +36 -0
- data/spec/factories/help_requests.rb +10 -0
- data/spec/factories/mock_curation_concerns.rb +4 -0
- data/spec/factories/users.rb +8 -0
- data/spec/helpers/application_helper_spec.rb +139 -0
- data/spec/helpers/common_objects_helper_spec.rb +9 -0
- data/spec/models/access_right_spec.rb +47 -0
- data/spec/models/classify_concern_spec.rb +30 -0
- data/spec/models/contributor_agreement_spec.rb +45 -0
- data/spec/models/digital_object_identifier_spec.rb +50 -0
- data/spec/models/help_request_spec.rb +5 -0
- data/spec/models/mint_doi_spec.rb +79 -0
- data/spec/models/mint_purl_spec.rb +38 -0
- data/spec/models/object_access_spec.rb +24 -0
- data/spec/models/purl_spec.rb +22 -0
- data/spec/models/repo_object_spec.rb +39 -0
- data/spec/repository_models/curation_concern/embargoable_spec.rb +69 -0
- data/spec/repository_models/generic_file_spec.rb +38 -0
- data/spec/services/anti_virus_scanner_spec.rb +26 -0
- data/spec/services/curation_concern/base_actor_spec.rb +28 -0
- data/spec/services/curation_concern/generic_file_actor_spec.rb +75 -0
- data/spec/services/curation_concern_spec.rb +34 -0
- data/spec/spec_helper.rb +54 -1
- data/spec/support/environment_override.rb +17 -0
- data/spec/support/matchers/raise_rescue_response_type_matcher.rb +42 -0
- data/spec/support/mock_curation_concern.rb +61 -0
- data/spec/support/shared/shared_examples_is_embargoable.rb +9 -0
- data/spec/support/shared/shared_examples_with_access_rights.rb +33 -0
- data/spec/workers/characterize_job_spec.rb +26 -0
- metadata +686 -10
- data/MIT-LICENSE +0 -20
data/LICENSE
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
##########################################################################
|
|
2
|
+
# Copyright 2012 University of Notre Dame
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
require File.expand_path("../../helpers/application_helper", __FILE__)
|
|
2
|
+
class ApplicationController < ActionController::Base
|
|
3
|
+
# Adds a few additional behaviors into the application controller
|
|
4
|
+
include Blacklight::Controller
|
|
5
|
+
# Adds Hydra behaviors into the application controller
|
|
6
|
+
include Hydra::Controller::ControllerBehavior
|
|
7
|
+
# Adds Sufia behaviors into the application controller
|
|
8
|
+
include Sufia::Controller
|
|
9
|
+
|
|
10
|
+
# Please be sure to impelement current_user and user_session. Blacklight depends on
|
|
11
|
+
# these methods in order to perform user specific actions.
|
|
12
|
+
|
|
13
|
+
def sufia
|
|
14
|
+
self
|
|
15
|
+
end
|
|
16
|
+
helper_method :sufia
|
|
17
|
+
|
|
18
|
+
helper ApplicationHelper
|
|
19
|
+
|
|
20
|
+
rescue_from StandardError, with: :exception_handler
|
|
21
|
+
def exception_handler(exception)
|
|
22
|
+
raise exception if Rails.configuration.consider_all_requests_local
|
|
23
|
+
raise exception unless ActionDispatch::ExceptionWrapper.rescue_responses[exception.class.name]
|
|
24
|
+
|
|
25
|
+
wrapper = ActionDispatch::ExceptionWrapper.new(env, exception)
|
|
26
|
+
render_response_for_error(wrapper)
|
|
27
|
+
end
|
|
28
|
+
protected :exception_handler
|
|
29
|
+
|
|
30
|
+
def set_return_location_from_status_code(status_code)
|
|
31
|
+
if status_code == 401
|
|
32
|
+
session['user_return_to'] = env['ORIGINAL_FULLPATH']
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
protected :set_return_location_from_status_code
|
|
36
|
+
|
|
37
|
+
def render_response_for_error(exception)
|
|
38
|
+
set_return_location_from_status_code(exception.status_code)
|
|
39
|
+
render "/errors/#{exception.status_code}", status: exception.status_code, layout: !request.xhr?
|
|
40
|
+
end
|
|
41
|
+
protected :render_response_for_error
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
layout 'hydra-head'
|
|
45
|
+
|
|
46
|
+
protect_from_forgery
|
|
47
|
+
|
|
48
|
+
def show_action_bar?
|
|
49
|
+
true
|
|
50
|
+
end
|
|
51
|
+
helper_method :show_action_bar?
|
|
52
|
+
|
|
53
|
+
def show_site_search?
|
|
54
|
+
true
|
|
55
|
+
end
|
|
56
|
+
helper_method :show_site_search?
|
|
57
|
+
|
|
58
|
+
protected
|
|
59
|
+
def agreed_to_terms_of_service!
|
|
60
|
+
return false unless current_user
|
|
61
|
+
if current_user.agreed_to_terms_of_service?
|
|
62
|
+
return current_user
|
|
63
|
+
else
|
|
64
|
+
redirect_to new_terms_of_service_agreement_path
|
|
65
|
+
return false
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
end
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Copyright © 2012 The Pennsylvania State University
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
# -*- encoding : utf-8 -*-
|
|
17
|
+
require 'blacklight/catalog'
|
|
18
|
+
require 'blacklight_advanced_search'
|
|
19
|
+
|
|
20
|
+
# bl_advanced_search 1.2.4 is doing unitialized constant on these because we're calling ParseBasicQ directly
|
|
21
|
+
require 'parslet'
|
|
22
|
+
require 'parsing_nesting/tree'
|
|
23
|
+
|
|
24
|
+
class CatalogController < ApplicationController
|
|
25
|
+
include Blacklight::Catalog
|
|
26
|
+
# Extend Blacklight::Catalog with Hydra behaviors (primarily editing).
|
|
27
|
+
include Hydra::Controller::ControllerBehavior
|
|
28
|
+
include BlacklightAdvancedSearch::ParseBasicQ
|
|
29
|
+
|
|
30
|
+
layout 'curate_nd/catalog'
|
|
31
|
+
|
|
32
|
+
# These before_filters apply the hydra access controls
|
|
33
|
+
before_filter :enforce_show_permissions, :only=>:show
|
|
34
|
+
# This applies appropriate access controls to all solr queries
|
|
35
|
+
CatalogController.solr_search_params_logic += [:add_access_controls_to_solr_params]
|
|
36
|
+
# This filters out objects that you want to exclude from search results, like FileAssets
|
|
37
|
+
CatalogController.solr_search_params_logic += [:exclude_unwanted_models]
|
|
38
|
+
|
|
39
|
+
skip_before_filter :default_html_head
|
|
40
|
+
|
|
41
|
+
def index
|
|
42
|
+
super
|
|
43
|
+
recent
|
|
44
|
+
#also grab my recent docs too
|
|
45
|
+
recent_me
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def recent
|
|
49
|
+
if user_signed_in?
|
|
50
|
+
# grab other people's documents
|
|
51
|
+
(resp, doc_list) = get_search_results(:q =>'{!lucene q.op=AND df=depositor_t}-'+current_user.user_key, :sort=>"system_create_dt desc", :rows=>3)
|
|
52
|
+
else
|
|
53
|
+
# grab any documents we do not know who you are
|
|
54
|
+
(resp, doc_list) = get_search_results(:q =>'', :sort=>"system_create_dt desc", :rows=>3)
|
|
55
|
+
end
|
|
56
|
+
@recent_documents = doc_list[0..3]
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def recent_me
|
|
60
|
+
if user_signed_in?
|
|
61
|
+
(resp, doc_list) = get_search_results(:q =>'{!lucene q.op=AND df=depositor_t}'+current_user.user_key, :sort=>"system_create_dt desc", :rows=>3)
|
|
62
|
+
@recent_user_documents = doc_list[0..3]
|
|
63
|
+
else
|
|
64
|
+
@recent_user_documents = nil
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
configure_blacklight do |config|
|
|
69
|
+
## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
|
|
70
|
+
config.default_solr_params = {
|
|
71
|
+
:qt => "search",
|
|
72
|
+
:rows => 10
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
# solr field configuration for search results/index views
|
|
76
|
+
config.index.show_link = "desc_metadata__title_display"
|
|
77
|
+
config.index.record_display_type = "id"
|
|
78
|
+
|
|
79
|
+
# solr field configuration for document/show views
|
|
80
|
+
config.show.html_title = "desc_metadata__title_display"
|
|
81
|
+
config.show.heading = "desc_metadata__title_display"
|
|
82
|
+
config.show.display_type = "has_model_s"
|
|
83
|
+
|
|
84
|
+
# solr fields that will be treated as facets by the blacklight application
|
|
85
|
+
# The ordering of the field names is the order of the display
|
|
86
|
+
config.add_facet_field "desc_metadata__resource_type_facet", :label => "Resource Type", :limit => 5
|
|
87
|
+
#config.add_facet_field "desc_metadata__contributor_facet", :label => "Contributor", :limit => 5
|
|
88
|
+
config.add_facet_field "desc_metadata__creator_facet", :label => "Creator", :limit => 5
|
|
89
|
+
config.add_facet_field "desc_metadata__tag_facet", :label => "Keyword", :limit => 5
|
|
90
|
+
config.add_facet_field "desc_metadata__subject_facet", :label => "Subject", :limit => 5
|
|
91
|
+
config.add_facet_field "desc_metadata__archived_object_type_facet", :label => "Type", :limit => 5
|
|
92
|
+
config.add_facet_field "desc_metadata__language_facet", :label => "Language", :limit => 5
|
|
93
|
+
config.add_facet_field "desc_metadata__based_near_facet", :label => "Location", :limit => 5
|
|
94
|
+
config.add_facet_field "desc_metadata__publisher_facet", :label => "Publisher", :limit => 5
|
|
95
|
+
config.add_facet_field "file_format_facet", :label => "File Format", :limit => 5
|
|
96
|
+
|
|
97
|
+
# Have BL send all facet field names to Solr, which has been the default
|
|
98
|
+
# previously. Simply remove these lines if you'd rather use Solr request
|
|
99
|
+
# handler defaults, or have no facets.
|
|
100
|
+
config.add_facet_fields_to_solr_request!
|
|
101
|
+
|
|
102
|
+
# solr fields to be displayed in the index (search results) view
|
|
103
|
+
# The ordering of the field names is the order of the display
|
|
104
|
+
config.add_index_field "desc_metadata__title_display", :label => "Title"
|
|
105
|
+
config.add_index_field "desc_metadata__description_display", :label => "Description"
|
|
106
|
+
config.add_index_field "desc_metadata__tag_display", :label => "Keyword"
|
|
107
|
+
config.add_index_field "desc_metadata__subject_display", :label => "Subject"
|
|
108
|
+
config.add_index_field "desc_metadata__creator_display", :label => "Creator"
|
|
109
|
+
config.add_index_field "desc_metadata__contributor_display", :label => "Contributor"
|
|
110
|
+
config.add_index_field "desc_metadata__publisher_display", :label => "Publisher"
|
|
111
|
+
config.add_index_field "desc_metadata__based_near_display", :label => "Location"
|
|
112
|
+
config.add_index_field "desc_metadata__language_display", :label => "Language"
|
|
113
|
+
config.add_index_field "desc_metadata__date_uploaded_display", :label => "Date Uploaded"
|
|
114
|
+
config.add_index_field "desc_metadata__date_modified_display", :label => "Date Modified"
|
|
115
|
+
config.add_index_field "desc_metadata__date_created_display", :label => "Date Created"
|
|
116
|
+
config.add_index_field "desc_metadata__rights_display", :label => "Rights"
|
|
117
|
+
config.add_index_field "desc_metadata__resource_type_display", :label => "Resource Type"
|
|
118
|
+
config.add_index_field "desc_metadata__format_display", :label => "File Format"
|
|
119
|
+
config.add_index_field "desc_metadata__identifier_display", :label => "Identifier"
|
|
120
|
+
|
|
121
|
+
# solr fields to be displayed in the show (single result) view
|
|
122
|
+
# The ordering of the field names is the order of the display
|
|
123
|
+
config.add_show_field "desc_metadata__title_display", :label => "Title"
|
|
124
|
+
config.add_show_field "desc_metadata__description_display", :label => "Description"
|
|
125
|
+
config.add_show_field "desc_metadata__tag_display", :label => "Keyword"
|
|
126
|
+
config.add_show_field "desc_metadata__subject_display", :label => "Subject"
|
|
127
|
+
config.add_show_field "desc_metadata__creator_display", :label => "Creator"
|
|
128
|
+
config.add_show_field "desc_metadata__contributor_display", :label => "Contributor"
|
|
129
|
+
config.add_show_field "desc_metadata__publisher_display", :label => "Publisher"
|
|
130
|
+
config.add_show_field "desc_metadata__based_near_display", :label => "Location"
|
|
131
|
+
config.add_show_field "desc_metadata__language_display", :label => "Language"
|
|
132
|
+
config.add_show_field "desc_metadata__date_uploaded_display", :label => "Date Uploaded"
|
|
133
|
+
config.add_show_field "desc_metadata__date_modified_display", :label => "Date Modified"
|
|
134
|
+
config.add_show_field "desc_metadata__date_created_display", :label => "Date Created"
|
|
135
|
+
config.add_show_field "desc_metadata__rights_display", :label => "Rights"
|
|
136
|
+
config.add_show_field "desc_metadata__resource_type_display", :label => "Resource Type"
|
|
137
|
+
config.add_show_field "desc_metadata__file_format_display", :label => "File Format"
|
|
138
|
+
config.add_show_field "desc_metadata__identifier_display", :label => "Identifier"
|
|
139
|
+
|
|
140
|
+
# "fielded" search configuration. Used by pulldown among other places.
|
|
141
|
+
# For supported keys in hash, see rdoc for Blacklight::SearchFields
|
|
142
|
+
#
|
|
143
|
+
# Search fields will inherit the :qt solr request handler from
|
|
144
|
+
# config[:default_solr_parameters], OR can specify a different one
|
|
145
|
+
# with a :qt key/value. Below examples inherit, except for subject
|
|
146
|
+
# that specifies the same :qt as default for our own internal
|
|
147
|
+
# testing purposes.
|
|
148
|
+
#
|
|
149
|
+
# The :key is what will be used to identify this BL search field internally,
|
|
150
|
+
# as well as in URLs -- so changing it after deployment may break bookmarked
|
|
151
|
+
# urls. A display label will be automatically calculated from the :key,
|
|
152
|
+
# or can be specified manually to be different.
|
|
153
|
+
#
|
|
154
|
+
# This one uses all the defaults set by the solr request handler. Which
|
|
155
|
+
# solr request handler? The one set in config[:default_solr_parameters][:qt],
|
|
156
|
+
# since we aren't specifying it otherwise.
|
|
157
|
+
config.add_search_field 'all_fields', :label => 'All Fields', :include_in_advanced_search => false
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
# Now we see how to over-ride Solr request handler defaults, in this
|
|
161
|
+
# case for a BL "search field", which is really a dismax aggregate
|
|
162
|
+
# of Solr search fields.
|
|
163
|
+
# creator, title, description, publisher, date_created,
|
|
164
|
+
# subject, language, resource_type, format, identifier, based_near,
|
|
165
|
+
config.add_search_field('contributor') do |field|
|
|
166
|
+
# solr_parameters hash are sent to Solr as ordinary url query params.
|
|
167
|
+
field.solr_parameters = { :"spellcheck.dictionary" => "contributor" }
|
|
168
|
+
|
|
169
|
+
# :solr_local_parameters will be sent using Solr LocalParams
|
|
170
|
+
# syntax, as eg {! qf=$title_qf }. This is neccesary to use
|
|
171
|
+
# Solr parameter de-referencing like $title_qf.
|
|
172
|
+
# See: http://wiki.apache.org/solr/LocalParams
|
|
173
|
+
field.solr_local_parameters = {
|
|
174
|
+
:qf => "desc_metadata__contributor_t",
|
|
175
|
+
:pf => "desc_metadata__contributor_t"
|
|
176
|
+
}
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
config.add_search_field('creator') do |field|
|
|
180
|
+
field.solr_parameters = { :"spellcheck.dictionary" => "creator" }
|
|
181
|
+
field.solr_local_parameters = {
|
|
182
|
+
:qf => "desc_metadata__creator_t",
|
|
183
|
+
:pf => "desc_metadata__creator_t"
|
|
184
|
+
}
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
config.add_search_field('title') do |field|
|
|
188
|
+
field.solr_parameters = {
|
|
189
|
+
:"spellcheck.dictionary" => "title"
|
|
190
|
+
}
|
|
191
|
+
field.solr_local_parameters = {
|
|
192
|
+
:qf => "desc_metadata__title_t",
|
|
193
|
+
:pf => "desc_metadata__title_t"
|
|
194
|
+
}
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
config.add_search_field('description') do |field|
|
|
198
|
+
field.label = "Abstract or Summary"
|
|
199
|
+
field.solr_parameters = {
|
|
200
|
+
:"spellcheck.dictionary" => "description"
|
|
201
|
+
}
|
|
202
|
+
field.solr_local_parameters = {
|
|
203
|
+
:qf => "desc_metadata__description_t",
|
|
204
|
+
:pf => "desc_metadata__description_t"
|
|
205
|
+
}
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
config.add_search_field('publisher') do |field|
|
|
209
|
+
field.solr_parameters = {
|
|
210
|
+
:"spellcheck.dictionary" => "publisher"
|
|
211
|
+
}
|
|
212
|
+
field.solr_local_parameters = {
|
|
213
|
+
:qf => "desc_metadata__publisher_t",
|
|
214
|
+
:pf => "desc_metadata__publisher_t"
|
|
215
|
+
}
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
config.add_search_field('date_created') do |field|
|
|
219
|
+
field.solr_parameters = {
|
|
220
|
+
:"spellcheck.dictionary" => "date_created"
|
|
221
|
+
}
|
|
222
|
+
field.solr_local_parameters = {
|
|
223
|
+
:qf => "desc_metadata__date_created_t",
|
|
224
|
+
:pf => "desc_metadata__date_created_t"
|
|
225
|
+
}
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
config.add_search_field('subject') do |field|
|
|
229
|
+
field.solr_parameters = {
|
|
230
|
+
:"spellcheck.dictionary" => "subject"
|
|
231
|
+
}
|
|
232
|
+
field.solr_local_parameters = {
|
|
233
|
+
:qf => "desc_metadata__subject_t",
|
|
234
|
+
:pf => "desc_metadata__subject_t"
|
|
235
|
+
}
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
config.add_search_field('language') do |field|
|
|
239
|
+
field.solr_parameters = {
|
|
240
|
+
:"spellcheck.dictionary" => "language"
|
|
241
|
+
}
|
|
242
|
+
field.solr_local_parameters = {
|
|
243
|
+
:qf => "desc_metadata__language_t",
|
|
244
|
+
:pf => "desc_metadata__language_t"
|
|
245
|
+
}
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
config.add_search_field('resource_type') do |field|
|
|
249
|
+
field.solr_parameters = {
|
|
250
|
+
:"spellcheck.dictionary" => "resource_type"
|
|
251
|
+
}
|
|
252
|
+
field.solr_local_parameters = {
|
|
253
|
+
:qf => "desc_metadata__resource_type_t",
|
|
254
|
+
:pf => "desc_metadata__resource_type_t"
|
|
255
|
+
}
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
config.add_search_field('format') do |field|
|
|
259
|
+
field.include_in_advanced_search = false
|
|
260
|
+
field.solr_parameters = {
|
|
261
|
+
:"spellcheck.dictionary" => "format"
|
|
262
|
+
}
|
|
263
|
+
field.solr_local_parameters = {
|
|
264
|
+
:qf => "file_format_t",
|
|
265
|
+
:pf => "file_format_t"
|
|
266
|
+
}
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
config.add_search_field('identifier') do |field|
|
|
270
|
+
field.include_in_advanced_search = false
|
|
271
|
+
field.solr_parameters = {
|
|
272
|
+
:"spellcheck.dictionary" => "identifier"
|
|
273
|
+
}
|
|
274
|
+
field.solr_local_parameters = {
|
|
275
|
+
:qf => "id_t",
|
|
276
|
+
:pf => "id_t"
|
|
277
|
+
}
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
config.add_search_field('based_near') do |field|
|
|
281
|
+
field.label = "Location"
|
|
282
|
+
field.solr_parameters = {
|
|
283
|
+
:"spellcheck.dictionary" => "based_near"
|
|
284
|
+
}
|
|
285
|
+
field.solr_local_parameters = {
|
|
286
|
+
:qf => "desc_metadata__based_near_t",
|
|
287
|
+
:pf => "desc_metadata__based_near_t"
|
|
288
|
+
}
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
config.add_search_field('tag') do |field|
|
|
292
|
+
field.solr_parameters = {
|
|
293
|
+
:"spellcheck.dictionary" => "tag"
|
|
294
|
+
}
|
|
295
|
+
field.solr_local_parameters = {
|
|
296
|
+
:qf => "desc_metadata__tag_t",
|
|
297
|
+
:pf => "desc_metadata__tag_t"
|
|
298
|
+
}
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
config.add_search_field('depositor') do |field|
|
|
302
|
+
field.solr_local_parameters = {
|
|
303
|
+
:qf => "depositor_t",
|
|
304
|
+
:pf => "depositor_t"
|
|
305
|
+
}
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
config.add_search_field('rights') do |field|
|
|
309
|
+
field.solr_local_parameters = {
|
|
310
|
+
:qf => "desc_metadata__rights_t",
|
|
311
|
+
:pf => "desc_metadata__rights_t"
|
|
312
|
+
}
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
# "sort results by" select (pulldown)
|
|
316
|
+
# label in pulldown is followed by the name of the SOLR field to sort by and
|
|
317
|
+
# whether the sort is ascending or descending (it must be asc or desc
|
|
318
|
+
# except in the relevancy case).
|
|
319
|
+
# label is key, solr field is value
|
|
320
|
+
config.add_sort_field 'score desc, desc_metadata__date_uploaded_dt desc', :label => "relevance \u25BC"
|
|
321
|
+
config.add_sort_field 'desc_metadata__date_uploaded_dt desc', :label => "date uploaded \u25BC"
|
|
322
|
+
config.add_sort_field 'desc_metadata__date_uploaded_dt asc', :label => "date uploaded \u25B2"
|
|
323
|
+
config.add_sort_field 'desc_metadata__date_modified_dt desc', :label => "date modified \u25BC"
|
|
324
|
+
config.add_sort_field 'desc_metadata__date_modified_dt asc', :label => "date modified \u25B2"
|
|
325
|
+
|
|
326
|
+
# If there are more than this many search results, no spelling ("did you
|
|
327
|
+
# mean") suggestion is offered.
|
|
328
|
+
config.spell_max = 5
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
private
|
|
332
|
+
|
|
333
|
+
def show_site_search?
|
|
334
|
+
false
|
|
335
|
+
end
|
|
336
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
class ClassifyConcernsController < ApplicationController
|
|
2
|
+
before_filter :authenticate_user!
|
|
3
|
+
before_filter :agreed_to_terms_of_service!
|
|
4
|
+
layout 'curate_nd/2_column'
|
|
5
|
+
respond_to :html
|
|
6
|
+
|
|
7
|
+
def classify_concern
|
|
8
|
+
@classify_concern ||= ClassifyConcern.new(params[:classify_concern])
|
|
9
|
+
end
|
|
10
|
+
helper_method :classify_concern
|
|
11
|
+
|
|
12
|
+
def new
|
|
13
|
+
respond_with(classify_concern)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def create
|
|
17
|
+
if classify_concern.valid?
|
|
18
|
+
respond_with(classify_concern) do |wants|
|
|
19
|
+
wants.html do
|
|
20
|
+
redirect_to new_polymorphic_path(
|
|
21
|
+
[:curation_concern, classify_concern.curation_concern_class]
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
else
|
|
26
|
+
respond_with(classify_concern)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|