sufia 4.0.0.rc2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +443 -621
- data/LICENSE.md +11 -174
- data/README.md +21 -7
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia/batch.js +7 -2
- data/app/assets/javascripts/sufia/dashboard_actions.js +21 -10
- data/app/assets/javascripts/terms_of_service.js +1 -1
- data/app/assets/stylesheets/batch-edit.css.scss +21 -0
- data/app/assets/stylesheets/collections.css.scss +4 -0
- data/app/assets/stylesheets/home-page.css.scss +8 -1
- data/app/assets/stylesheets/styles.css.scss +8 -5
- data/app/assets/stylesheets/sufia.css.scss +1 -0
- data/app/builders/sufia/bootstrap_breadcrumbs_builder.rb +28 -0
- data/app/controllers/collections_controller.rb +2 -0
- data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +3 -1
- data/app/controllers/concerns/sufia/breadcrumbs.rb +41 -0
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +3 -1
- data/app/controllers/concerns/sufia/homepage_controller.rb +1 -1
- data/app/helpers/sufia/blacklight_override.rb +1 -1
- data/app/helpers/sufia/records_helper_behavior.rb +19 -5
- data/app/helpers/sufia/sufia_helper_behavior.rb +13 -6
- data/app/models/concerns/sufia/solr_document_behavior.rb +4 -0
- data/app/views/_user_util_links.html.erb +4 -2
- data/app/views/batch/_metadata.html.erb +25 -31
- data/app/views/batch/_more_metadata.html.erb +6 -5
- data/app/views/batch/edit.html.erb +3 -3
- data/app/views/batch_edits/edit.html.erb +1 -1
- data/app/views/catalog/_search_form.html.erb +1 -3
- data/app/views/collections/_form_for_select_collection.html.erb +6 -3
- data/app/views/collections/_show_actions.html.erb +2 -2
- data/app/views/collections/edit.html.erb +1 -3
- data/app/views/collections/show.html.erb +1 -2
- data/app/views/generic_files/_field_form.html.erb +3 -3
- data/app/views/generic_files/_permission_form.html.erb +20 -3
- data/app/views/generic_files/edit.html.erb +1 -1
- data/app/views/generic_files/new.html.erb +8 -7
- data/app/views/generic_files/show.html.erb +1 -1
- data/app/views/generic_files/stats.html.erb +1 -1
- data/app/views/generic_files/upload/_form_fields.html.erb +4 -4
- data/app/views/homepage/_featured_fields.html.erb +20 -18
- data/app/views/homepage/_home_content.html.erb +8 -7
- data/app/views/homepage/_recent_document.html.erb +3 -4
- data/app/views/homepage/_recents.html.erb +4 -1
- data/app/views/homepage/_tagcloud.html.erb +5 -4
- data/app/views/kaminari/blacklight_compact/_paginator.html.erb +23 -0
- data/app/views/my/_action_menu.html.erb +15 -12
- data/app/views/my/_collection_action_menu.html.erb +8 -6
- data/app/views/my/_facets.html.erb +1 -1
- data/app/views/my/_index_partials/_default_group.html.erb +1 -1
- data/app/views/my/_index_partials/_list_collections.html.erb +12 -6
- data/app/views/my/_index_partials/_list_files.html.erb +14 -6
- data/app/views/my/index.html.erb +7 -2
- data/app/views/records/edit_fields/_suffix.html.erb +0 -1
- data/app/views/shared/_attributes.html.erb +6 -6
- data/app/views/users/_notify_link.html.erb +1 -0
- data/app/views/users/_notify_number.html.erb +3 -2
- data/config/locales/sufia.en.yml +24 -4
- data/lib/sufia.rb +2 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/actors/generic_file/actor_spec.rb +21 -2
- data/spec/controllers/batch_controller_spec.rb +3 -3
- data/spec/controllers/batch_edits_controller_spec.rb +4 -0
- data/spec/controllers/catalog_controller_spec.rb +3 -3
- data/spec/controllers/collections_controller_spec.rb +5 -1
- data/spec/controllers/generic_files_controller_spec.rb +21 -4
- data/spec/controllers/homepage_controller_spec.rb +8 -1
- data/spec/features/browse_dashboard_files_spec.rb +1 -1
- data/spec/features/collection_spec.rb +3 -3
- data/spec/helpers/records_helper_spec.rb +53 -25
- data/spec/jobs/import_url_job_spec.rb +2 -1
- data/spec/lib/sufia/breadcrumbs_spec.rb +80 -0
- data/spec/lib/sufia/messages_spec.rb +8 -1
- data/spec/models/characterization_spec.rb +23 -0
- data/spec/models/fits_datastream_spec.rb +20 -23
- data/spec/support/features/session_helpers.rb +1 -1
- data/spec/views/catalog/index.html.erb_spec.rb +2 -0
- data/spec/views/generic_file/stats.html.erb_spec.rb +0 -6
- data/spec/views/users/show.html.erb_spec.rb +19 -0
- data/sufia-models/app/actors/sufia/generic_file/actor.rb +2 -1
- data/sufia-models/app/models/concerns/sufia/generic_file/characterization.rb +3 -4
- data/sufia-models/app/models/concerns/sufia/generic_file/full_text_indexing.rb +21 -14
- data/sufia-models/app/models/concerns/sufia/generic_file/mime_types.rb +4 -0
- data/sufia-models/app/models/file_usage.rb +6 -2
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/sufia.gemspec +1 -0
- metadata +28 -9
- data/app/views/generic_files/_breadcrumbs.html.erb +0 -31
- data/spec/views/generic_file/_breadcrumbs.html.erb_spec.rb +0 -32
@@ -46,7 +46,8 @@ describe ImportUrlJob do
|
|
46
46
|
it "should create a content datastream" do
|
47
47
|
Net::HTTP.any_instance.should_receive(:request_get).with(file_path).and_yield(mock_response)
|
48
48
|
job.run
|
49
|
-
generic_file.reload.content.size.
|
49
|
+
expect(generic_file.reload.content.size).to eq 4218
|
50
|
+
expect(generic_file.content.dsLabel).to eq file_path
|
50
51
|
end
|
51
52
|
end
|
52
53
|
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Sufia::Breadcrumbs do
|
4
|
+
|
5
|
+
let(:crumbs) do
|
6
|
+
TestClass.new
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:sufia) do
|
10
|
+
Sufia::Engine.routes.url_helpers
|
11
|
+
end
|
12
|
+
|
13
|
+
before do
|
14
|
+
class TestClass
|
15
|
+
attr_accessor :trail, :request
|
16
|
+
include Sufia::Breadcrumbs
|
17
|
+
def initialize
|
18
|
+
@trail = []
|
19
|
+
@request = true # avoids the allow_message_expectations_on_nil warning
|
20
|
+
end
|
21
|
+
def add_breadcrumb text, link
|
22
|
+
@trail << [text, link]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
allow_any_instance_of(TestClass).to receive(:sufia).and_return(sufia)
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#default_trail" do
|
29
|
+
context "when the user is logged in" do
|
30
|
+
before do
|
31
|
+
crumbs.stub(:user_signed_in?) { true }
|
32
|
+
end
|
33
|
+
specify "the default trail is nil" do
|
34
|
+
expect(crumbs.default_trail).to eql([[I18n.t('sufia.dashboard.title'), sufia.dashboard_index_path]])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
context "when there is no user" do
|
38
|
+
before do
|
39
|
+
crumbs.stub(:user_signed_in?) { false }
|
40
|
+
end
|
41
|
+
specify "the default trail is nil" do
|
42
|
+
expect(crumbs.default_trail).to be_nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#trail_from_referer" do
|
48
|
+
context "when coming from the catalog" do
|
49
|
+
let(:referer) { "http://...catalog/" }
|
50
|
+
before do
|
51
|
+
allow(crumbs.request).to receive(:referer).and_return(referer)
|
52
|
+
end
|
53
|
+
specify "the trail goes back to the search" do
|
54
|
+
expect(crumbs.trail_from_referer).to eql([[I18n.t('sufia.bread_crumb.search_results'), referer]])
|
55
|
+
end
|
56
|
+
end
|
57
|
+
context "when coming from the dashboard" do
|
58
|
+
before do
|
59
|
+
allow(crumbs.request).to receive(:referer).and_return("http://...dashboard/")
|
60
|
+
crumbs.stub(:user_signed_in?) { true }
|
61
|
+
end
|
62
|
+
specify "the trail goes back to the user's files" do
|
63
|
+
allow(crumbs).to receive(:controller_name).and_return("my/files")
|
64
|
+
expect(crumbs.trail_from_referer.first).to eql([I18n.t('sufia.dashboard.title'), sufia.dashboard_index_path])
|
65
|
+
expect(crumbs.trail_from_referer.last).to eql([I18n.t('sufia.dashboard.my.files'), sufia.dashboard_files_path])
|
66
|
+
end
|
67
|
+
specify "the trail goes back to the user's collections" do
|
68
|
+
allow(crumbs).to receive(:controller_name).and_return("my/collections")
|
69
|
+
expect(crumbs.trail_from_referer.first).to eql([I18n.t('sufia.dashboard.title'), sufia.dashboard_index_path])
|
70
|
+
expect(crumbs.trail_from_referer.last).to eql([I18n.t('sufia.dashboard.my.collections'), sufia.dashboard_collections_path])
|
71
|
+
end
|
72
|
+
specify "the trail goes back to the user's files when on the batch edit page" do
|
73
|
+
allow(crumbs).to receive(:controller_name).and_return("batch_edit")
|
74
|
+
expect(crumbs.trail_from_referer.first).to eql([I18n.t('sufia.dashboard.title'), sufia.dashboard_index_path])
|
75
|
+
expect(crumbs.trail_from_referer.last).to eql([I18n.t('sufia.dashboard.my.files'), sufia.dashboard_files_path])
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -3,10 +3,17 @@ require 'spec_helper'
|
|
3
3
|
describe Sufia::Messages do
|
4
4
|
|
5
5
|
let(:message) do
|
6
|
+
TestClass.new
|
7
|
+
end
|
8
|
+
|
9
|
+
before do
|
6
10
|
class TestClass
|
7
11
|
include Sufia::Messages
|
8
12
|
end
|
9
|
-
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
Object.send(:remove_const, :TestClass)
|
10
17
|
end
|
11
18
|
|
12
19
|
let(:batch_id) { "1" }
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Sufia::GenericFile::Characterization do
|
4
|
+
before do
|
5
|
+
class TestClass < ActiveFedora::Base
|
6
|
+
include Sufia::GenericFile::Characterization
|
7
|
+
|
8
|
+
has_file_datastream 'content', type: FileContentDatastream
|
9
|
+
attr_accessor :title, :creator
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
after do
|
14
|
+
Object.send(:remove_const, :TestClass)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { TestClass.new }
|
18
|
+
|
19
|
+
it "should not depend on anything except a file datastream and some property accessors" do
|
20
|
+
expect { subject.characterize }.to_not raise_error
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -8,31 +8,28 @@ describe FitsDatastream, unless: $in_travis do
|
|
8
8
|
@file.characterize
|
9
9
|
end
|
10
10
|
it "should have a format label" do
|
11
|
-
@file.format_label.
|
11
|
+
expect(@file.format_label).to eq ["Portable Network Graphics"]
|
12
12
|
end
|
13
13
|
it "should have a mime type" do
|
14
|
-
@file.mime_type.
|
14
|
+
expect(@file.mime_type).to eq "image/png"
|
15
15
|
end
|
16
16
|
it "should have a file size" do
|
17
|
-
@file.file_size.
|
18
|
-
end
|
19
|
-
it "should have a file size" do
|
20
|
-
@file.file_size.should == ["4218"]
|
17
|
+
expect(@file.file_size).to eq ["4218"]
|
21
18
|
end
|
22
19
|
it "should have a last modified timestamp" do
|
23
|
-
@file.last_modified.
|
20
|
+
expect(@file.last_modified).to_not be_empty
|
24
21
|
end
|
25
22
|
it "should have a filename" do
|
26
|
-
@file.filename.
|
23
|
+
expect(@file.filename).to_not be_empty
|
27
24
|
end
|
28
25
|
it "should have a checksum" do
|
29
|
-
@file.original_checksum.
|
26
|
+
expect(@file.original_checksum).to eq ["28da6259ae5707c68708192a40b3e85c"]
|
30
27
|
end
|
31
28
|
it "should have a height" do
|
32
|
-
@file.height.
|
29
|
+
expect(@file.height).to eq ["50"]
|
33
30
|
end
|
34
31
|
it "should have a width" do
|
35
|
-
@file.width.
|
32
|
+
expect(@file.width).to eq ["50"]
|
36
33
|
end
|
37
34
|
end
|
38
35
|
describe "video" do
|
@@ -42,38 +39,38 @@ describe FitsDatastream, unless: $in_travis do
|
|
42
39
|
@file.characterize
|
43
40
|
end
|
44
41
|
it "should have a format label" do
|
45
|
-
@file.format_label.
|
42
|
+
expect(@file.format_label).to eq ["ISO Media, MPEG v4 system, version 2"]
|
46
43
|
end
|
47
44
|
it "should have a mime type" do
|
48
|
-
@file.mime_type.
|
45
|
+
expect(@file.mime_type).to eq "video/mp4"
|
49
46
|
end
|
50
47
|
it "should have a file size" do
|
51
|
-
@file.file_size.
|
48
|
+
expect(@file.file_size).to eq ["245779"]
|
52
49
|
end
|
53
50
|
it "should have a last modified timestamp" do
|
54
|
-
@file.last_modified.
|
51
|
+
expect(@file.last_modified).to_not be_empty
|
55
52
|
end
|
56
53
|
it "should have a filename" do
|
57
|
-
@file.filename.
|
54
|
+
expect(@file.filename).to_not be_empty
|
58
55
|
end
|
59
56
|
it "should have a checksum" do
|
60
|
-
@file.original_checksum.
|
57
|
+
expect(@file.original_checksum).to eq ["dc77a8de8c091c19d86df74280f6feb7"]
|
61
58
|
end
|
62
59
|
it "should have a width" do
|
63
|
-
@file.width.
|
60
|
+
expect(@file.width).to eq ["190"]
|
64
61
|
end
|
65
62
|
it "should have a height" do
|
66
|
-
@file.height.
|
63
|
+
expect(@file.height).to eq ["240"]
|
67
64
|
end
|
68
65
|
it "should have a sample_rate" do
|
69
|
-
@file.sample_rate.
|
66
|
+
expect(@file.sample_rate).to eq ["32000"]
|
70
67
|
end
|
71
68
|
it "should have a duration" do
|
72
|
-
@file.duration.
|
69
|
+
expect(@file.duration).to eq ["4.97 s"]
|
73
70
|
end
|
74
71
|
it "should have a frame_rate" do
|
75
|
-
@file.frame_rate.count.
|
76
|
-
@file.frame_rate[0].to_f.
|
72
|
+
expect(@file.frame_rate.count).to eq 1
|
73
|
+
expect(@file.frame_rate[0].to_f).to eq 30.0
|
77
74
|
end
|
78
75
|
end
|
79
76
|
end
|
@@ -29,6 +29,8 @@ describe 'catalog/index.html.erb' do
|
|
29
29
|
it 'appears on page without error' do
|
30
30
|
render
|
31
31
|
expect(rendered).to include(@collection.title)
|
32
|
+
page = Capybara::Node::Simple.new(rendered)
|
33
|
+
expect(page).to have_selector("span.glyphicon.glyphicon-th.collection-icon-search")
|
32
34
|
end
|
33
35
|
|
34
36
|
end
|
@@ -33,12 +33,6 @@ describe 'generic_files/stats.html.erb' do
|
|
33
33
|
assign(:stats, no_stats)
|
34
34
|
end
|
35
35
|
|
36
|
-
it 'shows breadcrumbs' do
|
37
|
-
render
|
38
|
-
page = Capybara::Node::Simple.new(rendered)
|
39
|
-
expect(page).to have_selector('span.active', text: 'file1.txt')
|
40
|
-
end
|
41
|
-
|
42
36
|
context 'when no analytics results returned' do
|
43
37
|
before do
|
44
38
|
assign(:pageviews, 0)
|
@@ -28,4 +28,23 @@ describe 'users/show.html.erb' do
|
|
28
28
|
render
|
29
29
|
rendered.should match /Joined on #{join_date.strftime("%b %d, %Y")}/
|
30
30
|
end
|
31
|
+
|
32
|
+
context "with trophy" do
|
33
|
+
|
34
|
+
let(:generic_file) { GenericFile.new(title: ["Fake object"], pid:"sufia:abc123") }
|
35
|
+
before do
|
36
|
+
allow(view).to receive(:search_session).and_return({})
|
37
|
+
allow(view).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
|
38
|
+
allow(view).to receive(:current_search_session).and_return(nil)
|
39
|
+
assign(:trophies, [generic_file])
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should have trophy" do
|
43
|
+
render
|
44
|
+
page = Capybara::Node::Simple.new(rendered)
|
45
|
+
expect(page).to have_selector(".tab-content > div#contributions.tab-pane")
|
46
|
+
expect(page).to have_selector("#trophyrow_#{generic_file.noid}")
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
31
50
|
end
|
@@ -28,7 +28,8 @@ module Sufia::GenericFile
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def create_content(file, file_name, dsid)
|
31
|
-
generic_file.
|
31
|
+
fname = generic_file.label.blank? ? file_name.truncate(255) : generic_file.label
|
32
|
+
generic_file.add_file(file, dsid, fname)
|
32
33
|
save_characterize_and_record_committer do
|
33
34
|
if Sufia.config.respond_to?(:after_create_content)
|
34
35
|
Sufia.config.after_create_content.call(generic_file, user)
|
@@ -42,11 +42,10 @@ module Sufia
|
|
42
42
|
|
43
43
|
## Extract the metadata from the content datastream and record it in the characterization datastream
|
44
44
|
def characterize
|
45
|
-
metadata =
|
46
|
-
|
47
|
-
|
45
|
+
metadata = content.extract_metadata
|
46
|
+
characterization.ng_xml = metadata if metadata.present?
|
47
|
+
append_metadata
|
48
48
|
self.filename = [self.label]
|
49
|
-
extract_content
|
50
49
|
save
|
51
50
|
end
|
52
51
|
|
@@ -7,21 +7,28 @@ module Sufia
|
|
7
7
|
has_file_datastream 'full_text', versionable: false
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
req = Net::HTTP.new(uri.host, uri.port)
|
14
|
-
resp = req.post(uri.to_s, self.content.content, {
|
15
|
-
'Content-type' => "#{self.mime_type};charset=utf-8",
|
16
|
-
'Content-Length' => self.content.content.size.to_s
|
17
|
-
})
|
18
|
-
raise "URL '#{uri}' returned code #{resp.code}" unless resp.code == "200"
|
19
|
-
self.content.content.rewind if self.content.content.respond_to?(:rewind)
|
20
|
-
extracted_text = JSON.parse(resp.body)[''].rstrip
|
21
|
-
full_text.content = extracted_text if extracted_text.present?
|
22
|
-
rescue => e
|
23
|
-
logger.error("Error extracting content from #{self.pid}: #{e.inspect}")
|
10
|
+
def append_metadata
|
11
|
+
super
|
12
|
+
extract_content
|
24
13
|
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def extract_content
|
18
|
+
url = Blacklight.solr_config[:url] ? Blacklight.solr_config[:url] : Blacklight.solr_config["url"] ? Blacklight.solr_config["url"] : Blacklight.solr_config[:fulltext] ? Blacklight.solr_config[:fulltext]["url"] : Blacklight.solr_config[:default]["url"]
|
19
|
+
uri = URI("#{url}/update/extract?extractOnly=true&wt=json&extractFormat=text")
|
20
|
+
req = Net::HTTP.new(uri.host, uri.port)
|
21
|
+
resp = req.post(uri.to_s, self.content.content, {
|
22
|
+
'Content-type' => "#{self.mime_type};charset=utf-8",
|
23
|
+
'Content-Length' => self.content.content.size.to_s
|
24
|
+
})
|
25
|
+
raise "URL '#{uri}' returned code #{resp.code}" unless resp.code == "200"
|
26
|
+
self.content.content.rewind if self.content.content.respond_to?(:rewind)
|
27
|
+
extracted_text = JSON.parse(resp.body)[''].rstrip
|
28
|
+
full_text.content = extracted_text if extracted_text.present?
|
29
|
+
rescue => e
|
30
|
+
logger.error("Error extracting content from #{self.pid}: #{e.inspect}")
|
31
|
+
end
|
25
32
|
end
|
26
33
|
end
|
27
34
|
end
|
@@ -23,6 +23,10 @@ module Sufia
|
|
23
23
|
self.class.office_document_mime_types.include? self.mime_type
|
24
24
|
end
|
25
25
|
|
26
|
+
def collection?
|
27
|
+
false
|
28
|
+
end
|
29
|
+
|
26
30
|
def file_format
|
27
31
|
return nil if self.mime_type.blank? and self.format_label.blank?
|
28
32
|
return self.mime_type.split('/')[1]+ " ("+self.format_label.join(", ")+")" unless self.mime_type.blank? or self.format_label.blank?
|
@@ -28,12 +28,16 @@ class FileUsage
|
|
28
28
|
|
29
29
|
private
|
30
30
|
|
31
|
+
# Sufia::Download is sent to Sufia::Analytics.profile as #sufia__download
|
32
|
+
# see Legato::ProfileMethods.method_name_from_klass
|
31
33
|
def download_statistics
|
32
|
-
Sufia::Analytics.profile.
|
34
|
+
Sufia::Analytics.profile.sufia__download(sort: 'date').for_file(self.id)
|
33
35
|
end
|
34
36
|
|
37
|
+
# Sufia::Pageview is sent to Sufia::Analytics.profile as #sufia__pageview
|
38
|
+
# see Legato::ProfileMethods.method_name_from_klass
|
35
39
|
def pageview_statistics
|
36
|
-
Sufia::Analytics.profile.
|
40
|
+
Sufia::Analytics.profile.sufia__pageview(sort: 'date').for_path(self.path)
|
37
41
|
end
|
38
42
|
|
39
43
|
def pageviews_to_flot values = Array.new
|
data/sufia.gemspec
CHANGED
@@ -41,6 +41,7 @@ Gem::Specification.new do |gem|
|
|
41
41
|
gem.add_dependency 'bootstrap_form', '~> 2.1'
|
42
42
|
gem.add_dependency 'bootstrap-sass', '< 3.2'
|
43
43
|
gem.add_dependency 'blacklight-gallery'
|
44
|
+
gem.add_dependency 'breadcrumbs_on_rails', '~>2.3.0'
|
44
45
|
|
45
46
|
gem.add_development_dependency 'engine_cart'
|
46
47
|
gem.add_development_dependency 'mida'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sufia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sufia-models
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 4.0.0
|
20
|
+
version: 4.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 4.0.0
|
27
|
+
version: 4.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: blacklight_advanced_search
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -269,6 +269,20 @@ dependencies:
|
|
269
269
|
- - ">="
|
270
270
|
- !ruby/object:Gem::Version
|
271
271
|
version: '0'
|
272
|
+
- !ruby/object:Gem::Dependency
|
273
|
+
name: breadcrumbs_on_rails
|
274
|
+
requirement: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - "~>"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: 2.3.0
|
279
|
+
type: :runtime
|
280
|
+
prerelease: false
|
281
|
+
version_requirements: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - "~>"
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: 2.3.0
|
272
286
|
- !ruby/object:Gem::Dependency
|
273
287
|
name: engine_cart
|
274
288
|
requirement: !ruby/object:Gem::Requirement
|
@@ -481,6 +495,7 @@ files:
|
|
481
495
|
- app/assets/javascripts/sufia/trophy.js
|
482
496
|
- app/assets/javascripts/sufia/uploader.js
|
483
497
|
- app/assets/javascripts/terms_of_service.js
|
498
|
+
- app/assets/stylesheets/batch-edit.css.scss
|
484
499
|
- app/assets/stylesheets/catalog.css.scss
|
485
500
|
- app/assets/stylesheets/collections.css.scss
|
486
501
|
- app/assets/stylesheets/featured.css.scss
|
@@ -501,11 +516,13 @@ files:
|
|
501
516
|
- app/assets/stylesheets/sufia.css.scss
|
502
517
|
- app/assets/stylesheets/tagcloud.css
|
503
518
|
- app/assets/stylesheets/usage-stats.css
|
519
|
+
- app/builders/sufia/bootstrap_breadcrumbs_builder.rb
|
504
520
|
- app/controllers/authorities_controller.rb
|
505
521
|
- app/controllers/batch_controller.rb
|
506
522
|
- app/controllers/batch_edits_controller.rb
|
507
523
|
- app/controllers/collections_controller.rb
|
508
524
|
- app/controllers/concerns/sufia/batch_edits_controller_behavior.rb
|
525
|
+
- app/controllers/concerns/sufia/breadcrumbs.rb
|
509
526
|
- app/controllers/concerns/sufia/catalog.rb
|
510
527
|
- app/controllers/concerns/sufia/contact_form_controller_behavior.rb
|
511
528
|
- app/controllers/concerns/sufia/controller.rb
|
@@ -642,7 +659,6 @@ files:
|
|
642
659
|
- app/views/generic_files/_asset_permissions_denial_flash.html.erb
|
643
660
|
- app/views/generic_files/_asset_saved_flash.html.erb
|
644
661
|
- app/views/generic_files/_asset_updated_flash.html.erb
|
645
|
-
- app/views/generic_files/_breadcrumbs.html.erb
|
646
662
|
- app/views/generic_files/_browse_everything.html.erb
|
647
663
|
- app/views/generic_files/_descriptions.html.erb
|
648
664
|
- app/views/generic_files/_edit.js.erb
|
@@ -696,6 +712,7 @@ files:
|
|
696
712
|
- app/views/kaminari/blacklight/_page.html.erb
|
697
713
|
- app/views/kaminari/blacklight/_paginator.html.erb
|
698
714
|
- app/views/kaminari/blacklight/_prev_page.html.erb
|
715
|
+
- app/views/kaminari/blacklight_compact/_paginator.html.erb
|
699
716
|
- app/views/layouts/_head_tag_content.html.erb
|
700
717
|
- app/views/layouts/error.html.erb
|
701
718
|
- app/views/layouts/homepage.html.erb
|
@@ -891,6 +908,7 @@ files:
|
|
891
908
|
- spec/jobs/import_url_job_spec.rb
|
892
909
|
- spec/jobs/ingest_local_file_job_spec.rb
|
893
910
|
- spec/lib/sufia/analytics_spec.rb
|
911
|
+
- spec/lib/sufia/breadcrumbs_spec.rb
|
894
912
|
- spec/lib/sufia/id_service_spec.rb
|
895
913
|
- spec/lib/sufia/messages_spec.rb
|
896
914
|
- spec/lib/sufia/readable_permissions_spec.rb
|
@@ -898,6 +916,7 @@ files:
|
|
898
916
|
- spec/lib/sufia/writable_permissions_spec.rb
|
899
917
|
- spec/models/ability_spec.rb
|
900
918
|
- spec/models/batch_spec.rb
|
919
|
+
- spec/models/characterization_spec.rb
|
901
920
|
- spec/models/checksum_audit_log_spec.rb
|
902
921
|
- spec/models/collection_spec.rb
|
903
922
|
- spec/models/download_spec.rb
|
@@ -936,7 +955,6 @@ files:
|
|
936
955
|
- spec/views/collections/_form.html.erb_spec.rb
|
937
956
|
- spec/views/collections/_show_descriptions.html.erb_spec.rb
|
938
957
|
- spec/views/dashboard/index_spec.rb
|
939
|
-
- spec/views/generic_file/_breadcrumbs.html.erb_spec.rb
|
940
958
|
- spec/views/generic_file/edit.html.erb_spec.rb
|
941
959
|
- spec/views/generic_file/show.html.erb_spec.rb
|
942
960
|
- spec/views/generic_file/stats.html.erb_spec.rb
|
@@ -1116,9 +1134,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1116
1134
|
version: '0'
|
1117
1135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1118
1136
|
requirements:
|
1119
|
-
- - "
|
1137
|
+
- - ">="
|
1120
1138
|
- !ruby/object:Gem::Version
|
1121
|
-
version:
|
1139
|
+
version: '0'
|
1122
1140
|
requirements: []
|
1123
1141
|
rubyforge_project:
|
1124
1142
|
rubygems_version: 2.2.2
|
@@ -1215,6 +1233,7 @@ test_files:
|
|
1215
1233
|
- spec/jobs/import_url_job_spec.rb
|
1216
1234
|
- spec/jobs/ingest_local_file_job_spec.rb
|
1217
1235
|
- spec/lib/sufia/analytics_spec.rb
|
1236
|
+
- spec/lib/sufia/breadcrumbs_spec.rb
|
1218
1237
|
- spec/lib/sufia/id_service_spec.rb
|
1219
1238
|
- spec/lib/sufia/messages_spec.rb
|
1220
1239
|
- spec/lib/sufia/readable_permissions_spec.rb
|
@@ -1222,6 +1241,7 @@ test_files:
|
|
1222
1241
|
- spec/lib/sufia/writable_permissions_spec.rb
|
1223
1242
|
- spec/models/ability_spec.rb
|
1224
1243
|
- spec/models/batch_spec.rb
|
1244
|
+
- spec/models/characterization_spec.rb
|
1225
1245
|
- spec/models/checksum_audit_log_spec.rb
|
1226
1246
|
- spec/models/collection_spec.rb
|
1227
1247
|
- spec/models/download_spec.rb
|
@@ -1260,7 +1280,6 @@ test_files:
|
|
1260
1280
|
- spec/views/collections/_form.html.erb_spec.rb
|
1261
1281
|
- spec/views/collections/_show_descriptions.html.erb_spec.rb
|
1262
1282
|
- spec/views/dashboard/index_spec.rb
|
1263
|
-
- spec/views/generic_file/_breadcrumbs.html.erb_spec.rb
|
1264
1283
|
- spec/views/generic_file/edit.html.erb_spec.rb
|
1265
1284
|
- spec/views/generic_file/show.html.erb_spec.rb
|
1266
1285
|
- spec/views/generic_file/stats.html.erb_spec.rb
|