sufia 6.0.0 → 6.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.
Files changed (290) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -5
  3. data/CONTRIBUTING.md +4 -4
  4. data/Gemfile +2 -1
  5. data/History.md +69 -0
  6. data/README.md +84 -4
  7. data/SUFIA_VERSION +1 -1
  8. data/app/assets/images/zotero.png +0 -0
  9. data/app/assets/javascripts/sufia/featured_works.js +20 -3
  10. data/app/assets/stylesheets/generic_files.css.erb +2 -2
  11. data/app/assets/stylesheets/sufia.css.scss +2 -2
  12. data/app/assets/stylesheets/sufia/_buttons.scss +2 -2
  13. data/app/assets/stylesheets/sufia/_collections.scss +4 -4
  14. data/app/assets/stylesheets/sufia/_dashboard.scss +1 -1
  15. data/app/assets/stylesheets/sufia/_file-listing.scss +3 -0
  16. data/app/assets/stylesheets/sufia/_modal.scss +4 -0
  17. data/app/assets/stylesheets/sufia/_settings.scss +4 -3
  18. data/app/assets/stylesheets/sufia/_styles.scss +4 -0
  19. data/app/controllers/admin/stats_controller.rb +68 -0
  20. data/app/controllers/api/items_controller.rb +78 -0
  21. data/app/controllers/api/zotero_controller.rb +70 -0
  22. data/app/controllers/authorities_controller.rb +6 -5
  23. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +2 -1
  24. data/app/controllers/concerns/sufia/breadcrumbs.rb +1 -1
  25. data/app/controllers/concerns/sufia/depositors_controller_behavior.rb +11 -0
  26. data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +1 -1
  27. data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +1 -1
  28. data/app/controllers/concerns/sufia/files_controller_behavior.rb +23 -11
  29. data/app/controllers/concerns/sufia/my_controller_behavior.rb +1 -7
  30. data/app/controllers/concerns/sufia/users_controller_behavior.rb +1 -2
  31. data/app/controllers/my/collections_controller.rb +1 -0
  32. data/app/controllers/my/files_controller.rb +1 -1
  33. data/app/helpers/sufia/sufia_helper_behavior.rb +28 -16
  34. data/app/models/my_search_builder.rb +4 -0
  35. data/app/search_builders/sufia/my_search_builder_behavior.rb +20 -0
  36. data/app/search_builders/sufia/search_builder.rb +1 -1
  37. data/app/views/admin/stats/index.html.erb +68 -0
  38. data/app/views/collections/_action_menu.html.erb +22 -20
  39. data/app/views/collections/_collection.html.erb +1 -1
  40. data/app/views/collections/_form_for_select_collection.html.erb +5 -3
  41. data/app/views/generic_files/_show_actions.html.erb +4 -2
  42. data/app/views/generic_files/show.html.erb +1 -1
  43. data/app/views/layouts/sufia-dashboard.html.erb +5 -4
  44. data/app/views/layouts/sufia-one-column.html.erb +2 -0
  45. data/app/views/layouts/sufia-two-column.html.erb +6 -4
  46. data/app/views/my/_facet_layout.html.erb +2 -2
  47. data/app/views/my/_facets.html.erb +4 -6
  48. data/app/views/my/index.html.erb +4 -3
  49. data/app/views/users/_edit_primary.html.erb +18 -17
  50. data/app/views/users/_follower_modal.html.erb +5 -1
  51. data/app/views/users/_following_modal.html.erb +5 -1
  52. data/app/views/users/_user_info.html.erb +6 -1
  53. data/app/views/users/_zotero.html.erb +12 -0
  54. data/config/locales/sufia.en.yml +10 -1
  55. data/config/routes.rb +23 -1
  56. data/lib/generators/sufia/admin_stat_generator.rb +17 -0
  57. data/lib/generators/sufia/install_generator.rb +8 -3
  58. data/{sufia-models/lib/generators/sufia/models/templates/config/resque_admin.rb → lib/generators/sufia/templates/sufia/stats_admin.rb} +3 -3
  59. data/lib/generators/sufia/upgrade400_generator.rb +2 -2
  60. data/lib/sufia.rb +3 -0
  61. data/lib/sufia/arkivo.rb +11 -0
  62. data/lib/sufia/arkivo/actor.rb +95 -0
  63. data/lib/sufia/arkivo/config.rb +11 -0
  64. data/lib/sufia/arkivo/create_subscription_job.rb +67 -0
  65. data/lib/sufia/arkivo/metadata_munger.rb +51 -0
  66. data/lib/sufia/arkivo/schema_validator.rb +55 -0
  67. data/lib/sufia/form_builder.rb +1 -1
  68. data/lib/sufia/inflections.rb +3 -0
  69. data/lib/sufia/version.rb +1 -1
  70. data/lib/sufia/zotero.rb +6 -0
  71. data/lib/sufia/zotero/config.rb +15 -0
  72. data/solr_conf/conf/solrconfig.xml +11 -0
  73. data/spec/controllers/admin_stats_controller_spec.rb +73 -0
  74. data/spec/controllers/api/items_controller_spec.rb +476 -0
  75. data/spec/controllers/api/zotero_controller_spec.rb +178 -0
  76. data/spec/controllers/batch_edits_controller_spec.rb +7 -0
  77. data/spec/controllers/collections_controller_spec.rb +1 -1
  78. data/spec/controllers/dashboard_controller_spec.rb +1 -1
  79. data/spec/controllers/depositors_controller_spec.rb +9 -5
  80. data/spec/controllers/generic_files_controller_spec.rb +5 -4
  81. data/spec/controllers/mailbox_controller_spec.rb +2 -2
  82. data/spec/controllers/my/collections_controller_spec.rb +1 -2
  83. data/spec/controllers/my/files_controller_spec.rb +5 -5
  84. data/spec/controllers/my/shares_controller_spec.rb +15 -3
  85. data/spec/controllers/pages_controller_spec.rb +1 -1
  86. data/spec/controllers/users_controller_spec.rb +10 -9
  87. data/spec/factories/api_items.rb +91 -0
  88. data/spec/factories/generic_files.rb +4 -0
  89. data/spec/factories/users.rb +4 -4
  90. data/spec/features/featured_item_spec.rb +26 -0
  91. data/spec/features/ingest_upload_files_spec.rb +2 -3
  92. data/spec/features/proxy_spec.rb +0 -1
  93. data/spec/helpers/permissions_helper_spec.rb +2 -2
  94. data/spec/helpers/sufia_helper_spec.rb +11 -5
  95. data/spec/inputs/select_with_help_input_spec.rb +2 -2
  96. data/spec/javascripts/helpers/.gitkeep +0 -0
  97. data/spec/javascripts/helpers/jasmine-jquery.js +832 -0
  98. data/spec/javascripts/jasmine_spec.rb +31 -0
  99. data/spec/javascripts/notify_update_link_spec.js +8 -0
  100. data/spec/javascripts/single_use_link_spec.js.coffee +23 -0
  101. data/spec/javascripts/support/jasmine.yml +124 -0
  102. data/spec/javascripts/support/jasmine_helper.rb +15 -0
  103. data/spec/javascripts/terms_of_service_spec.js.coffee +32 -0
  104. data/spec/javascripts/toggle_icon_spec.js +11 -0
  105. data/spec/jobs/active_fedora_id_based_job_spec.rb +3 -3
  106. data/spec/jobs/import_url_job_spec.rb +0 -2
  107. data/spec/lib/sufia/arkivo/actor_spec.rb +139 -0
  108. data/spec/lib/sufia/arkivo/create_subscription_job_spec.rb +54 -0
  109. data/spec/lib/sufia/arkivo/metadata_munger_spec.rb +48 -0
  110. data/spec/lib/sufia/arkivo/schema_validator_spec.rb +65 -0
  111. data/spec/lib/sufia/upload_complete_behavior_spec.rb +1 -1
  112. data/spec/lib/sufia/user_stat_importer_spec.rb +60 -0
  113. data/spec/lib/sufia/zotero/config_spec.rb +30 -0
  114. data/spec/models/collection_spec.rb +36 -7
  115. data/spec/models/file_download_stat_spec.rb +5 -5
  116. data/spec/models/file_usage_spec.rb +23 -0
  117. data/spec/models/file_view_stat_spec.rb +6 -6
  118. data/spec/models/fits_datastream_spec.rb +0 -5
  119. data/spec/models/generic_file_spec.rb +49 -14
  120. data/spec/models/local_authority_spec.rb +1 -1
  121. data/spec/models/proxy_deposit_request_spec.rb +1 -1
  122. data/spec/models/trophy_spec.rb +8 -8
  123. data/spec/models/user_spec.rb +33 -0
  124. data/spec/presenters/sufia/collection_presenter_spec.rb +1 -1
  125. data/spec/routing/api_route_spec.rb +91 -0
  126. data/spec/routing/route_spec.rb +1 -1
  127. data/spec/services/generic_file_audit_service_spec.rb +44 -8
  128. data/spec/spec_helper.rb +18 -3
  129. data/spec/support/features.rb +0 -2
  130. data/spec/support/locations.rb +0 -21
  131. data/spec/support/rake.rb +41 -0
  132. data/spec/support/selectors.rb +0 -50
  133. data/spec/tasks/rake_spec.rb +33 -12
  134. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -0
  135. data/spec/views/admin/stats/index.html.erb_spec.rb +45 -0
  136. data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +0 -1
  137. data/spec/views/dashboard/index_spec.rb +1 -1
  138. data/spec/views/generic_file/edit.html.erb_spec.rb +1 -1
  139. data/spec/views/generic_file/show.html.erb_spec.rb +1 -3
  140. data/spec/views/users/_follower_modal.html.erb_spec.rb +44 -7
  141. data/spec/views/users/_following_modal.html.erb_spec.rb +49 -7
  142. data/spec/views/users/edit.html.erb_spec.rb +72 -0
  143. data/spec/views/users/show.html.erb_spec.rb +1 -1
  144. data/sufia.gemspec +6 -2
  145. data/tasks/sufia-user.rake +14 -0
  146. metadata +130 -156
  147. data/spec/lib/sufia/id_service_spec.rb +0 -32
  148. data/spec/services/noid_spec.rb +0 -9
  149. data/spec/support/poltergeist.rb +0 -11
  150. data/spec/support/rake_output.rb +0 -20
  151. data/sufia-models/.gitignore +0 -17
  152. data/sufia-models/Gemfile +0 -4
  153. data/sufia-models/LICENSE.md +0 -177
  154. data/sufia-models/README.md +0 -39
  155. data/sufia-models/Rakefile +0 -1
  156. data/sufia-models/app/actors/sufia/generic_file/actor.rb +0 -137
  157. data/sufia-models/app/jobs/active_fedora_id_based_job.rb +0 -22
  158. data/sufia-models/app/jobs/active_fedora_pid_based_job.rb +0 -7
  159. data/sufia-models/app/jobs/audit_job.rb +0 -62
  160. data/sufia-models/app/jobs/batch_update_job.rb +0 -72
  161. data/sufia-models/app/jobs/characterize_job.rb +0 -10
  162. data/sufia-models/app/jobs/create_derivatives_job.rb +0 -14
  163. data/sufia-models/app/jobs/import_url_job.rb +0 -52
  164. data/sufia-models/app/jobs/ingest_local_file_job.rb +0 -46
  165. data/sufia-models/app/jobs/resolrize_job.rb +0 -9
  166. data/sufia-models/app/models/batch.rb +0 -36
  167. data/sufia-models/app/models/checksum_audit_log.rb +0 -21
  168. data/sufia-models/app/models/concerns/sufia/ability.rb +0 -61
  169. data/sufia-models/app/models/concerns/sufia/collection_behavior.rb +0 -24
  170. data/sufia-models/app/models/concerns/sufia/file_stat_utils.rb +0 -35
  171. data/sufia-models/app/models/concerns/sufia/generic_file.rb +0 -25
  172. data/sufia-models/app/models/concerns/sufia/generic_file/batches.rb +0 -28
  173. data/sufia-models/app/models/concerns/sufia/generic_file/characterization.rb +0 -89
  174. data/sufia-models/app/models/concerns/sufia/generic_file/content.rb +0 -13
  175. data/sufia-models/app/models/concerns/sufia/generic_file/derivatives.rb +0 -26
  176. data/sufia-models/app/models/concerns/sufia/generic_file/export.rb +0 -343
  177. data/sufia-models/app/models/concerns/sufia/generic_file/featured.rb +0 -11
  178. data/sufia-models/app/models/concerns/sufia/generic_file/full_text_indexing.rb +0 -43
  179. data/sufia-models/app/models/concerns/sufia/generic_file/indexing.rb +0 -14
  180. data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +0 -98
  181. data/sufia-models/app/models/concerns/sufia/generic_file/mime_types.rb +0 -69
  182. data/sufia-models/app/models/concerns/sufia/generic_file/permissions.rb +0 -11
  183. data/sufia-models/app/models/concerns/sufia/generic_file/proxy_deposit.rb +0 -31
  184. data/sufia-models/app/models/concerns/sufia/generic_file/trophies.rb +0 -14
  185. data/sufia-models/app/models/concerns/sufia/generic_file/versions.rb +0 -16
  186. data/sufia-models/app/models/concerns/sufia/generic_file/virus_check.rb +0 -37
  187. data/sufia-models/app/models/concerns/sufia/model_methods.rb +0 -20
  188. data/sufia-models/app/models/concerns/sufia/user.rb +0 -137
  189. data/sufia-models/app/models/concerns/sufia/user_usage_stats.rb +0 -15
  190. data/sufia-models/app/models/datastreams/file_content_datastream.rb +0 -4
  191. data/sufia-models/app/models/datastreams/fits_datastream.rb +0 -152
  192. data/sufia-models/app/models/domain_term.rb +0 -5
  193. data/sufia-models/app/models/featured_work.rb +0 -22
  194. data/sufia-models/app/models/file_download_stat.rb +0 -18
  195. data/sufia-models/app/models/file_usage.rb +0 -34
  196. data/sufia-models/app/models/file_view_stat.rb +0 -18
  197. data/sufia-models/app/models/follow.rb +0 -12
  198. data/sufia-models/app/models/generic_file.rb +0 -3
  199. data/sufia-models/app/models/geo_names_resource.rb +0 -18
  200. data/sufia-models/app/models/group.rb +0 -8
  201. data/sufia-models/app/models/local_authority.rb +0 -86
  202. data/sufia-models/app/models/local_authority_entry.rb +0 -3
  203. data/sufia-models/app/models/proxy_deposit_request.rb +0 -85
  204. data/sufia-models/app/models/proxy_deposit_rights.rb +0 -4
  205. data/sufia-models/app/models/single_use_link.rb +0 -42
  206. data/sufia-models/app/models/subject_local_authority_entry.rb +0 -2
  207. data/sufia-models/app/models/sufia/avatar_uploader.rb +0 -20
  208. data/sufia-models/app/models/sufia/avatar_validator.rb +0 -8
  209. data/sufia-models/app/models/sufia/collection.rb +0 -5
  210. data/sufia-models/app/models/sufia/download.rb +0 -9
  211. data/sufia-models/app/models/sufia/orcid_validator.rb +0 -12
  212. data/sufia-models/app/models/sufia/pageview.rb +0 -9
  213. data/sufia-models/app/models/trophy.rb +0 -10
  214. data/sufia-models/app/models/user_stat.rb +0 -2
  215. data/sufia-models/app/models/version_committer.rb +0 -2
  216. data/sufia-models/app/services/sufia/analytics.rb +0 -50
  217. data/sufia-models/app/services/sufia/generic_file_audit_service.rb +0 -83
  218. data/sufia-models/app/services/sufia/generic_file_indexing_service.rb +0 -12
  219. data/sufia-models/app/services/sufia/id_service.rb +0 -45
  220. data/sufia-models/app/services/sufia/noid.rb +0 -22
  221. data/sufia-models/app/services/sufia/repository_audit_service.rb +0 -9
  222. data/sufia-models/config/locales/sufia.en.yml +0 -6
  223. data/sufia-models/lib/generators/sufia/models/abstract_migration_generator.rb +0 -30
  224. data/sufia-models/lib/generators/sufia/models/cached_stats_generator.rb +0 -24
  225. data/sufia-models/lib/generators/sufia/models/fulltext_generator.rb +0 -27
  226. data/sufia-models/lib/generators/sufia/models/install_generator.rb +0 -106
  227. data/sufia-models/lib/generators/sufia/models/orcid_field_generator.rb +0 -19
  228. data/sufia-models/lib/generators/sufia/models/proxies_generator.rb +0 -24
  229. data/sufia-models/lib/generators/sufia/models/templates/app/models/collection.rb +0 -2
  230. data/sufia-models/lib/generators/sufia/models/templates/config/analytics.yml +0 -9
  231. data/sufia-models/lib/generators/sufia/models/templates/config/clamav.rb +0 -1
  232. data/sufia-models/lib/generators/sufia/models/templates/config/mailboxer.rb +0 -17
  233. data/sufia-models/lib/generators/sufia/models/templates/config/mime_types.rb +0 -6
  234. data/sufia-models/lib/generators/sufia/models/templates/config/redis.yml +0 -9
  235. data/sufia-models/lib/generators/sufia/models/templates/config/redis_config.rb +0 -32
  236. data/sufia-models/lib/generators/sufia/models/templates/config/resque-pool.yml +0 -1
  237. data/sufia-models/lib/generators/sufia/models/templates/config/resque_config.rb +0 -5
  238. data/sufia-models/lib/generators/sufia/models/templates/config/setup_mail.rb +0 -3
  239. data/sufia-models/lib/generators/sufia/models/templates/config/solrconfig.xml +0 -223
  240. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +0 -144
  241. data/sufia-models/lib/generators/sufia/models/templates/migrations/acts_as_follower_migration.rb +0 -17
  242. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_avatars_to_users.rb +0 -15
  243. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_external_key_to_content_blocks.rb +0 -6
  244. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_groups_to_users.rb +0 -11
  245. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_ldap_attrs_to_user.rb +0 -27
  246. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_linkedin_to_users.rb +0 -5
  247. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_orcid_to_users.rb +0 -5
  248. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_social_to_users.rb +0 -13
  249. data/sufia-models/lib/generators/sufia/models/templates/migrations/change_audit_log_pid_to_generic_file_id.rb +0 -5
  250. data/sufia-models/lib/generators/sufia/models/templates/migrations/change_proxy_deposit_request_pid_to_generic_file_id.rb +0 -5
  251. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_checksum_audit_logs.rb +0 -19
  252. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_content_blocks.rb +0 -10
  253. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_featured_works.rb +0 -12
  254. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_file_download_stats.rb +0 -12
  255. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_file_view_stats.rb +0 -12
  256. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_local_authorities.rb +0 -50
  257. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_proxy_deposit_requests.rb +0 -16
  258. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_proxy_deposit_rights.rb +0 -11
  259. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_single_use_links.rb +0 -12
  260. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_tinymce_assets.rb +0 -8
  261. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_trophies.rb +0 -10
  262. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_user_stats.rb +0 -19
  263. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_version_committers.rb +0 -15
  264. data/sufia-models/lib/generators/sufia/models/update_content_blocks_generator.rb +0 -18
  265. data/sufia-models/lib/generators/sufia/models/upgrade400_generator.rb +0 -54
  266. data/sufia-models/lib/generators/sufia/models/upgrade600_generator.rb +0 -21
  267. data/sufia-models/lib/generators/sufia/models/usagestats_generator.rb +0 -19
  268. data/sufia-models/lib/generators/sufia/models/user_stats_generator.rb +0 -31
  269. data/sufia-models/lib/sufia/messages.rb +0 -66
  270. data/sufia-models/lib/sufia/models.rb +0 -34
  271. data/sufia-models/lib/sufia/models/active_fedora/redis.rb +0 -43
  272. data/sufia-models/lib/sufia/models/active_record/redis.rb +0 -56
  273. data/sufia-models/lib/sufia/models/engine.rb +0 -79
  274. data/sufia-models/lib/sufia/models/file_content.rb +0 -6
  275. data/sufia-models/lib/sufia/models/file_content/versions.rb +0 -21
  276. data/sufia-models/lib/sufia/models/resque.rb +0 -36
  277. data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +0 -108
  278. data/sufia-models/lib/sufia/models/user_local_directory_behavior.rb +0 -29
  279. data/sufia-models/lib/sufia/models/utils.rb +0 -22
  280. data/sufia-models/lib/sufia/models/version.rb +0 -5
  281. data/sufia-models/lib/sufia/models/virus_found_error.rb +0 -4
  282. data/sufia-models/lib/sufia/permissions.rb +0 -9
  283. data/sufia-models/lib/sufia/permissions/readable.rb +0 -20
  284. data/sufia-models/lib/sufia/permissions/writable.rb +0 -74
  285. data/sufia-models/lib/tasks/batch_cleanup.rake +0 -19
  286. data/sufia-models/lib/tasks/migrate.rake +0 -21
  287. data/sufia-models/lib/tasks/resque.rake +0 -13
  288. data/sufia-models/lib/tasks/stats_tasks.rake +0 -12
  289. data/sufia-models/lib/tasks/sufia-models_tasks.rake +0 -80
  290. data/sufia-models/sufia-models.gemspec +0 -52
@@ -1,106 +0,0 @@
1
- require_relative 'abstract_migration_generator'
2
-
3
- class Sufia::Models::InstallGenerator < Sufia::Models::AbstractMigrationGenerator
4
- source_root File.expand_path('../templates', __FILE__)
5
- argument :model_name, type: :string , default: "user"
6
- desc """
7
- This generator makes the following changes to your application:
8
- 1. Creates several database migrations if they do not exist in /db/migrate
9
- 2. Adds user behavior to the user model
10
- 3. Creates the sufia.rb configuration file
11
- 4. Generates mailboxer
12
- 5. Generates usage stats config
13
- 6. Runs full-text generator
14
- 7. Runs proxies generator
15
- 8. Runs cached stats generator
16
- 9. Runs ORCID field generator
17
- 10. Runs user stats generator
18
- """
19
- def banner
20
- say_status("warning", "GENERATING SUFIA MODELS", :yellow)
21
- end
22
-
23
- # Setup the database migrations
24
- def copy_migrations
25
- [
26
- "acts_as_follower_migration.rb",
27
- "add_social_to_users.rb",
28
- "create_single_use_links.rb",
29
- "add_ldap_attrs_to_user.rb",
30
- "add_avatars_to_users.rb",
31
- "create_checksum_audit_logs.rb",
32
- "create_version_committers.rb",
33
- "add_groups_to_users.rb",
34
- "create_local_authorities.rb",
35
- "create_trophies.rb",
36
- 'add_linkedin_to_users.rb',
37
- 'create_tinymce_assets.rb',
38
- 'create_content_blocks.rb',
39
- 'create_featured_works.rb',
40
- 'add_external_key_to_content_blocks.rb'
41
- ].each do |file|
42
- better_migration_template file
43
- end
44
- end
45
-
46
- # Add behaviors to the user model
47
- def inject_sufia_user_behavior
48
- file_path = "app/models/#{model_name.underscore}.rb"
49
- if File.exists?(file_path)
50
- inject_into_file file_path, after: /include Hydra\:\:User.*$/ do
51
- "# Connects this user object to Sufia behaviors. " +
52
- "\n include Sufia::User\n"
53
- end
54
- else
55
- puts " \e[31mFailure\e[0m Sufia requires a user object. This generators 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 client"
56
- end
57
- end
58
-
59
- def create_configuration_files
60
- append_file 'config/initializers/mime_types.rb',
61
- "\nMime::Type.register 'application/x-endnote-refer', :endnote", {verbose: false }
62
- copy_file 'config/sufia.rb', 'config/initializers/sufia.rb'
63
- copy_file 'config/redis.yml', 'config/redis.yml'
64
- copy_file 'config/resque-pool.yml', 'config/resque-pool.yml'
65
- copy_file 'config/redis_config.rb', 'config/initializers/redis_config.rb'
66
- copy_file 'config/resque_admin.rb', 'config/initializers/resque_admin.rb'
67
- copy_file 'config/resque_config.rb', 'config/initializers/resque_config.rb'
68
- end
69
-
70
- def create_collection
71
- copy_file 'app/models/collection.rb', 'app/models/collection.rb'
72
- end
73
-
74
- def install_mailboxer
75
- generate "mailboxer:install"
76
- end
77
-
78
- def configure_usage_stats
79
- generate 'sufia:models:usagestats'
80
- end
81
-
82
- # Sets up full-text indexing (Solr config + jars)
83
- def full_text_indexing
84
- generate "sufia:models:fulltext"
85
- end
86
-
87
- # Sets up proxies and transfers
88
- def proxies
89
- generate "sufia:models:proxies"
90
- end
91
-
92
- # Sets up cached usage stats
93
- def cached_stats
94
- generate 'sufia:models:cached_stats'
95
- end
96
-
97
- # Adds orcid field to user model
98
- def orcid_field
99
- generate 'sufia:models:orcid_field'
100
- end
101
-
102
- # Adds user stats-related migration & methods
103
- def user_stats
104
- generate 'sufia:models:user_stats'
105
- end
106
- end
@@ -1,19 +0,0 @@
1
- require_relative 'abstract_migration_generator'
2
-
3
- class Sufia::Models::OrcidFieldGenerator < Sufia::Models::AbstractMigrationGenerator
4
- source_root File.expand_path('../templates', __FILE__)
5
-
6
- desc """
7
- This generator adds a field to hold users' ORCIDs to your application:
8
- 1. Creates a database migration if they do not exist in /db/migrate
9
- """
10
-
11
- def banner
12
- say_status("warning", "ADDING ORCID FIELD TO USER MODEL", :yellow)
13
- end
14
-
15
- # Setup the database migration
16
- def copy_migrations
17
- better_migration_template 'add_orcid_to_users.rb'
18
- end
19
- end
@@ -1,24 +0,0 @@
1
- require_relative 'abstract_migration_generator'
2
-
3
- class Sufia::Models::ProxiesGenerator < Sufia::Models::AbstractMigrationGenerator
4
- source_root File.expand_path('../templates', __FILE__)
5
-
6
- desc """
7
- This generator adds proxies and transfers to your application:
8
- 1. Creates several database migrations if they do not exist in /db/migrate
9
- """
10
-
11
- def banner
12
- say_status("warning", "ADDING PROXY/TRANSFER-RELATED SUFIA MODELS", :yellow)
13
- end
14
-
15
- # Setup the database migrations
16
- def copy_migrations
17
- [
18
- 'create_proxy_deposit_rights.rb',
19
- 'create_proxy_deposit_requests.rb'
20
- ].each do |file|
21
- better_migration_template file
22
- end
23
- end
24
- end
@@ -1,2 +0,0 @@
1
- class Collection < Sufia::Collection
2
- end
@@ -1,9 +0,0 @@
1
- #
2
- # To integrate your app with Google Analytics, uncomment the lines below and add your API key information.
3
- #
4
- # analytics:
5
- # app_name: GOOGLE_OAUTH_APP_NAME
6
- # app_version: GOOGLE_OAUTH_APP_VERSION
7
- # privkey_path: GOOGLE_OAUTH_PRIVATE_KEY_PATH
8
- # privkey_secret: GOOGLE_OAUTH_PRIVATE_KEY_SECRET
9
- # client_email: GOOGLE_OAUTH_CLIENT_EMAIL
@@ -1 +0,0 @@
1
- ClamAV.instance.loaddb() if defined? ClamAV
@@ -1,17 +0,0 @@
1
- Mailboxer.setup do |config|
2
-
3
- #Configures if you applications uses or no the email sending for Notifications and Messages
4
- config.uses_emails = true
5
-
6
- #Configures the default from for the email sent for Messages and Notifications of Mailboxer
7
- config.default_from = "no-reply@mailboxer.com"
8
-
9
- #Configures the methods needed by mailboxer
10
- config.email_method = :mailboxer_email
11
- config.name_method = :name
12
-
13
- #Configures if you use or not a search engine and wich one are you using
14
- #Supported enignes: [:solr,:sphinx]
15
- config.search_enabled = false
16
- config.search_engine = :solr
17
- end
@@ -1,6 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new mime types for use in respond_to blocks:
4
- # Mime::Type.register "text/richtext", :rtf
5
- # Mime::Type.register_alias "text/html", :iphone
6
- Mime::Type.register 'application/x-endnote-refer', :endnote
@@ -1,9 +0,0 @@
1
- development:
2
- host: localhost
3
- port: 6379
4
- test:
5
- host: localhost
6
- port: 6379
7
- production:
8
- host: localhost
9
- port: 6379
@@ -1,32 +0,0 @@
1
- if defined?(PhusionPassenger)
2
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
3
- # We're in smart spawning mode.
4
- if forked
5
- # Re-establish redis connection
6
- require 'redis'
7
- config = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
8
-
9
- # The important two lines
10
- $redis.client.disconnect if $redis
11
- $redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true) rescue nil
12
- Resque.redis = $redis
13
- Resque.redis.client.reconnect if Resque.redis
14
- end
15
- end
16
- else
17
- config = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
18
- $redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true) rescue nil
19
- end
20
-
21
-
22
- # Code borrowed from Obie's Redis patterns talk at RailsConf'12
23
- Nest.class_eval do
24
- def initialize(key, redis=$redis)
25
- super(key.to_param)
26
- @redis = redis
27
- end
28
-
29
- def [](key)
30
- self.class.new("#{self}:#{key.to_param}", @redis)
31
- end
32
- end
@@ -1,5 +0,0 @@
1
- config = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
2
- Resque.redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true)
3
-
4
- Resque.inline = Rails.env.test?
5
- Resque.redis.namespace = "#{Sufia.config.redis_namespace}:#{Rails.env}"
@@ -1,3 +0,0 @@
1
- ActionMailer::Base.smtp_settings = {
2
- address: "smtp.psu.edu"
3
- }
@@ -1,223 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" ?>
2
- <config>
3
- <!-- NOTE: various comments and unused configuration possibilities have been purged
4
- from this file. Please refer to http://wiki.apache.org/solr/SolrConfigXml,
5
- as well as the default solrconfig file included with Solr -->
6
-
7
- <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>
8
-
9
- <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
10
-
11
- <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
12
-
13
- <!-- solr lib dirs -->
14
- <lib dir="../lib/contrib/analysis-extras/lib" />
15
- <lib dir="../lib/contrib/analysis-extras/lucene-libs" />
16
- <!-- for full-text indexing -->
17
- <lib dir="../lib/contrib/extraction/lib" regex=".*\.jar" />
18
-
19
- <dataDir>${solr.data.dir:}</dataDir>
20
-
21
- <!-- The default high-performance update handler -->
22
- <updateHandler class="solr.DirectUpdateHandler2">
23
-
24
- <!-- Enables a transaction log, used for real-time get, durability, and
25
- and solr cloud replica recovery. The log can grow as big as
26
- uncommitted changes to the index, so use of a hard autoCommit
27
- is recommended (see below).
28
- "dir" - the target directory for transaction logs, defaults to the
29
- solr data directory. -->
30
- <updateLog>
31
- <str name="dir">${solr.ulog.dir:}</str>
32
- </updateLog>
33
-
34
- <!-- AutoCommit
35
- Perform a hard commit automatically under certain conditions.
36
- Instead of enabling autoCommit, consider using "commitWithin"
37
- when adding documents.
38
- http://wiki.apache.org/solr/UpdateXmlMessages
39
- maxDocs - Maximum number of documents to add since the last
40
- commit before automatically triggering a new commit.
41
- maxTime - Maximum amount of time in ms that is allowed to pass
42
- since a document was added before automatically
43
- triggering a new commit.
44
- openSearcher - if false, the commit causes recent index changes
45
- to be flushed to stable storage, but does not cause a new
46
- searcher to be opened to make those changes visible.
47
- If the updateLog is enabled, then it's highly recommended to
48
- have some sort of hard autoCommit to limit the log size.
49
- -->
50
- <autoCommit>
51
- <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
52
- <openSearcher>false</openSearcher>
53
- </autoCommit>
54
-
55
- <!-- softAutoCommit is like autoCommit except it causes a
56
- 'soft' commit which only ensures that changes are visible
57
- but does not ensure that data is synced to disk. This is
58
- faster and more near-realtime friendly than a hard commit.
59
- -->
60
-
61
- <autoSoftCommit>
62
- <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
63
- </autoSoftCommit>
64
-
65
- </updateHandler>
66
-
67
- <requestHandler name="search" class="solr.SearchHandler" default="true">
68
- <!-- default values for query parameters can be specified, these
69
- will be overridden by parameters in the request
70
- -->
71
- <lst name="defaults">
72
- <str name="defType">edismax</str>
73
- <str name="echoParams">explicit</str>
74
- <str name="q.alt">*:*</str>
75
- <str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>
76
- <int name="qs">1</int>
77
- <int name="ps">2</int>
78
- <float name="tie">0.01</float>
79
- <!-- this qf and pf are used by default, if not otherwise specified by
80
- client. The default blacklight_config will use these for the
81
- "keywords" search. See the author_qf/author_pf, title_qf, etc
82
- below, which the default blacklight_config will specify for
83
- those searches. You may also be interested in:
84
- http://wiki.apache.org/solr/LocalParams
85
- -->
86
- <str name="qf">
87
- id
88
- all_text_timv
89
- active_fedora_model_ssi
90
- object_type_si
91
- </str>
92
- <str name="pf">
93
- all_text_timv^10
94
- </str>
95
-
96
- <str name="author_qf">
97
- </str>
98
- <str name="author_pf">
99
- </str>
100
- <str name="title_qf">
101
- </str>
102
- <str name="title_pf">
103
- </str>
104
- <str name="subject_qf">
105
- </str>
106
- <str name="subject_pf">
107
- </str>
108
-
109
- <str name="fl">
110
- *,
111
- score
112
- </str>
113
-
114
- <str name="facet">true</str>
115
- <str name="facet.mincount">1</str>
116
- <str name="facet.limit">10</str>
117
- <str name="facet.field">active_fedora_model_ssi</str>
118
- <str name="facet.field">object_type_si</str>
119
-
120
- <str name="spellcheck">true</str>
121
- <str name="spellcheck.dictionary">default</str>
122
- <str name="spellcheck.onlyMorePopular">true</str>
123
- <str name="spellcheck.extendedResults">true</str>
124
- <str name="spellcheck.collate">false</str>
125
- <str name="spellcheck.count">5</str>
126
-
127
- </lst>
128
- <arr name="last-components">
129
- <str>spellcheck</str>
130
- </arr>
131
- </requestHandler>
132
-
133
- <requestHandler name="permissions" class="solr.SearchHandler" >
134
- <lst name="defaults">
135
- <str name="facet">off</str>
136
- <str name="echoParams">all</str>
137
- <str name="rows">1</str>
138
- <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
139
- <str name="fl">
140
- id,
141
- access_ssim,
142
- discover_access_group_ssim,discover_access_person_ssim,
143
- read_access_group_ssim,read_access_person_ssim,
144
- edit_access_group_ssim,edit_access_person_ssim,
145
- depositor_ti,
146
- embargo_release_date_dtsi
147
- inheritable_access_ssim,
148
- inheritable_discover_access_group_ssim,inheritable_discover_access_person_ssim,
149
- inheritable_read_access_group_ssim,inheritable_read_access_person_ssim,
150
- inheritable_edit_access_group_ssim,inheritable_edit_access_person_ssim,
151
- inheritable_embargo_release_date_dtsi
152
- </str>
153
- </lst>
154
- </requestHandler>
155
-
156
- <requestHandler name="/update/extract" startup="lazy" class="org.apache.solr.handler.extraction.ExtractingRequestHandler" >
157
- <lst name="defaults">
158
- <!-- All the main content goes into "text"... if you need to return the extracted text or do highlighting, use a stored field. -->
159
- <str name="fmap.content">text</str>
160
- <str name="lowernames">true</str>
161
- <str name="uprefix">ignored_</str>
162
- <!-- capture link hrefs but ignore div attributes -->
163
- <str name="captureAttr">true</str>
164
- <str name="fmap.a">links</str>
165
- <str name="fmap.div">ignored_</str>
166
- </lst>
167
- </requestHandler>
168
-
169
- <requestHandler name="standard" class="solr.SearchHandler">
170
- <lst name="defaults">
171
- <str name="echoParams">explicit</str>
172
- <str name="defType">lucene</str>
173
- </lst>
174
- </requestHandler>
175
-
176
- <!-- for requests to get a single document; use id=666 instead of q=id:666 -->
177
- <requestHandler name="document" class="solr.SearchHandler" >
178
- <lst name="defaults">
179
- <str name="echoParams">all</str>
180
- <str name="fl">*</str>
181
- <str name="rows">1</str>
182
- <str name="q">{!raw f=id v=$id}</str> <!-- use id=666 instead of q=id:666 -->
183
- </lst>
184
- </requestHandler>
185
-
186
- <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
187
- <str name="queryAnalyzerFieldType">textSpell</str>
188
- <!-- Multiple "Spell Checkers" can be declared and used by this component
189
- (e.g. for title_spell field)
190
- -->
191
- <lst name="spellchecker">
192
- <str name="name">default</str>
193
- <str name="field">spell</str>
194
- <str name="spellcheckIndexDir">./spell</str>
195
- <str name="buildOnOptimize">true</str>
196
- </lst>
197
- </searchComponent>
198
-
199
- <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
200
-
201
- <requestDispatcher handleSelect="true" >
202
- <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
203
- </requestDispatcher>
204
-
205
- <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
206
- <requestHandler name="/update" class="solr.UpdateRequestHandler" />
207
- <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
208
-
209
- <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
210
- <lst name="invariants">
211
- <str name="q">solrpingquery</str>
212
- </lst>
213
- <lst name="defaults">
214
- <str name="echoParams">all</str>
215
- </lst>
216
- </requestHandler>
217
-
218
- <!-- config for the admin interface -->
219
- <admin>
220
- <defaultQuery>search</defaultQuery>
221
- </admin>
222
-
223
- </config>