sufia 3.6.1 → 3.7.0

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