sufia 7.0.0.beta3 → 7.0.0.beta4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -0
- data/.rubocop_todo.yml +66 -7
- data/app/controllers/concerns/sufia/batch_uploads_controller_behavior.rb +0 -1
- data/app/controllers/concerns/sufia/collections_controller_behavior.rb +0 -1
- data/app/controllers/concerns/sufia/contact_form_controller_behavior.rb +6 -3
- data/app/controllers/concerns/sufia/controller.rb +0 -7
- data/app/controllers/concerns/sufia/file_sets_controller_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/uploads_controller_behavior.rb +18 -0
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +1 -25
- data/app/controllers/concerns/sufia/works_controller_behavior.rb +31 -32
- data/app/controllers/curation_concerns/audits_controller.rb +0 -1
- data/app/controllers/sufia/resource_sync_controller.rb +41 -0
- data/app/controllers/sufia/trophies_controller.rb +17 -0
- data/app/controllers/sufia/uploads_controller.rb +1 -12
- data/app/helpers/sufia/sufia_helper_behavior.rb +15 -3
- data/app/helpers/trophy_helper.rb +1 -1
- data/app/models/concerns/sufia/user.rb +0 -12
- data/app/models/contact_form.rb +2 -2
- data/app/models/local_authority.rb +5 -2
- data/app/presenters/sufia/user_profile_presenter.rb +29 -0
- data/app/services/sufia/query_service.rb +1 -1
- data/app/views/collections/_edit_actions.html.erb +2 -1
- data/app/views/collections/_show_actions.html.erb +2 -1
- data/app/views/collections/_work_action_menu.html.erb +1 -1
- data/app/views/contact_form/new.html.erb +1 -1
- data/app/views/curation_concerns/base/_form_progress.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_contents.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_proxy_rights.html.erb +2 -2
- data/app/views/layouts/_head_tag_content.html.erb +1 -0
- data/app/views/my/_work_action_menu.html.erb +1 -1
- data/app/views/sufia/homepage/_featured_fields.html.erb +1 -5
- data/app/views/sufia/homepage/_home_header.html.erb +1 -1
- data/app/views/transfers/new.html.erb +1 -1
- data/app/views/users/_activity.html.erb +1 -1
- data/app/views/users/_contributions.html.erb +5 -5
- data/app/views/users/_edit_primary.html.erb +2 -2
- data/app/views/users/_profile_actions.html.erb +1 -1
- data/app/views/users/_profile_tabs.html.erb +2 -2
- data/app/views/users/show.html.erb +2 -5
- data/config/locales/sufia.en.yml +1 -1
- data/config/routes.rb +7 -8
- data/{lib/generators/sufia/templates/migrations/acts_as_follower_migration.rb → db/migrate/20160328222155_acts_as_follower_migration.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_social_to_users.rb → db/migrate/20160328222156_add_social_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_ldap_attrs_to_user.rb → db/migrate/20160328222157_add_ldap_attrs_to_user.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_avatars_to_users.rb → db/migrate/20160328222158_add_avatars_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_local_authorities.rb → db/migrate/20160328222160_create_local_authorities.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_trophies.rb → db/migrate/20160328222161_create_trophies.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_linkedin_to_users.rb → db/migrate/20160328222162_add_linkedin_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_tinymce_assets.rb → db/migrate/20160328222163_create_tinymce_assets.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_content_blocks.rb → db/migrate/20160328222164_create_content_blocks.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_featured_works.rb → db/migrate/20160328222165_create_featured_works.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_external_key_to_content_blocks.rb → db/migrate/20160328222166_add_external_key_to_content_blocks.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_proxy_deposit_rights.rb → db/migrate/20160328222226_create_proxy_deposit_rights.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_proxy_deposit_requests.rb → db/migrate/20160328222227_create_proxy_deposit_requests.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_file_view_stats.rb → db/migrate/20160328222228_create_file_view_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_file_download_stats.rb → db/migrate/20160328222229_create_file_download_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_orcid_to_users.rb → db/migrate/20160328222230_add_orcid_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_user_stats.rb → db/migrate/20160328222231_create_user_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_work_view_stats.rb → db/migrate/20160328222232_create_work_view_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_works_to_user_stats.rb → db/migrate/20160328222233_add_works_to_user_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_trophy_generic_file_id_to_work_id.rb → db/migrate/20160328222236_change_trophy_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_proxy_deposit_generic_file_id_to_work_id.rb → db/migrate/20160328222237_change_proxy_deposit_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_audit_log_generic_file_id_to_file_set_id.rb → db/migrate/20160328222238_change_audit_log_generic_file_id_to_file_set_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_proxy_deposit_request_generic_file_id_to_work_id.rb → db/migrate/20160328222239_change_proxy_deposit_request_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_uploaded_files.rb → db/migrate/20160401142419_create_uploaded_files.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_featured_work_generic_file_id_to_work_id.rb → db/migrate/20160510000007_change_featured_work_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_arkivo_to_users.rb → db/migrate/20160516190435_add_arkivo_to_users.rb} +0 -0
- data/lib/generators/sufia/arkivo_api_generator.rb +1 -8
- data/lib/generators/sufia/config_generator.rb +3 -11
- data/lib/generators/sufia/install_generator.rb +12 -46
- data/lib/generators/sufia/templates/catalog_controller.rb +10 -10
- data/lib/generators/sufia/templates/config/sufia.rb +11 -14
- data/lib/generators/sufia/upgrade700_generator.rb +1 -16
- data/lib/sufia.rb +4 -8
- data/lib/sufia/configuration.rb +132 -0
- data/lib/sufia/engine.rb +6 -46
- data/lib/sufia/resource_sync.rb +11 -0
- data/lib/sufia/resource_sync/capability_list_writer.rb +31 -0
- data/lib/sufia/resource_sync/resource_list_writer.rb +77 -0
- data/lib/sufia/resource_sync/source_description_writer.rb +30 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/actors/{create_with_files_actor_spec.rb → sufia/create_with_files_actor_spec.rb} +0 -0
- data/spec/controllers/{admin_stats_controller_spec.rb → admin/stats_controller_spec.rb} +0 -0
- data/spec/controllers/batch_edits_controller_spec.rb +5 -9
- data/spec/controllers/contact_form_controller_spec.rb +88 -0
- data/spec/controllers/{file_sets_controller_spec.rb → curation_concerns/file_sets_controller_spec.rb} +1 -2
- data/spec/controllers/{generic_works_controller_spec.rb → curation_concerns/generic_works_controller_spec.rb} +1 -1
- data/spec/controllers/depositors_controller_spec.rb +1 -1
- data/spec/controllers/featured_works_controller_spec.rb +1 -1
- data/spec/controllers/mailbox_controller_spec.rb +1 -1
- data/spec/controllers/my/highlights_controller_spec.rb +15 -11
- data/spec/controllers/stats_controller_spec.rb +1 -1
- data/spec/controllers/{homepage_controller_spec.rb → sufia/homepage_controller_spec.rb} +1 -1
- data/spec/controllers/sufia/resource_sync_controller_spec.rb +52 -0
- data/spec/controllers/sufia/trophies_controller_spec.rb +27 -0
- data/spec/controllers/transfers_controller_spec.rb +7 -7
- data/spec/controllers/users_controller_spec.rb +22 -60
- data/spec/features/browse_catalog_spec.rb +1 -1
- data/spec/features/collection_spec.rb +6 -7
- data/spec/features/contact_form_spec.rb +2 -89
- data/spec/features/search_spec.rb +7 -7
- data/spec/features/users_spec.rb +1 -1
- data/spec/forms/curation_concerns/{work_form_spec.rb → generic_work_form_spec.rb} +0 -0
- data/spec/forms/sufia/{batch_edit_form_spec.rb → forms/batch_edit_form_spec.rb} +0 -0
- data/spec/forms/sufia/{batch_upload_form_spec.rb → forms/batch_upload_form_spec.rb} +0 -0
- data/spec/forms/sufia/{collection_form_spec.rb → forms/collection_form_spec.rb} +0 -0
- data/spec/helpers/blacklight_helper_spec.rb +91 -0
- data/spec/helpers/dashboard_helper_spec.rb +2 -2
- data/spec/helpers/sufia_helper_spec.rb +7 -12
- data/spec/helpers/trophy_helper_spec.rb +1 -1
- data/spec/javascripts/jasmine_spec.rb +1 -1
- data/spec/lib/sufia/resource_sync/capability_list_writer_spec.rb +26 -0
- data/spec/lib/sufia/resource_sync/resource_list_writer_spec.rb +24 -0
- data/spec/lib/sufia/resource_sync/source_description_writer_spec.rb +21 -0
- data/spec/models/featured_work_spec.rb +1 -1
- data/spec/models/generic_work_spec.rb +7 -10
- data/spec/models/local_authority_spec.rb +3 -11
- data/spec/models/{ability_spec.rb → sufia/ability_spec.rb} +0 -0
- data/spec/models/sufia/download_spec.rb +13 -0
- data/spec/models/sufia/pageview_spec.rb +13 -0
- data/spec/models/sufia/uploaded_file_spec.rb +1 -1
- data/spec/models/{user_usage_stats_spec.rb → sufia/user_usage_stats_spec.rb} +0 -0
- data/spec/models/trophy_spec.rb +5 -7
- data/spec/models/user_spec.rb +12 -12
- data/spec/presenters/{file_usage_spec.rb → sufia/file_usage_spec.rb} +4 -4
- data/spec/presenters/{presenter_renderer_spec.rb → sufia/presenter_renderer_spec.rb} +0 -0
- data/spec/presenters/sufia/user_profile_presenter_spec.rb +23 -0
- data/spec/presenters/{work_usage_spec.rb → sufia/work_usage_spec.rb} +4 -4
- data/spec/requests/legacy_routing_spec.rb +1 -1
- data/spec/routing/ownership_transfers_route_spec.rb +2 -2
- data/spec/routing/route_spec.rb +19 -16
- data/spec/services/{collection_member_service_spec.rb → sufia/collection_member_service_spec.rb} +0 -0
- data/spec/services/{collection_size_service_spec.rb → sufia/collection_size_service_spec.rb} +0 -0
- data/spec/services/{file_set_csv_service_spec.rb → sufia/file_set_csv_service_spec.rb} +0 -0
- data/spec/services/{repository_audit_service_spec.rb → sufia/repository_audit_service_spec.rb} +0 -0
- data/spec/services/{statistics → sufia/statistics}/collections/over_time_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/depositors/summary_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/file_sets/by_format_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/system_stats_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/by_depositor_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/by_resource_type_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/count_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/over_time_spec.rb +0 -0
- data/spec/spec_helper.rb +12 -15
- data/spec/tasks/rake_spec.rb +0 -28
- data/spec/views/_toolbar.html.erb_spec.rb +1 -1
- data/spec/views/admin/stats/index.html.erb_spec.rb +2 -4
- data/spec/views/batch_edits/edit.html.erb_spec.rb +1 -2
- data/spec/views/catalog/_index_list_default.html.erb_spec.rb +14 -19
- data/spec/views/catalog/index.html.erb_spec.rb +1 -1
- data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +9 -10
- data/spec/views/collections/_form.html.erb_spec.rb +2 -2
- data/spec/views/collections/_form_for_select_collection.html.erb_spec.rb +1 -2
- data/spec/views/collections/edit.html.erb_spec.rb +1 -1
- data/spec/views/collections/show.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/base/_form.html.erb_spec.rb +11 -33
- data/spec/views/curation_concerns/base/_form_progress.html.erb_spec.rb +3 -3
- data/spec/views/curation_concerns/base/_relationships.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/base/edit.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/file_sets/_versioning.html.erb_spec.rb +1 -3
- data/spec/views/curation_concerns/permissions/confirm.html.erb_spec.rb +1 -1
- data/spec/views/dashboard/index_spec.rb +2 -4
- data/spec/views/homepage/_announcement.html.erb_spec.rb +1 -2
- data/spec/views/homepage/_featured_works.html.erb_spec.rb +9 -2
- data/spec/views/homepage/_home_header.html.erb_spec.rb +1 -1
- data/spec/views/my/_list_collections.html.erb_spec.rb +1 -1
- data/spec/views/my/_list_works.html.erb_spec.rb +1 -1
- data/spec/views/sufia/batch_uploads/_form.html.erb_spec.rb +4 -4
- data/spec/views/users/edit.html.erb_spec.rb +0 -3
- data/spec/views/users/show.html.erb_spec.rb +9 -7
- data/sufia.gemspec +1 -0
- metadata +124 -96
- data/app/controllers/directory_controller.rb +0 -30
- data/lib/generators/sufia/abstract_migration_generator.rb +0 -31
- data/lib/generators/sufia/cached_stats_generator.rb +0 -24
- data/lib/generators/sufia/cached_work_stats_generator.rb +0 -24
- data/lib/generators/sufia/citation_config_generator.rb +0 -22
- data/lib/generators/sufia/minimagick_config_generator.rb +0 -18
- data/lib/generators/sufia/orcid_field_generator.rb +0 -19
- data/lib/generators/sufia/proxies_generator.rb +0 -24
- data/lib/generators/sufia/usagestats_generator.rb +0 -18
- data/lib/generators/sufia/user_stats_generator.rb +0 -31
- data/spec/models/download_spec.rb +0 -17
- data/spec/models/pageview_spec.rb +0 -17
- data/tasks/migrate.rake +0 -20
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class Sufia::ArkivoApiGenerator < Sufia::AbstractMigrationGenerator
|
1
|
+
class Sufia::ArkivoApiGenerator < Rails::Generators::Base
|
4
2
|
source_root File.expand_path('../templates', __FILE__)
|
5
3
|
|
6
4
|
desc """
|
@@ -26,11 +24,6 @@ This generator sets up Zotero/Arkivo API integration for your application:
|
|
26
24
|
copy_file 'config/arkivo_constraint.rb', 'config/initializers/arkivo_constraint.rb'
|
27
25
|
end
|
28
26
|
|
29
|
-
# Copy the database migration
|
30
|
-
def copy_migration
|
31
|
-
better_migration_template 'add_arkivo_to_users.rb'
|
32
|
-
end
|
33
|
-
|
34
27
|
# Copy the config files for Zotero and Arkivo
|
35
28
|
def copy_config_files
|
36
29
|
copy_file 'config/arkivo.yml', 'config/arkivo.yml'
|
@@ -14,21 +14,13 @@ class Sufia::ConfigGenerator < Rails::Generators::Base
|
|
14
14
|
source_root File.expand_path('../templates', __FILE__)
|
15
15
|
|
16
16
|
def create_initializer_config_file
|
17
|
+
remove_file 'config/initializers/curation_concerns.rb'
|
17
18
|
copy_file 'config/sufia.rb', 'config/initializers/sufia.rb'
|
18
19
|
end
|
19
20
|
|
20
|
-
# Adds citations initialization
|
21
|
-
def citation_config
|
22
|
-
generate 'sufia:citation_config'
|
23
|
-
end
|
24
|
-
|
25
21
|
# Add mini-magick configuration
|
26
|
-
def
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
def install_admin_stats
|
31
|
-
generate "sufia:admin_stat"
|
22
|
+
def minimagick_config
|
23
|
+
copy_file 'config/mini_magick.rb', 'config/initializers/mini_magick.rb'
|
32
24
|
end
|
33
25
|
|
34
26
|
def tinymce_config
|
@@ -1,7 +1,5 @@
|
|
1
|
-
require_relative 'abstract_migration_generator'
|
2
|
-
|
3
1
|
module Sufia
|
4
|
-
class Install <
|
2
|
+
class Install < Rails::Generators::Base
|
5
3
|
source_root File.expand_path('../templates', __FILE__)
|
6
4
|
argument :model_name, type: :string, default: "user", desc: "Model name for User model (primarily passed to devise, but also used elsewhere)"
|
7
5
|
class_option :skip_curation_concerns, type: :boolean, default: false, desc: "whether to skip the curation_concerns:models installer"
|
@@ -14,11 +12,6 @@ module Sufia
|
|
14
12
|
* Generates GenericWork model.
|
15
13
|
* Creates the sufia.rb configuration file
|
16
14
|
* Generates mailboxer
|
17
|
-
* Runs proxies generator
|
18
|
-
* Runs cached stats generator
|
19
|
-
* Runs ORCID field generator
|
20
|
-
* Runs user stats generator
|
21
|
-
* Runs upload_to_collection config generator
|
22
15
|
3. Adds Sufia's abilities into the Ability class
|
23
16
|
4. Adds controller behavior to the application controller
|
24
17
|
5. Copies the catalog controller into the local app
|
@@ -44,22 +37,7 @@ module Sufia
|
|
44
37
|
|
45
38
|
# Setup the database migrations
|
46
39
|
def copy_migrations
|
47
|
-
|
48
|
-
"acts_as_follower_migration.rb",
|
49
|
-
"add_social_to_users.rb",
|
50
|
-
"add_ldap_attrs_to_user.rb",
|
51
|
-
"add_avatars_to_users.rb",
|
52
|
-
"create_local_authorities.rb",
|
53
|
-
"create_trophies.rb",
|
54
|
-
'add_linkedin_to_users.rb',
|
55
|
-
'create_tinymce_assets.rb',
|
56
|
-
'create_content_blocks.rb',
|
57
|
-
'create_featured_works.rb',
|
58
|
-
'add_external_key_to_content_blocks.rb',
|
59
|
-
'create_uploaded_files.rb'
|
60
|
-
].each do |file|
|
61
|
-
better_migration_template file
|
62
|
-
end
|
40
|
+
rake 'sufia:install:migrations'
|
63
41
|
end
|
64
42
|
|
65
43
|
def install_config
|
@@ -97,12 +75,7 @@ module Sufia
|
|
97
75
|
end
|
98
76
|
|
99
77
|
def configure_usage_stats
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
# Sets up proxies and transfers
|
104
|
-
def proxies
|
105
|
-
generate "sufia:proxies"
|
78
|
+
copy_file 'config/analytics.yml', 'config/analytics.yml'
|
106
79
|
end
|
107
80
|
|
108
81
|
def solr_config
|
@@ -111,24 +84,17 @@ module Sufia
|
|
111
84
|
copy_file source, 'solr/conf/solrconfig.xml', force: true
|
112
85
|
end
|
113
86
|
|
114
|
-
#
|
115
|
-
def cached_stats
|
116
|
-
generate 'sufia:cached_stats'
|
117
|
-
end
|
118
|
-
|
119
|
-
# Adds orcid field to user model
|
120
|
-
def orcid_field
|
121
|
-
generate 'sufia:orcid_field'
|
122
|
-
end
|
123
|
-
|
124
|
-
# Adds user stats-related migration & methods
|
87
|
+
# Adds user stats-related methods
|
125
88
|
def user_stats
|
126
|
-
|
127
|
-
end
|
89
|
+
file_path = "app/models/#{model_name.underscore}.rb"
|
128
90
|
|
129
|
-
|
130
|
-
|
131
|
-
|
91
|
+
if File.exist?(file_path)
|
92
|
+
inject_into_file file_path, after: /include Sufia\:\:User.*$/ do
|
93
|
+
"\n include Sufia::UserUsageStats"
|
94
|
+
end
|
95
|
+
else
|
96
|
+
puts " \e[31mFailure\e[0m Sufia requires a user object. This generator assumes that the model is defined in the file #{file_path}, which does not exist. If you used a different name, please re-run the generator and provide that name as an argument. Such as \b rails g sufia:user_stats client"
|
97
|
+
end
|
132
98
|
end
|
133
99
|
|
134
100
|
def insert_abilities
|
@@ -63,22 +63,22 @@ class CatalogController < ApplicationController
|
|
63
63
|
# The ordering of the field names is the order of the display
|
64
64
|
config.add_index_field solr_name("title", :stored_searchable), label: "Title", itemprop: 'name', if: false
|
65
65
|
config.add_index_field solr_name("description", :stored_searchable), label: "Description", itemprop: 'description', helper_method: :iconify_auto_link
|
66
|
-
config.add_index_field solr_name("keyword", :stored_searchable), label: "Keyword", itemprop: 'keywords'
|
67
|
-
config.add_index_field solr_name("subject", :stored_searchable), label: "Subject", itemprop: 'about'
|
68
|
-
config.add_index_field solr_name("creator", :stored_searchable), label: "Creator", itemprop: 'creator'
|
69
|
-
config.add_index_field solr_name("contributor", :stored_searchable), label: "Contributor", itemprop: 'contributor'
|
66
|
+
config.add_index_field solr_name("keyword", :stored_searchable), label: "Keyword", itemprop: 'keywords', link_to_search: solr_name("keyword", :facetable)
|
67
|
+
config.add_index_field solr_name("subject", :stored_searchable), label: "Subject", itemprop: 'about', link_to_search: solr_name("subject", :facetable)
|
68
|
+
config.add_index_field solr_name("creator", :stored_searchable), label: "Creator", itemprop: 'creator', link_to_search: solr_name("creator", :facetable)
|
69
|
+
config.add_index_field solr_name("contributor", :stored_searchable), label: "Contributor", itemprop: 'contributor', helper_method: :index_field_link, field_name: 'contributor'
|
70
70
|
config.add_index_field solr_name("proxy_depositor", :symbol), label: "Depositor", helper_method: :link_to_profile
|
71
71
|
config.add_index_field solr_name("depositor"), label: "Owner", helper_method: :link_to_profile
|
72
|
-
config.add_index_field solr_name("publisher", :stored_searchable), label: "Publisher", itemprop: 'publisher'
|
73
|
-
config.add_index_field solr_name("based_near", :stored_searchable), label: "Location", itemprop: 'contentLocation'
|
74
|
-
config.add_index_field solr_name("language", :stored_searchable), label: "Language", itemprop: 'inLanguage'
|
72
|
+
config.add_index_field solr_name("publisher", :stored_searchable), label: "Publisher", itemprop: 'publisher', link_to_search: solr_name("publisher", :facetable)
|
73
|
+
config.add_index_field solr_name("based_near", :stored_searchable), label: "Location", itemprop: 'contentLocation', link_to_search: solr_name("based_near", :facetable)
|
74
|
+
config.add_index_field solr_name("language", :stored_searchable), label: "Language", itemprop: 'inLanguage', link_to_search: solr_name("language", :facetable)
|
75
75
|
config.add_index_field solr_name("date_uploaded", :stored_sortable, type: :date), label: "Date Uploaded", itemprop: 'datePublished', helper_method: :human_readable_date
|
76
76
|
config.add_index_field solr_name("date_modified", :stored_sortable, type: :date), label: "Date Modified", itemprop: 'dateModified', helper_method: :human_readable_date
|
77
77
|
config.add_index_field solr_name("date_created", :stored_searchable), label: "Date Created", itemprop: 'dateCreated'
|
78
78
|
config.add_index_field solr_name("rights", :stored_searchable), label: "Rights", helper_method: :rights_statement_links
|
79
|
-
config.add_index_field solr_name("resource_type", :stored_searchable), label: "Resource Type"
|
80
|
-
config.add_index_field solr_name("
|
81
|
-
config.add_index_field solr_name("identifier", :stored_searchable), label: "Identifier"
|
79
|
+
config.add_index_field solr_name("resource_type", :stored_searchable), label: "Resource Type", link_to_search: solr_name("resource_type", :facetable)
|
80
|
+
config.add_index_field solr_name("file_format", :stored_searchable), label: "File Format", link_to_search: solr_name("file_format", :facetable)
|
81
|
+
config.add_index_field solr_name("identifier", :stored_searchable), label: "Identifier", helper_method: :index_field_link, field_name: 'identifier'
|
82
82
|
|
83
83
|
# solr fields to be displayed in the show (single result) view
|
84
84
|
# The ordering of the field names is the order of the display
|
@@ -1,16 +1,17 @@
|
|
1
1
|
Sufia.config do |config|
|
2
|
-
config.
|
3
|
-
config.max_notifications_for_dashboard = 5
|
2
|
+
config.register_curation_concern :generic_work
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
"View/Download" => "read",
|
8
|
-
"Edit" => "edit"
|
9
|
-
}
|
4
|
+
# Email recipient of messages sent via the contact form
|
5
|
+
# config.contact_email = "repo-admin@example.org"
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
# Text prefacing the subject entered in the contact form
|
8
|
+
# config.subject_prefix = "Contact form:"
|
9
|
+
|
10
|
+
# How many notifications should be displayed on the dashboard
|
11
|
+
# config.max_notifications_for_dashboard = 5
|
12
|
+
|
13
|
+
# How frequently should a file be audited.
|
14
|
+
# config.max_days_between_audits = 7
|
14
15
|
|
15
16
|
# Enable displaying usage statistics in the UI
|
16
17
|
# Defaults to FALSE
|
@@ -46,10 +47,6 @@ Sufia.config do |config|
|
|
46
47
|
# Store identifier minter's state in a file for later replayability
|
47
48
|
# config.minter_statefile = '/tmp/minter-state'
|
48
49
|
|
49
|
-
# Process for translating Fedora URIs to identifiers and vice versa
|
50
|
-
# config.translate_uri_to_id = ActiveFedora::Noid.config.translate_uri_to_id
|
51
|
-
# config.translate_id_to_uri = ActiveFedora::Noid.config.translate_id_to_uri
|
52
|
-
|
53
50
|
# Specify the prefix for Redis keys:
|
54
51
|
# config.redis_namespace = "sufia"
|
55
52
|
|
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class Sufia::Upgrade700Generator < Sufia::AbstractMigrationGenerator
|
1
|
+
class Sufia::Upgrade700Generator < Rails::Generators::Base
|
4
2
|
source_root File.expand_path('../templates', __FILE__)
|
5
3
|
|
6
4
|
argument :model_name, type: :string, default: "user"
|
@@ -21,19 +19,6 @@ This generator for upgrading sufia from 6.0.0 to 7.0 makes the following changes
|
|
21
19
|
gsub_file 'app/controllers/catalog_controller.rb', '[:add_access_controls_to_solr_params, :add_advanced_parse_q_to_solr]', '[:add_advanced_parse_q_to_solr] + search_params_logic + [:add_access_controls_to_solr_params]'
|
22
20
|
end
|
23
21
|
|
24
|
-
# Setup the database migrations
|
25
|
-
def copy_migrations
|
26
|
-
[
|
27
|
-
'change_trophy_generic_file_id_to_work_id.rb',
|
28
|
-
'change_proxy_deposit_generic_file_id_to_work_id.rb',
|
29
|
-
'change_audit_log_generic_file_id_to_file_set_id.rb',
|
30
|
-
'change_proxy_deposit_request_generic_file_id_to_work_id.rb',
|
31
|
-
'change_featured_work_generic_file_id_to_work_id.rb'
|
32
|
-
].each do |file|
|
33
|
-
better_migration_template file
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
22
|
def inject_sufia_work_controller_behavior
|
38
23
|
file_path = "app/controllers/curation_concerns/generic_works_controller.rb"
|
39
24
|
if File.exist?(file_path)
|
data/lib/sufia.rb
CHANGED
@@ -27,19 +27,15 @@ module Sufia
|
|
27
27
|
extend ActiveSupport::Autoload
|
28
28
|
|
29
29
|
eager_autoload do
|
30
|
-
autoload :RedisEventStore
|
31
30
|
autoload :Arkivo
|
31
|
+
autoload :Configuration
|
32
|
+
autoload :RedisEventStore
|
33
|
+
autoload :ResourceSync
|
32
34
|
autoload :Zotero
|
33
35
|
end
|
34
36
|
|
35
|
-
attr_writer :queue
|
36
|
-
|
37
|
-
def self.queue
|
38
|
-
@queue ||= config.queue.new('sufia')
|
39
|
-
end
|
40
|
-
|
41
37
|
def self.config(&block)
|
42
|
-
@config ||= Sufia::
|
38
|
+
@config ||= Sufia::Configuration.new
|
43
39
|
|
44
40
|
yield @config if block
|
45
41
|
|
@@ -0,0 +1,132 @@
|
|
1
|
+
module Sufia
|
2
|
+
class Configuration
|
3
|
+
def curation_concerns_config
|
4
|
+
@curation_concerns_config ||= CurationConcerns.config
|
5
|
+
end
|
6
|
+
|
7
|
+
delegate(*(CurationConcerns.config.methods - Object.methods),
|
8
|
+
to: :curation_concerns_config)
|
9
|
+
|
10
|
+
attr_writer :persistent_hostpath
|
11
|
+
def persistent_hostpath
|
12
|
+
@persistent_hostpath ||= "http://localhost/files/"
|
13
|
+
end
|
14
|
+
|
15
|
+
attr_writer :redis_namespace
|
16
|
+
def redis_namespace
|
17
|
+
@redis_namespace ||= "sufia"
|
18
|
+
end
|
19
|
+
|
20
|
+
# TODO: This should move to curation_concerns
|
21
|
+
attr_writer :libreoffice_path
|
22
|
+
def libreoffice_path
|
23
|
+
@libreoffice_path ||= "soffice"
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_writer :browse_everything
|
27
|
+
def browse_everything
|
28
|
+
@browse_everything ||= nil
|
29
|
+
end
|
30
|
+
|
31
|
+
attr_writer :analytics
|
32
|
+
def analytics
|
33
|
+
@analytics ||= false
|
34
|
+
end
|
35
|
+
attr_writer :citations
|
36
|
+
def citations
|
37
|
+
@citations ||= false
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_writer :max_notifications_for_dashboard
|
41
|
+
def max_notifications_for_dashboard
|
42
|
+
@max_notifications_for_dashboard ||= 5
|
43
|
+
end
|
44
|
+
|
45
|
+
attr_writer :activity_to_show_default_seconds_since_now
|
46
|
+
def activity_to_show_default_seconds_since_now
|
47
|
+
@activity_to_show_default_seconds_since_now ||= 24 * 60 * 60
|
48
|
+
end
|
49
|
+
|
50
|
+
attr_writer :arkivo_api
|
51
|
+
def arkivo_api
|
52
|
+
@arkivo_api ||= false
|
53
|
+
end
|
54
|
+
|
55
|
+
attr_writer :geonames_username
|
56
|
+
def geonames_username
|
57
|
+
@geonames_username ||= ""
|
58
|
+
end
|
59
|
+
|
60
|
+
attr_writer :active_deposit_agreement_acceptance
|
61
|
+
def active_deposit_agreement_acceptance
|
62
|
+
return true if @active_deposit_agreement_acceptance.nil?
|
63
|
+
@active_deposit_agreement_acceptance
|
64
|
+
end
|
65
|
+
|
66
|
+
attr_writer :batch_user_key
|
67
|
+
def batch_user_key
|
68
|
+
@batch_user_key ||= 'batchuser@example.com'
|
69
|
+
end
|
70
|
+
|
71
|
+
attr_writer :audit_user_key
|
72
|
+
def audit_user_key
|
73
|
+
@audit_user_key ||= 'audituser@example.com'
|
74
|
+
end
|
75
|
+
|
76
|
+
# TODO: this is called working_path in curation_concerns
|
77
|
+
attr_writer :upload_path
|
78
|
+
def upload_path
|
79
|
+
@upload_path ||= ->() { Rails.root + 'tmp' + 'uploads' }
|
80
|
+
end
|
81
|
+
|
82
|
+
# Should a button with "Share my work" show on the front page to all users (even those not logged in)?
|
83
|
+
attr_writer :always_display_share_button
|
84
|
+
def always_display_share_button
|
85
|
+
return true if @always_display_share_button.nil?
|
86
|
+
@always_display_share_button
|
87
|
+
end
|
88
|
+
|
89
|
+
# Defaulting analytic start date to whenever the file was uploaded by leaving it blank
|
90
|
+
attr_writer :analytic_start_date
|
91
|
+
attr_reader :analytic_start_date
|
92
|
+
|
93
|
+
attr_writer :display_media_download_link
|
94
|
+
def display_media_download_link
|
95
|
+
@display_media_download_link ||= false
|
96
|
+
end
|
97
|
+
|
98
|
+
attr_writer :permission_levels
|
99
|
+
def permission_levels
|
100
|
+
@permission_levels ||= { "Choose Access" => "none",
|
101
|
+
"View/Download" => "read",
|
102
|
+
"Edit" => "edit" }
|
103
|
+
end
|
104
|
+
|
105
|
+
attr_writer :owner_permission_levels
|
106
|
+
def owner_permission_levels
|
107
|
+
@owner_permission_levels ||= { "Edit Access" => "edit" }
|
108
|
+
end
|
109
|
+
|
110
|
+
# TODO: Delegate to curation_concerns when https://github.com/projecthydra/curation_concerns/pull/848 is merged
|
111
|
+
attr_writer :translate_uri_to_id
|
112
|
+
def translate_uri_to_id
|
113
|
+
@translate_uri_to_id ||= ActiveFedora::Noid.config.translate_uri_to_id
|
114
|
+
end
|
115
|
+
|
116
|
+
# TODO: Delegate to curation_concerns when https://github.com/projecthydra/curation_concerns/pull/848 is merged
|
117
|
+
attr_writer :translate_id_to_uri
|
118
|
+
def translate_id_to_uri
|
119
|
+
@translate_id_to_uri ||= ActiveFedora::Noid.config.translate_id_to_uri
|
120
|
+
end
|
121
|
+
|
122
|
+
attr_writer :contact_email
|
123
|
+
def contact_email
|
124
|
+
@contact_email ||= "repo-admin@example.org"
|
125
|
+
end
|
126
|
+
|
127
|
+
attr_writer :subject_prefix
|
128
|
+
def subject_prefix
|
129
|
+
@subject_prefix ||= "Contact form:"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
data/lib/sufia/engine.rb
CHANGED
@@ -39,6 +39,7 @@ module Sufia
|
|
39
39
|
Hydra::Derivatives.enable_ffmpeg = c.enable_ffmpeg
|
40
40
|
Hydra::Derivatives.libreoffice_path = c.libreoffice_path
|
41
41
|
|
42
|
+
# TODO: Remove when https://github.com/projecthydra/curation_concerns/pull/848 is merged
|
42
43
|
ActiveFedora::Base.translate_uri_to_id = c.translate_uri_to_id
|
43
44
|
ActiveFedora::Base.translate_id_to_uri = c.translate_id_to_uri
|
44
45
|
ActiveFedora::Noid.config.template = c.noid_template
|
@@ -46,7 +47,6 @@ module Sufia
|
|
46
47
|
end
|
47
48
|
|
48
49
|
CurationConcerns::CurationConcern.actor_factory = Sufia::ActorFactory
|
49
|
-
CurationConcerns.config.display_media_download_link = false
|
50
50
|
end
|
51
51
|
|
52
52
|
initializer 'sufia.assets.precompile' do |app|
|
@@ -68,52 +68,12 @@ module Sufia
|
|
68
68
|
|
69
69
|
config.after_initialize do
|
70
70
|
begin
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
rescue ActiveRecord::StatementInvalid
|
77
|
-
Rails.logger.error "tables for vocabularies missing #{e.class}"
|
78
|
-
end
|
79
|
-
rescue NameError
|
80
|
-
# nop, GenericWork hasn't been generated yet.
|
71
|
+
LocalAuthority.register_vocabulary('generic_works', "subject", "lc_subjects")
|
72
|
+
LocalAuthority.register_vocabulary('generic_works', "language", "lexvo_languages")
|
73
|
+
LocalAuthority.register_vocabulary('generic_works', "tag", "lc_genres")
|
74
|
+
rescue ActiveRecord::StatementInvalid => e
|
75
|
+
Rails.logger.error "tables for vocabularies missing #{e.class}"
|
81
76
|
end
|
82
77
|
end
|
83
|
-
|
84
|
-
# Set some configuration defaults
|
85
|
-
config.persistent_hostpath = "http://localhost/files/"
|
86
|
-
config.enable_ffmpeg = false
|
87
|
-
config.ffmpeg_path = 'ffmpeg'
|
88
|
-
config.fits_message_length = 5
|
89
|
-
config.temp_file_base = nil
|
90
|
-
config.redis_namespace = "sufia"
|
91
|
-
config.fits_path = "fits.sh"
|
92
|
-
config.libreoffice_path = "soffice"
|
93
|
-
config.enable_contact_form_delivery = false
|
94
|
-
config.browse_everything = nil
|
95
|
-
config.analytics = false
|
96
|
-
config.citations = false
|
97
|
-
config.max_notifications_for_dashboard = 5
|
98
|
-
config.activity_to_show_default_seconds_since_now = 24 * 60 * 60
|
99
|
-
config.arkivo_api = false
|
100
|
-
config.geonames_username = ""
|
101
|
-
config.active_deposit_agreement_acceptance = true
|
102
|
-
config.batch_user_key = 'batchuser@example.com'
|
103
|
-
config.audit_user_key = 'audituser@example.com'
|
104
|
-
config.upload_path = ->() { Rails.root + 'tmp' + 'uploads' }
|
105
|
-
|
106
|
-
# Should a button with "Share my work" show on the front page to all users (even those not logged in)?
|
107
|
-
config.always_display_share_button = true
|
108
|
-
|
109
|
-
# Noid identifiers
|
110
|
-
config.enable_noids = true
|
111
|
-
config.noid_template = '.reeddeeddk'
|
112
|
-
config.minter_statefile = '/tmp/minter-state'
|
113
|
-
config.translate_uri_to_id = ActiveFedora::Noid.config.translate_uri_to_id
|
114
|
-
config.translate_id_to_uri = ActiveFedora::Noid.config.translate_id_to_uri
|
115
|
-
|
116
|
-
# Defaulting analytic start date to whenever the file was uploaded by leaving it blank
|
117
|
-
config.analytic_start_date = nil
|
118
78
|
end
|
119
79
|
end
|