sufia 4.0.0.rc1 → 4.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
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
+ }