sufia 4.0.0.rc1 → 4.0.0.rc2

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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +2 -2
  4. data/Gemfile +9 -17
  5. data/README.md +18 -9
  6. data/Rakefile +10 -5
  7. data/SUFIA_VERSION +1 -1
  8. data/app/assets/javascripts/jquery.blacklightTagCloud.js +1 -1
  9. data/app/assets/javascripts/sufia.js +5 -22
  10. data/app/assets/javascripts/sufia/batch.js +8 -0
  11. data/app/assets/javascripts/sufia/batch_edit.js +19 -3
  12. data/app/assets/javascripts/sufia/dashboard_actions.js +23 -10
  13. data/app/assets/javascripts/sufia/multiForm.js +2 -2
  14. data/app/assets/javascripts/sufia/permissions.js +10 -9
  15. data/app/assets/javascripts/sufia/tabs.js +20 -0
  16. data/app/assets/stylesheets/catalog.css.scss +5 -0
  17. data/app/assets/stylesheets/collections.css.scss +40 -0
  18. data/app/assets/stylesheets/file-listing.css.scss +37 -13
  19. data/app/assets/stylesheets/generic_files.css.erb +5 -0
  20. data/app/assets/stylesheets/header.css.scss +1 -4
  21. data/app/assets/stylesheets/settings.css.scss +6 -0
  22. data/app/assets/stylesheets/styles.css.scss +4 -3
  23. data/app/assets/stylesheets/sufia-audio-overrides.css +2 -2
  24. data/app/assets/stylesheets/sufia.css.scss +27 -5
  25. data/app/assets/stylesheets/tagcloud.css +5 -1
  26. data/app/controllers/batch_controller.rb +3 -3
  27. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +14 -1
  28. data/app/controllers/concerns/sufia/catalog.rb +0 -1
  29. data/app/controllers/concerns/sufia/controller.rb +5 -0
  30. data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +2 -9
  31. data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +3 -3
  32. data/app/controllers/concerns/sufia/files_controller_behavior.rb +5 -1
  33. data/app/controllers/concerns/sufia/homepage_controller.rb +1 -1
  34. data/app/controllers/concerns/sufia/users_controller_behavior.rb +3 -2
  35. data/app/helpers/batch_edits_helper.rb +6 -0
  36. data/app/helpers/generic_file_helper.rb +15 -0
  37. data/app/helpers/sufia/blacklight_override.rb +19 -3
  38. data/app/helpers/sufia/dashboard_helper_behavior.rb +25 -3
  39. data/app/helpers/sufia/records_helper_behavior.rb +13 -5
  40. data/app/helpers/sufia/sufia_helper_behavior.rb +15 -12
  41. data/app/models/concerns/sufia/solr_document_behavior.rb +5 -36
  42. data/app/views/_masthead.html.erb +1 -1
  43. data/app/views/_user_util_links.html.erb +6 -4
  44. data/app/views/advanced/_advanced_search_fields.html.erb +4 -4
  45. data/app/views/advanced/_advanced_search_form.html.erb +14 -17
  46. data/app/views/advanced/index.html.erb +3 -3
  47. data/app/views/batch/_metadata.html.erb +22 -24
  48. data/app/views/batch/_more_metadata.html.erb +1 -1
  49. data/app/views/batch/edit.html.erb +2 -2
  50. data/app/views/batch_edits/_check_all.html.erb +7 -9
  51. data/app/views/batch_edits/_delete_selected.html.erb +1 -0
  52. data/app/views/batch_edits/edit.html.erb +25 -26
  53. data/app/views/batch_edits/update_edit.js.erb +1 -1
  54. data/app/views/catalog/_facet_limit.html.erb +4 -12
  55. data/app/views/catalog/_search_form.html.erb +8 -13
  56. data/app/views/collections/_action_menu.html.erb +2 -2
  57. data/app/views/collections/_collection.html.erb +10 -31
  58. data/app/views/collections/_document_list.html.erb +1 -1
  59. data/app/views/collections/_edit_actions.html.erb +2 -2
  60. data/app/views/collections/_edit_descriptions.html.erb +3 -5
  61. data/app/views/collections/_form.html.erb +8 -10
  62. data/app/views/collections/_media_display.html.erb +1 -1
  63. data/app/views/collections/_show_actions.html.erb +5 -5
  64. data/app/views/collections/_show_descriptions.html.erb +13 -8
  65. data/app/views/collections/_show_document_list.html.erb +17 -0
  66. data/app/views/collections/_show_document_list_menu.html.erb +24 -0
  67. data/app/views/collections/_show_document_list_row.html.erb +63 -0
  68. data/app/views/collections/edit.html.erb +2 -2
  69. data/app/views/collections/show.html.erb +28 -19
  70. data/app/views/contact_form/new.html.erb +21 -29
  71. data/app/views/dashboard/_index_partials/_contents.html.erb +14 -0
  72. data/app/views/dashboard/_index_partials/_heading_actions.html.erb +18 -0
  73. data/app/views/dashboard/_index_partials/_heading_greetings.html.erb +8 -0
  74. data/app/views/dashboard/_index_partials/_stats.html.erb +6 -2
  75. data/app/views/dashboard/index.html.erb +5 -37
  76. data/app/views/generic_files/_breadcrumbs.html.erb +2 -0
  77. data/app/views/generic_files/_browse_everything.html.erb +2 -2
  78. data/app/views/generic_files/_descriptions.html.erb +4 -6
  79. data/app/views/generic_files/_field_form.html.erb +2 -2
  80. data/app/views/generic_files/_generic_file.html.erb +8 -29
  81. data/app/views/generic_files/_groups_description.html.erb +5 -4
  82. data/app/views/generic_files/_permission.html.erb +2 -2
  83. data/app/views/generic_files/_permission_form.html.erb +62 -77
  84. data/app/views/generic_files/_rights_modal.html.erb +0 -2
  85. data/app/views/generic_files/_share_with.html.erb +14 -0
  86. data/app/views/generic_files/_show_actions.html.erb +1 -1
  87. data/app/views/generic_files/_show_collections.html.erb +17 -0
  88. data/app/views/generic_files/_show_descriptions.html.erb +2 -2
  89. data/app/views/generic_files/_versioning.html.erb +2 -2
  90. data/app/views/generic_files/_visibility.html.erb +17 -0
  91. data/app/views/generic_files/show.html.erb +39 -2
  92. data/app/views/generic_files/stats.html.erb +1 -1
  93. data/app/views/generic_files/upload/_form_fields.html.erb +2 -2
  94. data/app/views/generic_files/upload/_local_file_import_chooser.html.erb +1 -1
  95. data/app/views/generic_files/upload/_script_templates.html.erb +2 -2
  96. data/app/views/generic_files/upload/_tos_checkbox.html.erb +3 -3
  97. data/app/views/homepage/_home_content.html.erb +0 -9
  98. data/app/views/homepage/_home_header.html.erb +1 -1
  99. data/app/views/homepage/_recent_document.html.erb +2 -2
  100. data/app/views/layouts/_head_tag_content.html.erb +7 -1
  101. data/app/views/layouts/sufia-dashboard.html.erb +4 -2
  102. data/app/views/layouts/sufia-one-column.html.erb +1 -1
  103. data/app/views/my/_action_menu.html.erb +1 -1
  104. data/app/views/my/_collection_action_menu.html.erb +3 -3
  105. data/app/views/my/_constraints.html.erb +11 -0
  106. data/app/views/my/_document_list.html.erb +1 -1
  107. data/app/views/my/_facet_limit.html.erb +4 -12
  108. data/app/views/my/_facets.html.erb +1 -3
  109. data/app/views/my/_index_partials/_default_group.html.erb +2 -3
  110. data/app/views/my/_index_partials/_list_collections.html.erb +17 -11
  111. data/app/views/my/_index_partials/_list_files.html.erb +20 -24
  112. data/app/views/my/_search_header.html.erb +5 -0
  113. data/app/views/my/_sort_and_per_page.html.erb +11 -7
  114. data/app/views/my/index.html.erb +9 -15
  115. data/app/views/records/_edit_field.html.erb +14 -10
  116. data/app/views/records/edit_fields/_default.html.erb +6 -0
  117. data/app/views/records/edit_fields/_description.html.erb +3 -7
  118. data/app/views/records/edit_fields/_resource_type.html.erb +4 -6
  119. data/app/views/records/edit_fields/_rights.html.erb +4 -5
  120. data/app/views/records/edit_fields/_suffix.html.erb +6 -3
  121. data/app/views/records/edit_fields/_type.html.erb +7 -12
  122. data/app/views/{generic_files → records}/show_fields/_based_near.html.erb +1 -1
  123. data/app/views/{generic_files → records}/show_fields/_contributor.html.erb +2 -2
  124. data/app/views/records/show_fields/_creator.html.erb +6 -0
  125. data/app/views/{generic_files → records}/show_fields/_date_created.html.erb +1 -1
  126. data/app/views/records/show_fields/_default.html.erb +6 -0
  127. data/app/views/records/show_fields/_description.html.erb +6 -0
  128. data/app/views/records/show_fields/_identifier.html.erb +4 -0
  129. data/app/views/{generic_files → records}/show_fields/_language.html.erb +1 -1
  130. data/app/views/{generic_files → records}/show_fields/_publisher.html.erb +1 -1
  131. data/app/views/records/show_fields/_related_url.html.erb +6 -0
  132. data/app/views/{generic_files → records}/show_fields/_resource_type.html.erb +1 -1
  133. data/app/views/{generic_files → records}/show_fields/_rights.html.erb +1 -1
  134. data/app/views/{generic_files → records}/show_fields/_subject.html.erb +1 -1
  135. data/app/views/{generic_files → records}/show_fields/_tag.html.erb +1 -1
  136. data/app/views/records/show_fields/_title.html.erb +6 -0
  137. data/app/views/shared/_attributes.html.erb +27 -0
  138. data/app/views/static/agreement.html.erb +1 -1
  139. data/app/views/users/_activity_log.html.erb +0 -2
  140. data/app/views/users/_follower_modal.html.erb +27 -23
  141. data/app/views/users/_following_modal.html.erb +27 -23
  142. data/app/views/users/_social_media_info.html.erb +4 -4
  143. data/app/views/users/_trophy_edit.html.erb +5 -7
  144. data/app/views/users/_user_info.html.erb +3 -3
  145. data/app/views/users/_user_util_links_extra.html.erb +4 -0
  146. data/app/views/users/edit.html.erb +28 -33
  147. data/app/views/users/index.html.erb +1 -1
  148. data/app/views/users/show.html.erb +0 -4
  149. data/config/jetty.yml +1 -1
  150. data/config/locales/sufia.en.yml +53 -12
  151. data/lib/generators/sufia/install_generator.rb +89 -0
  152. data/lib/generators/sufia/templates/catalog_controller.rb +1 -1
  153. data/lib/generators/sufia/upgrade400_generator.rb +4 -0
  154. data/lib/sufia.rb +1 -10
  155. data/lib/sufia/version.rb +1 -1
  156. data/solr_conf/conf/solrconfig.xml +31 -17
  157. data/spec/actors/generic_file/actor_spec.rb +17 -0
  158. data/spec/controllers/batch_controller_spec.rb +2 -2
  159. data/spec/controllers/batch_edits_controller_spec.rb +24 -19
  160. data/spec/controllers/catalog_controller_spec.rb +23 -12
  161. data/spec/controllers/collections_controller_spec.rb +19 -17
  162. data/spec/controllers/dashboard_controller_spec.rb +5 -19
  163. data/spec/controllers/generic_files_controller_spec.rb +35 -20
  164. data/spec/controllers/homepage_controller_spec.rb +25 -2
  165. data/spec/controllers/users_controller_spec.rb +99 -102
  166. data/spec/factories/generic_files.rb +2 -2
  167. data/spec/factories/users.rb +32 -2
  168. data/spec/features/browse_dashboard_files_spec.rb +14 -2
  169. data/spec/features/browse_files_spec.rb +5 -1
  170. data/spec/features/catalog_search_spec.rb +7 -6
  171. data/spec/features/collection_spec.rb +43 -33
  172. data/spec/features/display_dashboard_spec.rb +25 -22
  173. data/spec/features/notifications_spec.rb +9 -4
  174. data/spec/features/users_spec.rb +34 -25
  175. data/spec/fixtures/1.5mb-avatar.jpg +0 -0
  176. data/spec/helpers/batch_edits_helper_spec.rb +38 -0
  177. data/spec/helpers/dashboard_helper_spec.rb +16 -5
  178. data/spec/helpers/generic_file_helper_spec.rb +41 -0
  179. data/spec/helpers/records_helper_spec.rb +12 -0
  180. data/spec/jobs/active_fedora_pid_based_job_spec.rb +1 -1
  181. data/spec/jobs/audit_job_spec.rb +2 -3
  182. data/spec/jobs/batch_update_job_spec.rb +39 -24
  183. data/spec/jobs/event_jobs_spec.rb +1 -1
  184. data/spec/lib/sufia/id_service_spec.rb +25 -7
  185. data/spec/lib/sufia/messages_spec.rb +60 -0
  186. data/spec/lib/sufia/readable_permissions_spec.rb +56 -0
  187. data/spec/lib/sufia/writable_permissions_spec.rb +20 -0
  188. data/spec/models/batch_spec.rb +1 -1
  189. data/spec/models/collection_spec.rb +24 -2
  190. data/spec/models/featured_work_spec.rb +2 -2
  191. data/spec/models/file_content_datastream_spec.rb +5 -5
  192. data/spec/models/generic_file_spec.rb +149 -133
  193. data/spec/models/local_authority_spec.rb +1 -1
  194. data/spec/models/user_spec.rb +33 -6
  195. data/spec/spec_helper.rb +7 -10
  196. data/spec/{support → test_app_templates}/lib/generators/test_app_generator.rb +11 -6
  197. data/spec/views/batch/edit.html.erb_spec.rb +8 -2
  198. data/spec/views/catalog/index.html.erb_spec.rb +34 -0
  199. data/spec/views/catalog/{sort_and_per_pange.html.erb_spec.rb → sort_and_per_page.html.erb_spec.rb} +0 -0
  200. data/spec/views/collections/_form.html.erb_spec.rb +32 -0
  201. data/spec/views/collections/_show_descriptions.html.erb_spec.rb +25 -0
  202. data/spec/views/dashboard/index_spec.rb +33 -4
  203. data/spec/views/generic_file/_breadcrumbs.html.erb_spec.rb +32 -0
  204. data/spec/views/generic_file/show.html.erb_spec.rb +273 -8
  205. data/spec/views/users/_user_util_links.html.erb_spec.rb +25 -0
  206. data/sufia-models/app/actors/sufia/generic_file/actor.rb +14 -5
  207. data/sufia-models/{lib/sufia/models → app}/jobs/active_fedora_pid_based_job.rb +0 -0
  208. data/sufia-models/{lib/sufia/models → app}/jobs/audit_job.rb +4 -10
  209. data/sufia-models/{lib/sufia/models → app}/jobs/batch_update_job.rb +22 -18
  210. data/sufia-models/{lib/sufia/models → app}/jobs/characterize_job.rb +0 -0
  211. data/sufia-models/{lib/sufia/models → app}/jobs/create_derivatives_job.rb +0 -0
  212. data/sufia-models/{lib/sufia/models → app}/jobs/import_url_job.rb +0 -0
  213. data/sufia-models/{lib/sufia/models → app}/jobs/resolrize_job.rb +0 -0
  214. data/sufia-models/app/models/collection.rb +1 -39
  215. data/sufia-models/{lib → app/models/concerns}/sufia/ability.rb +0 -0
  216. data/sufia-models/app/models/concerns/sufia/collection.rb +55 -0
  217. data/sufia-models/app/models/concerns/sufia/generic_file.rb +5 -11
  218. data/sufia-models/app/models/concerns/sufia/generic_file/audit.rb +1 -2
  219. data/sufia-models/app/models/concerns/sufia/generic_file/characterization.rb +4 -2
  220. data/sufia-models/app/models/concerns/sufia/generic_file/full_text_indexing.rb +27 -0
  221. data/sufia-models/app/models/concerns/sufia/generic_file/mime_types.rb +1 -0
  222. data/sufia-models/app/models/concerns/sufia/generic_file/permissions.rb +2 -49
  223. data/sufia-models/{lib/sufia/models → app/models/concerns/sufia}/model_methods.rb +0 -0
  224. data/sufia-models/app/models/concerns/sufia/user.rb +8 -1
  225. data/sufia-models/app/models/sufia/avatar_uploader.rb +2 -3
  226. data/sufia-models/app/services/sufia/noid.rb +9 -0
  227. data/sufia-models/config/locales/sufia.en.yml +1 -0
  228. data/sufia-models/lib/generators/sufia/models/fulltext_generator.rb +27 -0
  229. data/sufia-models/lib/generators/sufia/models/install_generator.rb +7 -0
  230. data/sufia-models/lib/generators/sufia/models/templates/config/analytics.yml +5 -5
  231. data/sufia-models/lib/generators/sufia/models/templates/config/solrconfig.xml +177 -0
  232. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +3 -1
  233. data/sufia-models/lib/generators/sufia/models/upgrade400_generator.rb +7 -0
  234. data/sufia-models/lib/sufia/messages.rb +67 -0
  235. data/sufia-models/lib/sufia/models.rb +2 -0
  236. data/sufia-models/lib/sufia/models/active_fedora/redis.rb +0 -6
  237. data/sufia-models/lib/sufia/models/engine.rb +1 -3
  238. data/sufia-models/lib/sufia/models/resque.rb +1 -1
  239. data/sufia-models/lib/sufia/models/version.rb +1 -1
  240. data/sufia-models/lib/sufia/permissions.rb +9 -0
  241. data/sufia-models/lib/sufia/permissions/readable.rb +20 -0
  242. data/sufia-models/lib/sufia/permissions/writable.rb +56 -0
  243. data/sufia-models/lib/tasks/sufia-models_tasks.rake +58 -2
  244. data/sufia-models/sufia-models.gemspec +11 -11
  245. data/sufia.gemspec +19 -9
  246. data/tasks/jetty.rake +6 -5
  247. data/tasks/sufia-dev.rake +4 -77
  248. metadata +235 -72
  249. data/app/assets/images/folder.png +0 -0
  250. data/app/views/collections/show_fields/_creator.html.erb +0 -11
  251. data/app/views/collections/show_fields/_description.html.erb +0 -8
  252. data/app/views/collections/show_fields/_title.html.erb +0 -8
  253. data/app/views/generic_files/edit_fields/_default.html.erb +0 -6
  254. data/app/views/generic_files/edit_fields/_description.html.erb +0 -5
  255. data/app/views/generic_files/edit_fields/_resource_type.html.erb +0 -6
  256. data/app/views/generic_files/edit_fields/_rights.html.erb +0 -6
  257. data/app/views/generic_files/edit_fields/_suffix.html.erb +0 -9
  258. data/app/views/generic_files/show_fields/_creator.html.erb +0 -7
  259. data/app/views/generic_files/show_fields/_default.html.erb +0 -6
  260. data/app/views/generic_files/show_fields/_description.html.erb +0 -7
  261. data/app/views/generic_files/show_fields/_identifier.html.erb +0 -4
  262. data/app/views/generic_files/show_fields/_related_url.html.erb +0 -6
  263. data/app/views/generic_files/show_fields/_title.html.erb +0 -7
  264. data/lib/generators/sufia/sufia_generator.rb +0 -89
  265. data/spec/active_fedora/unsaved_digital_object_spec.rb +0 -35
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ba41b878b539854a7ac45bdaa3e8e7eeef65e6ab
4
- data.tar.gz: 1d4bc6af71c96d65611b48c2dbabf1bb87bef5be
3
+ metadata.gz: 88a671be1433e1c547df206f1ebb565b0f9f7f35
4
+ data.tar.gz: 4c2809c2f8252ba717431ecc9d32816722916d8e
5
5
  SHA512:
6
- metadata.gz: ea0b45add59651469320fc050cc674fdce1688177a881489909019b39c18829d0dfcc9542db65ca86717a6643daebfc389c47e48a31b1ed9abef40ab39bbd455
7
- data.tar.gz: 4f3743ffb78f0299458d0b473e32870c33ee8e08ea2e916567805148cc2b17d4f654fc6dcb4bfd255511b2f2adbf81924a74a6dc42b8ced54e15ff035135cd02
6
+ metadata.gz: c94f29af9b894337d7c6b6222c8371e3671b13aeb1d8d1fde54acb3858ca231b123102c3e452b23bc4c88339bcc7e0fe0c12f44bf6c76f8c3fa3e83578bee8c0
7
+ data.tar.gz: 5622829fa0cd2330279dad596a89cf01988e5865f86b4f05a2ccf375aaf7985d463215bdb1f3bc38fedb470dce6e9ec5c1652a96d430a4a9b9798bfbc508ad3b
data/.gitignore CHANGED
@@ -97,3 +97,5 @@ public/system/
97
97
 
98
98
  ## Sitemap
99
99
  public/sitemap.xml
100
+
101
+ ./spec/internal
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "2.1.1"
4
- - "2.0.0"
3
+ - 2.1
4
+ - 2.0
5
5
  env:
6
6
  global:
7
7
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
data/Gemfile CHANGED
@@ -3,26 +3,18 @@ source 'https://rubygems.org'
3
3
  # Please see sufia.gemspec for dependency information.
4
4
  gemspec
5
5
 
6
-
7
6
  # Required for doing pagination inside an engine. See https://github.com/amatsuda/kaminari/pull/322
8
7
  gem 'kaminari', github: 'harai/kaminari', branch: 'route_prefix_prototype'
9
8
  gem 'sufia-models', path: './sufia-models'
10
- gem 'sass-rails', '~> 4.0.0'
9
+ gem 'sass-rails', '~> 4.0.3'
11
10
 
12
11
  group :development, :test do
13
- gem 'sqlite3'
14
- gem 'rspec-rails', '~> 2.99'
15
- gem 'launchy' unless ENV['TRAVIS']
16
- gem 'byebug' unless ENV['TRAVIS']
17
- gem 'capybara'
18
- gem 'poltergeist'
19
- gem "jettywrapper"
20
- gem "factory_girl_rails"
21
- gem "devise"
22
- gem 'jquery-rails'
23
- gem 'turbolinks'
24
- gem "bootstrap-sass"
25
- gem "simplecov", :require => false
26
- gem "spring"
27
- gem 'database_cleaner'
12
+ gem "simplecov", require: false
13
+ gem "byebug", require: false
28
14
  end # (leave this comment here to catch a stray line inserted by blacklight!)
15
+
16
+ file = File.expand_path("Gemfile", ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path("../spec/internal", __FILE__))
17
+ if File.exists?(file)
18
+ puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
19
+ instance_eval File.read(file)
20
+ end
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Please Note!
4
4
  Sufia is currently in transition to a new 4.0 release scheduled for late summer 2014. If wish to use Sufia now,
5
- please ensure you using version 3.7.2, available from RubyGems.org. For documentation specific to this version,
5
+ please ensure you using version 3.7.2, available from RubyGems.org. For documentation specific to this version,
6
6
  please consult the [Sufia 3.7.2 documentation](http://rubydoc.info/gems/sufia/3.7.2/frames).
7
7
 
8
8
  If you have questions or need help, please email `hydra-tech@googlegroups.com`
@@ -21,7 +21,7 @@ Sufia has the following features:
21
21
  * Version control
22
22
  * Characterization of uploaded files
23
23
  * Forms for batch editing metadata
24
- * Faceted search and browse (based on Blacklight)
24
+ * Faceted search and browse
25
25
  * Social media interaction
26
26
  * User profiles
27
27
  * User dashboard for file management
@@ -31,7 +31,15 @@ Sufia has the following features:
31
31
  * Activity streams
32
32
  * Background jobs
33
33
  * Single-use links
34
- * Analytics
34
+ * Google Analytics for usage statistics
35
+ * Integration w/ cloud storage providers
36
+ * Google Scholar-specific metadata embedding
37
+ * Schema.org microdata, Open Graph meta tags, and Twitter cards for rich snippets
38
+ * User-managed collections for grouping files
39
+ * Full-text indexing & searching
40
+ * Responsive, fluid, Bootstrap 3-based UI
41
+ * Dynamically configurable featured works and researchers on homepage
42
+ * Proxy deposit and transfers of ownership (coming soon!)
35
43
 
36
44
  ## Sufia needs the following software to work:
37
45
  1. Solr
@@ -57,7 +65,7 @@ Note the line with kaminari listed as a dependency. This is a temporary fix to
57
65
 
58
66
  ### Run the sufia generator
59
67
  ```
60
- rails g sufia -f
68
+ rails generate sufia:install -f
61
69
  ```
62
70
 
63
71
  ### Run the migrations
@@ -66,10 +74,10 @@ rails g sufia -f
66
74
  rake db:migrate
67
75
  ```
68
76
 
69
- ### Get a copy of hydra-jetty
77
+ ### Get a copy of jetty (Solr and Fedora)
70
78
  ```
71
79
  rake jetty:clean
72
- rake jetty:config
80
+ rake sufia:jetty:config
73
81
  rake jetty:start
74
82
  ```
75
83
 
@@ -84,9 +92,10 @@ Add this line:
84
92
  ```*= require_tree .```
85
93
 
86
94
  _Removing the require_tree from application.css will ensure you're not loading the blacklight.css. This is because blacklight's css styling does not mix well with sufia's default styling._
95
+
87
96
  #### Modify app/assets/javascripts/application.js
88
97
 
89
- Add this line:
98
+ Add this line at the bottom of the file:
90
99
  ```
91
100
  //= require sufia
92
101
  ```
@@ -200,8 +209,8 @@ Sufia provides a tag cloud on the home page. To change which field is displayed
200
209
  ```ruby
201
210
  configure_blacklight do |config|
202
211
  ...
203
-
204
- # Specify which field to use in the tag cloud on the homepage.
212
+
213
+ # Specify which field to use in the tag cloud on the homepage.
205
214
  # To disable the tag cloud, comment out this line.
206
215
  config.tag_cloud_field_name = Solrizer.solr_name("desc_metadata__tag", :facetable)
207
216
  end
data/Rakefile CHANGED
@@ -1,9 +1,14 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require "bundler/gem_tasks"
4
- Dir.glob('tasks/*.rake').each { |r| import r }
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ Bundler::GemHelper.install_tasks
5
10
 
6
- desc 'Run CI tests in Travis environment'
7
- task :travis => ['clean', 'ci']
11
+ Dir.glob('tasks/*.rake').each { |r| import r }
12
+ import 'sufia-models/lib/tasks/sufia-models_tasks.rake'
8
13
 
9
- task :default => [:travis]
14
+ task default: :ci
@@ -1 +1 @@
1
- 4.0.0.rc1
1
+ 4.0.0.rc2
@@ -17,7 +17,7 @@
17
17
  var $tagCloud = $(this)
18
18
  $.ajax({url:"/catalog/facet/"+facet_name+".json"}).done(function(data) {
19
19
  data.response.facets.items.map(function(item) {
20
- $tagCloud.append('<li rel="'+item.hits+'" title="'+item.value+'"><a href="/?f['+facet_name+'][]='+item.value+'">'+item.value+'</a><span class="badge facet-count">'+item.hits+'</span></li>');
20
+ $tagCloud.append('<li rel="'+item.hits+'" title="'+item.value+'"><a href="/catalog?f['+facet_name+'][]='+item.value+'">'+item.value+'&emsp;</a><span class="badge facet-count">'+item.hits+'</span></li>');
21
21
  });
22
22
  $tagCloud.tagcloud(options);
23
23
  $tagCloud.children().tsort({attr:'title', order:'asc'});
@@ -41,8 +41,10 @@
41
41
  //= require sufia/search
42
42
  //= require sufia/editor
43
43
  //= require sufia/ga_events
44
+ //= require sufia/tabs
44
45
  //= require hydra/batch_select
45
46
  //= require sufia/dashboard_actions
47
+ //= require sufia/batch
46
48
  //= require hydra_collections
47
49
  //= require browse_everything
48
50
  //= require jquery.blacklightTagCloud
@@ -95,25 +97,6 @@ Blacklight.onLoad(function() {
95
97
  });
96
98
  };
97
99
 
98
- // show/hide more information on the dashboard when clicking
99
- // plus/minus
100
- $('.glyphicon-plus').on('click', function() {
101
- var button = $(this);
102
- //this.id format: "expand_NNNNNNNNNN"
103
- var array = this.id.split("expand_");
104
- if (array.length > 1) {
105
- var docId = array[1];
106
- $("#detail_" + docId + " .expanded-details").slideToggle();
107
- button.toggleClass('glyphicon-plus glyphicon-minus');
108
- }
109
- return false;
110
- });
111
-
112
- $('#add_descriptions').click(function() {
113
- $('#more_descriptions').show();
114
- $('#add_descriptions').hide();
115
- return false;
116
- });
117
100
 
118
101
  $("a[rel=popover]").click(function() { return false;});
119
102
 
@@ -123,7 +106,7 @@ Blacklight.onLoad(function() {
123
106
  $(".tagcloud").blacklightTagCloud({
124
107
  size: {start: 0.9, end: 2.5, unit: 'em'},
125
108
  cssHooks: {granularity: 15},
126
- // color: {start: '#cde', end: '#f52'}
109
+ color: {start: '#0F0', end: '#F00'}
127
110
  });
128
111
 
129
112
 
@@ -132,11 +115,11 @@ Blacklight.onLoad(function() {
132
115
  */
133
116
  $("li.expandable").click(function(){
134
117
  $(this).next("ul").slideToggle();
135
- $(this).find('i').toggleClass("glyphicon glyphicon-chevron-down");
118
+ $(this).find('i').toggleClass("glyphicon-chevron-right glyphicon-chevron-down");
136
119
  });
137
120
 
138
121
  $("li.expandable_new").click(function(){
139
- $(this).find('i').toggleClass("glyphicon glyphicon-chevron-down");
122
+ $(this).find('i').toggleClass("glyphicon-chevron-right glyphicon-chevron-down");
140
123
  });
141
124
 
142
125
  $(".sorts-dash").click(function(){
@@ -0,0 +1,8 @@
1
+ Blacklight.onLoad(function() {
2
+ $('#add_descriptions').click(function() {
3
+ $('#more_descriptions').show();
4
+ $('#add_descriptions').hide();
5
+ return false;
6
+ });
7
+ $('#more_descriptions').hide();
8
+ });
@@ -108,7 +108,7 @@ function batch_edit_init () {
108
108
  $("#status_" + key).html("Changes Saved");
109
109
  $(save_button).removeAttr("disabled");
110
110
  $(outer_div).removeClass("loading");
111
- $('#' + form_id).children([".control-group"]).removeClass('hidden')
111
+ $('#' + form_id).children([".form-group"]).removeClass('hidden')
112
112
  }
113
113
 
114
114
  function before_ajax(form_id) {
@@ -117,7 +117,7 @@ function batch_edit_init () {
117
117
  var outer_div = "#collapse_" + key;
118
118
  $(save_button).attr("disabled", "disabled");
119
119
  $(outer_div).addClass("loading");
120
- $('#' + form_id).children([".control-group"]).addClass('hidden')
120
+ $('#' + form_id).children([".form-group"]).addClass('hidden')
121
121
  }
122
122
 
123
123
 
@@ -151,14 +151,30 @@ function batch_edit_init () {
151
151
  setTimeout(ajaxManager.runNow(), 100);
152
152
  }
153
153
 
154
+ function enable_show_hide_links() {
155
+ // Show/hide field details when clicking on a link with ID "expand_link_XXX".
156
+ // We expect to find an element named detail_XXX in addition to the expand_link_XXX.
157
+ // The "detail_XXX" element has the chevron icon.
158
+ $('.glyphicon-chevron-right-helper').on('click', function() {
159
+ var array = this.id.split("expand_link_");
160
+ if (array.length > 1) {
161
+ var docId = array[1];
162
+ $("#detail_" + docId + " .expanded-details").slideToggle();
163
+ var button = $("#expand_" + docId);
164
+ button.toggleClass('glyphicon-chevron-right glyphicon-chevron-down');
165
+ }
166
+ return false;
167
+ });
168
+ }
169
+
154
170
  $("#permissions_save").click(runSave);
155
171
  $(".field-save").click(runSave);
172
+ enable_show_hide_links();
156
173
 
157
174
  }
158
175
 
159
176
 
160
177
 
161
-
162
178
  // turbolinks triggers page:load events on page transition
163
179
  // If app isn't using turbolinks, this event will never be triggered, no prob.
164
180
  $(document).on('page:load', function() {
@@ -1,13 +1,26 @@
1
1
  Blacklight.onLoad(function() {
2
- // toggle button on or off based on boxes being clicked
3
- $(".batch_document_selector, .batch_document_selector_all").bind('click', function(e) {
4
- var n = $(".batch_document_selector:checked").length;
5
- if (n>0 || $('input#check_all')[0].checked) {
6
- $('.sort-toggle').hide();
7
- } else {
8
- $('.sort-toggle').show();
9
- }
2
+ // toggle button on or off based on boxes being clicked
3
+ $(".batch_document_selector, .batch_document_selector_all").bind('click', function(e) {
4
+ var n = $(".batch_document_selector:checked").length;
5
+ if (n>0 || ($('input#check_all').length && $('input#check_all')[0].checked)) {
6
+ $('.sort-toggle').hide();
7
+ } else {
8
+ $('.sort-toggle').show();
9
+ }
10
+ });
10
11
 
11
- });
12
- });
12
+ // show/hide more information on the dashboard when clicking
13
+ // plus/minus
14
+ $('.glyphicon-chevron-right').on('click', function() {
15
+ var button = $(this);
16
+ //this.id format: "expand_NNNNNNNNNN"
17
+ var array = this.id.split("expand_");
18
+ if (array.length > 1) {
19
+ var docId = array[1];
20
+ $("#detail_" + docId + " .expanded-details").slideToggle();
21
+ button.toggleClass('glyphicon-chevron-right glyphicon-chevron-down');
22
+ }
23
+ return false;
24
+ });
13
25
 
26
+ });
@@ -6,7 +6,7 @@
6
6
  var settings = $.extend( { }, options);
7
7
 
8
8
  function addField() {
9
- count = $(this).closest('.control-group').find('.controls').size();
9
+ count = $(this).closest('.form-group').find('input').size();
10
10
  var cloneId = this.id.replace("submit", "clone");
11
11
  var newId = this.id.replace("submit", "elements");
12
12
  var cloneElem = $('#'+cloneId).clone();
@@ -29,7 +29,7 @@
29
29
  textFields = cloneElem.find('input[type=text]')
30
30
  $.each(textFields, function(n, tf) {
31
31
  newName = $(tf).attr('name').replace('[0]', '['+count+']');
32
- $(tf).attr('name', newName).attr("value", "").attr("required", false)
32
+ $(tf).attr('name', newName).val('').attr("required", false)
33
33
  })
34
34
 
35
35
  if (settings.afterAdd) {
@@ -44,9 +44,9 @@ Blacklight.onLoad(function() {
44
44
  return false;
45
45
  }
46
46
 
47
- if ($('#new_user_name_skel').val() == $('#file_owner').html()) {
48
- $('#permissions_error_text').html("Cannot change owner permissions.");
49
- $('#permissions_error').show();
47
+ if ( ($('#new_user_name_skel').val()+$('.add-on').text()) == $('#file_owner').data('depositor') ) {
48
+ $('#permissions_error_text').html("Cannot change depositor permissions.");
49
+ $('#permissions_error').removeClass('hidden');
50
50
  $('#new_user_name_skel').val('');
51
51
  $('#new_user_name_skel').focus();
52
52
  return false;
@@ -54,12 +54,12 @@ Blacklight.onLoad(function() {
54
54
 
55
55
  if (!is_permission_duplicate($('#new_user_name_skel').val())) {
56
56
  $('#permissions_error_text').html("This user already has a permission.");
57
- $('#permissions_error').show();
57
+ $('#permissions_error').removeClass('hidden');
58
58
  $('#new_user_name_skel').focus();
59
59
  return false;
60
60
  }
61
61
  $('#permissions_error').html();
62
- $('#permissions_error').hide();
62
+ $('#permissions_error').addClass('hidden');
63
63
 
64
64
  var un = $('#new_user_name_skel').val();
65
65
  var perm_form = $('#new_user_permission_skel').val();
@@ -84,12 +84,12 @@ Blacklight.onLoad(function() {
84
84
 
85
85
  if (!is_permission_duplicate($('#new_group_name_skel').val())) {
86
86
  $('#permissions_error_text').html("This group already has a permission.");
87
- $('#permissions_error').show();
87
+ $('#permissions_error').removeClass('hidden');
88
88
  $('#new_group_name_skel').focus();
89
89
  return false;
90
90
  }
91
91
  $('#permissions_error').html();
92
- $('#permissions_error').hide();
92
+ $('#permissions_error').addClass('hidden');
93
93
  // clear out the elements to add more
94
94
  $('#new_group_name_skel').val('');
95
95
  $('#new_group_permission_skel').val('none');
@@ -118,7 +118,7 @@ Blacklight.onLoad(function() {
118
118
  var td2 = $(document.createElement('td'));
119
119
  var remove = $('<button class="btn close">X</button>');
120
120
 
121
- $('#save_perm_note').show();
121
+ $('#save_perm_note').removeClass('hidden');
122
122
 
123
123
  $('#new_perms').append(td1);
124
124
  $('#new_perms').append(td2);
@@ -143,8 +143,9 @@ Blacklight.onLoad(function() {
143
143
 
144
144
  $('.remove_perm').on('click', function() {
145
145
  var top = $(this).parent().parent();
146
- top.hide(); // do not show the block
146
+ top.addClass('hidden'); // do not show the block
147
147
  top.find('.select_perm')[0].options[0].selected= true; // select the first otion which is none
148
+ $('#save_perm_note').removeClass('hidden');
148
149
  return false;
149
150
 
150
151
  });
@@ -0,0 +1,20 @@
1
+ Blacklight.onLoad(function () {
2
+ $('#homeTabs a, #myTab a').click(function (e) {
3
+ e.preventDefault();
4
+ $(this).tab('show');
5
+ });
6
+ $('#homeTabs a:first, #myTab a:first').tab('show'); // Select first tab
7
+
8
+ // Show the tabs in GenericFile#edit given an anchor
9
+ switch (window.location.hash.substring(1)) {
10
+ case 'versioning_display':
11
+ $('#edit_versioning_link a').tab('show');
12
+ break;
13
+ case 'descriptions_display':
14
+ $('#edit_descriptions_link a').tab('show');
15
+ break;
16
+ case 'permissions_display':
17
+ $('#edit_permissions_link a').tab('show');
18
+ break;
19
+ }
20
+ });
@@ -0,0 +1,5 @@
1
+ // makes it so images don't bleed into the content on the right
2
+ .catalog img {
3
+ max-width: 100%;
4
+ max-height: auto;
5
+ }
@@ -0,0 +1,40 @@
1
+ .collection_description {
2
+ color: #333;
3
+ font-family: 'Lato', Verdana, Arail, Helvetica, sans-serif;
4
+ font-size: 1.15em;
5
+ font-weight: 300;
6
+ line-height: 1.25em;
7
+ letter-spacing: .10em;
8
+ }
9
+
10
+ .metadata-collections dt {
11
+ float: left;
12
+ margin-right: 1em;
13
+ }
14
+
15
+ .collection-icon, .collection-icon-search, .collection-icon-small {
16
+ font-size: 12vw;
17
+ color: #fab801;
18
+ padding: 15px 0 0 10px;
19
+ }
20
+
21
+ .collection-icon-search {
22
+ font-size: 10vw;
23
+ }
24
+
25
+ .collection-icon-small {
26
+ font-size: 2vw;
27
+ }
28
+
29
+
30
+ .actions-controls-collections {
31
+ display: block;
32
+ margin: 1em 0 0 1em;
33
+ }
34
+
35
+ .actions-controls-collections a:link,
36
+ .actions-controls-collections a:visited,
37
+ .actions-controls-collections a:hover {
38
+ color: #FFF;
39
+ text-align: center;
40
+ }