sufia 3.6.1 → 3.7.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -4
  3. data/Gemfile +0 -3
  4. data/History.md +29 -0
  5. data/README.md +2 -4
  6. data/SUFIA_VERSION +1 -1
  7. data/app/assets/javascripts/sufia.js +2 -20
  8. data/app/assets/javascripts/sufia/audio.js +28 -0
  9. data/app/assets/javascripts/sufia/single_use_link.js +35 -0
  10. data/app/assets/stylesheets/sufia-audio-overrides.css +9 -0
  11. data/app/assets/stylesheets/sufia.css.scss +1 -1
  12. data/app/assets/stylesheets/video-js.css +700 -433
  13. data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +0 -12
  14. data/app/controllers/concerns/sufia/users_controller_behavior.rb +12 -18
  15. data/app/controllers/dashboard_controller.rb +1 -2
  16. data/app/helpers/sufia_helper.rb +6 -5
  17. data/app/helpers/trophy_helper.rb +1 -1
  18. data/app/views/catalog/_index_partials/_default_group.html.erb +1 -2
  19. data/app/views/catalog/_results_pagination.html.erb +3 -3
  20. data/app/views/catalog/index.html.erb +0 -3
  21. data/app/views/dashboard/_index_partials/_thumbnail_display.html.erb +2 -2
  22. data/app/views/dashboard/_results_pagination.html.erb +5 -21
  23. data/app/views/dashboard/facet.html.erb +1 -1
  24. data/app/views/dashboard/index.html.erb +5 -35
  25. data/app/views/generic_files/_media_display.html.erb +4 -4
  26. data/app/views/layouts/sufia-two-column.html.erb +0 -16
  27. data/app/views/users/_contributions.html.erb +20 -28
  28. data/app/views/users/_profile_actions.html.erb +8 -9
  29. data/config/routes.rb +7 -8
  30. data/lib/sufia/version.rb +1 -1
  31. data/spec/controllers/users_controller_spec.rb +51 -13
  32. data/spec/features/browse_files_spec.rb +14 -12
  33. data/spec/helpers/sufia_helper_spec.rb +21 -0
  34. data/spec/models/generic_file_spec.rb +24 -66
  35. data/spec/models/user_spec.rb +16 -4
  36. data/sufia-models/app/models/checksum_audit_log.rb +0 -1
  37. data/sufia-models/app/models/concerns/sufia/user.rb +6 -13
  38. data/sufia-models/app/models/domain_term.rb +1 -6
  39. data/sufia-models/app/models/local_authority.rb +2 -10
  40. data/sufia-models/app/models/local_authority_entry.rb +0 -1
  41. data/sufia-models/app/models/single_use_link.rb +1 -3
  42. data/sufia-models/app/models/trophy.rb +0 -2
  43. data/sufia-models/app/models/version_committer.rb +0 -1
  44. data/sufia-models/lib/sufia/models/engine.rb +0 -2
  45. data/sufia-models/lib/sufia/models/generic_file.rb +7 -0
  46. data/sufia-models/sufia-models.gemspec +3 -1
  47. data/sufia.gemspec +1 -1
  48. data/tasks/sufia-dev.rake +0 -1
  49. data/vendor/assets/javascripts/video.js +129 -4569
  50. metadata +22 -23
  51. data/sufia-models/lib/sufia/models/active_record/deprecated_attr_accessible.rb +0 -16
  52. data/sufia-models/lib/sufia/models/active_support/core_ext/marshal.rb +0 -22
  53. data/tasks/sufia.rake +0 -173
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.1
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-18 00:00:00.000000000 Z
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sufia-models
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.6.1
19
+ version: 3.7.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.6.1
26
+ version: 3.7.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: blacklight_advanced_search
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: blacklight
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '4.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '4.5'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: hydra-batch-edit
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -114,20 +128,6 @@ dependencies:
114
128
  - - '='
115
129
  - !ruby/object:Gem::Version
116
130
  version: 0.2.3
117
- - !ruby/object:Gem::Dependency
118
- name: rainbow
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - '='
122
- - !ruby/object:Gem::Version
123
- version: 1.1.4
124
- type: :runtime
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - '='
129
- - !ruby/object:Gem::Version
130
- version: 1.1.4
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: font-awesome-sass-rails
133
133
  requirement: !ruby/object:Gem::Requirement
@@ -222,11 +222,13 @@ files:
222
222
  - app/assets/images/ui-icons_ffffff_256x240.png
223
223
  - app/assets/javascripts/contact_form.js
224
224
  - app/assets/javascripts/sufia.js
225
+ - app/assets/javascripts/sufia/audio.js
225
226
  - app/assets/javascripts/sufia/batch_select_all.js
226
227
  - app/assets/javascripts/sufia/edit_metadata.js
227
228
  - app/assets/javascripts/sufia/fileupload.js
228
229
  - app/assets/javascripts/sufia/multiForm.js
229
230
  - app/assets/javascripts/sufia/permissions.js
231
+ - app/assets/javascripts/sufia/single_use_link.js
230
232
  - app/assets/javascripts/sufia/trophy.js
231
233
  - app/assets/javascripts/sufia/uploader.js
232
234
  - app/assets/javascripts/terms_of_service.js
@@ -244,6 +246,7 @@ files:
244
246
  - app/assets/stylesheets/generic_files.css
245
247
  - app/assets/stylesheets/jquery-ui.css
246
248
  - app/assets/stylesheets/reset_body.css
249
+ - app/assets/stylesheets/sufia-audio-overrides.css
247
250
  - app/assets/stylesheets/sufia.css.scss
248
251
  - app/assets/stylesheets/trophy.css
249
252
  - app/assets/stylesheets/video-js.css
@@ -640,9 +643,7 @@ files:
640
643
  - sufia-models/lib/generators/sufia/models/templates/migrations/create_version_committers.rb
641
644
  - sufia-models/lib/sufia/models.rb
642
645
  - sufia-models/lib/sufia/models/active_fedora/redis.rb
643
- - sufia-models/lib/sufia/models/active_record/deprecated_attr_accessible.rb
644
646
  - sufia-models/lib/sufia/models/active_record/redis.rb
645
- - sufia-models/lib/sufia/models/active_support/core_ext/marshal.rb
646
647
  - sufia-models/lib/sufia/models/engine.rb
647
648
  - sufia-models/lib/sufia/models/file_content.rb
648
649
  - sufia-models/lib/sufia/models/file_content/versions.rb
@@ -685,7 +686,6 @@ files:
685
686
  - tasks/release.rake
686
687
  - tasks/sufia-db.rake
687
688
  - tasks/sufia-dev.rake
688
- - tasks/sufia.rake
689
689
  - vendor/assets/fonts/Lato-Light.eot
690
690
  - vendor/assets/fonts/Lato-Light.ttf
691
691
  - vendor/assets/fonts/fontawesome-webfont.svg
@@ -734,7 +734,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
734
734
  version: '0'
735
735
  requirements: []
736
736
  rubyforge_project:
737
- rubygems_version: 2.1.11
737
+ rubygems_version: 2.2.1
738
738
  signing_key:
739
739
  specification_version: 4
740
740
  summary: Sufia was extracted from ScholarSphere developed by Penn State University
@@ -832,4 +832,3 @@ test_files:
832
832
  - spec/views/dashboard/index_partials/_thumbnail_display.html.erb_spec.rb
833
833
  - spec/views/generic_file/edit.html.erb_spec.rb
834
834
  - spec/views/users/show.html.erb_spec.rb
835
- has_rdoc:
@@ -1,16 +0,0 @@
1
- module ActiveRecord
2
- module DeprecatedAttrAccessible
3
- extend ActiveSupport::Concern
4
- module ClassMethods
5
- def deprecated_attr_accessible(*args)
6
- if Rails::VERSION::MAJOR < 4 || defined?(ProtectedAttributes)
7
- ActiveSupport::Deprecation.warn("deprecated_attr_accessible is, wait for it, deprecated. It will be removed when Sufia stops support Rails 3.")
8
- attr_accessible(*args)
9
- end
10
- end
11
- end
12
- end
13
- end
14
- ActiveRecord::Base.class_eval do
15
- include ActiveRecord::DeprecatedAttrAccessible
16
- end
@@ -1,22 +0,0 @@
1
- ### This patch is going into active-support (rails 4). https://github.com/rails/rails/pull/8246
2
- module Marshal
3
- class << self
4
- def load_with_autoloading(source)
5
- begin
6
- load_without_autoloading(source)
7
- rescue ArgumentError, NameError => exc
8
- if exc.message.match(%r|undefined class/module (.+)|)
9
- # try loading the class/module
10
- $1.constantize
11
- # if it is a IO we need to go back to read the object
12
- source.rewind if source.respond_to?(:rewind)
13
- retry
14
- else
15
- raise exc
16
- end
17
- end
18
- end
19
-
20
- alias_method_chain :load, :autoloading
21
- end
22
- end
@@ -1,173 +0,0 @@
1
- require 'rdf'
2
- require 'rdf/rdfxml'
3
- require 'rubygems'
4
- require 'action_view'
5
- require 'rainbow'
6
- include ActionView::Helpers::NumberHelper
7
-
8
- namespace :sufia do
9
- desc "Restore missing user accounts"
10
- task :restore_users => :environment do
11
- # Query Solr for unique depositors
12
- terms_url = "#{ActiveFedora.solr_config[:url]}/terms?terms.fl=depositor_t&terms.sort=index&terms.limit=5000&wt=json&omitHeader=true"
13
- # Parse JSON response (looks like {"terms":{"depositor_t":["mjg36",3]}})
14
- terms_json = open(terms_url).read
15
- depositor_logins = JSON.parse(terms_json)['terms']['depositor_t'] rescue []
16
- # Filter out doc counts, and leave logins
17
- depositor_logins.select! { |item| item.is_a? String }
18
- # Check for depositor User accounts & restore/populate if missing
19
- depositor_logins.each { |l| User.create(login: l).populate_attributes if User.find_by_login(l).nil? }
20
- # Then iterate over other User accounts and populate their attributes just in case
21
- User.all.each do |u|
22
- # Skip user if already populated earlier
23
- next if depositor_logins.include? u.login
24
- u.populate_attributes
25
- end
26
- end
27
-
28
- desc "Report users quota in SS"
29
- task :quota_report => :environment do
30
- caution_sz = 3000000000 # 3GB
31
- warning_sz = 5000000000 # 5GB
32
- problem_sz = 10000000000 # 10GB
33
- # loop over users in active record
34
- users = {}
35
- User.all.each do |u|
36
- # for each user query get list of documents
37
- user_files = GenericFile.find( :depositor_t => u.login )
38
- # sum the size of the users docs
39
- sz = 0
40
- user_files.each do |f|
41
- #puts number_to_human_size(f.file_size.first.to_i)
42
- sz += f.file_size.first.to_i
43
- #puts "#{sz}:#{f.file_size.first}"
44
- end
45
- uname = "#{u.login} #{u.name}"
46
- users = users.merge(uname => sz)
47
- end
48
- longest_key = users.keys.max { |a,b| a.length <=> b.length }
49
- printf "%-#{longest_key.length}s %s".background(:white).foreground(:black), "User", "Space Used"
50
- puts ""
51
- users.each_pair do |k,v|
52
- if v >= problem_sz
53
- printf "%-#{longest_key.length}s %s".background(:red).foreground(:white).blink, k, number_to_human_size(v)
54
- elsif v >= warning_sz
55
- printf "%-#{longest_key.length}s %s".background(:red).foreground(:white), k, number_to_human_size(v)
56
- elsif v >= caution_sz
57
- printf "%-#{longest_key.length}s %s".background(:yellow).foreground(:black), k, number_to_human_size(v)
58
- else
59
- printf "%-#{longest_key.length}s %s".background(:black).foreground(:white), k, number_to_human_size(v)
60
- end
61
- puts ""
62
- end
63
-
64
- end
65
-
66
- desc "(Re-)Generate the secret token"
67
- task :generate_secret => :environment do
68
- include ActiveSupport
69
- File.open("#{Rails.root}/config/initializers/secret_token.rb", 'w') do |f|
70
- f.puts "#{Rails.application.class.parent_name}::Application.config.secret_token = '#{SecureRandom.hex(64)}'"
71
- end
72
- end
73
-
74
- desc "Characterize uncharacterized files"
75
- task :characterize => :environment do
76
- GenericFile.find(:all, :rows => GenericFile.count).each do |gf|
77
- if gf.characterization.content.nil?
78
- Resque.enqueue(CharacterizeJob, gf.pid)
79
- end
80
- end
81
- end
82
-
83
- desc "Characterize uncharacterized files"
84
- task :characterize! => :environment do
85
- GenericFile.find(:all, :rows => GenericFile.count).each do |gf|
86
- Resque.enqueue(CharacterizeJob, gf.pid)
87
- end
88
- end
89
-
90
- desc "Re-solrize all objects"
91
- task :resolrize => ['solr:reindex']
92
-
93
- namespace :export do
94
- desc "Dump metadata as RDF/XML for e.g. Summon integration"
95
- task :rdfxml => :environment do
96
- raise "rake sufia:export:rdfxml output=FILE" unless ENV['output']
97
- export_file = ENV['output']
98
- triples = RDF::Repository.new
99
- rows = GenericFile.count
100
- GenericFile.find(:all, :rows => rows).each do |gf|
101
- next unless gf.rightsMetadata.groups["public"] == "read" && gf.descMetadata.content
102
- RDF::Reader.for(:ntriples).new(gf.descMetadata.content) do |reader|
103
- reader.each_statement do |statement|
104
- triples << statement
105
- end
106
- end
107
- end
108
- unless triples.empty?
109
- RDF::Writer.for(:rdfxml).open(export_file) do |writer|
110
- writer << triples
111
- end
112
- end
113
- end
114
- end
115
-
116
- namespace :harvest do
117
- desc "Harvest LC subjects"
118
- task :lc_subjects => :environment do |cmd, args|
119
- vocabs = ["/tmp/subjects-skos.nt"]
120
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs)
121
- end
122
-
123
- desc "Harvest DBpedia titles"
124
- task :dbpedia_titles => :environment do |cmd, args|
125
- vocabs = ["/tmp/labels_en.nt"]
126
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs, :predicate => RDF::RDFS.label)
127
- end
128
-
129
- desc "Harvest DBpedia categories"
130
- task :dbpedia_categories => :environment do |cmd, args|
131
- vocabs = ["/tmp/category_labels_en.nt"]
132
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs, :predicate => RDF::RDFS.label)
133
- end
134
-
135
- desc "Harvest LC MARC geographic areas"
136
- task :lc_geographic => :environment do |cmd, args|
137
- vocabs = ["/tmp/vocabularygeographicAreas.nt"]
138
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs)
139
- end
140
-
141
- desc "Harvest Geonames cities"
142
- task :geonames_cities => :environment do |cmd, args|
143
- vocabs = ["/tmp/cities1000.txt"]
144
- LocalAuthority.harvest_tsv(cmd.to_s.split(":").last, vocabs, :prefix => 'http://sws.geonames.org/')
145
- end
146
-
147
- desc "Harvest Lexvo languages"
148
- task :lexvo_languages => :environment do |cmd, args|
149
- vocabs = ["/tmp/lexvo_2012-03-04.rdf"]
150
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs,
151
- :format => 'rdfxml',
152
- :predicate => RDF::URI("http://www.w3.org/2008/05/skos#prefLabel"))
153
- end
154
-
155
- desc "Harvest LC genres"
156
- task :lc_genres => :environment do |cmd, args|
157
- vocabs = ["/tmp/authoritiesgenreForms.nt"]
158
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs)
159
- end
160
-
161
- desc "Harvest LC name authorities"
162
- task :lc_names => :environment do |cmd, args|
163
- vocabs = ["/tmp/authoritiesnames.nt.skos"]
164
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs)
165
- end
166
-
167
- desc "Harvest LC thesaurus of graphic materials"
168
- task :lc_graphics => :environment do |cmd, args|
169
- vocabs = ["/tmp/vocabularygraphicMaterials.nt"]
170
- LocalAuthority.harvest_rdf(cmd.to_s.split(":").last, vocabs)
171
- end
172
- end
173
- end