curation_concerns 0.12.0.pre8 → 0.12.0.pre9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e81fd9998236bbf1d83f58c8260bd58792a2761
4
- data.tar.gz: e5687797edb64acd557ecb35efe1cc98b0697434
3
+ metadata.gz: 6eab5f25a1495de88c62656c40d9261594057c45
4
+ data.tar.gz: d2cc26ee39bd02be81ade88945c8ef17082f6eb1
5
5
  SHA512:
6
- metadata.gz: d7612adacda225e98429b99365ff1893b4941140f94acf23a94d79583e4bc93e0403fb358712d36ff6a43356859773772c4f410d63cb807fab86fc804bde3502
7
- data.tar.gz: 21c5c4454f410f260015a7457cc05babc47617452f776fede66c7697ca6d881c99f113b6414669eb9c38f5941d720d323ab7936b26611bef3042db38f961dd05
6
+ metadata.gz: cdb783ae9f39849fe73f11ececb03330d491632dc0cec1e9d522070d547ebd06bc28728d7162d61907660361b88e59f25fc1571fbed711945415244f66c9b8e6
7
+ data.tar.gz: b042084b5e0fe0509620b6b6fe42b82f595b22317df8b1a664591e7f6885e97ca4d9c0b3abd15a7aa1e9380acdaad8f73aa796136453a463b499024cc7fa2f4d
@@ -76,6 +76,7 @@ module CurationConcerns
76
76
  end
77
77
 
78
78
  def destroy
79
+ unlink_from_work
79
80
  file_set.destroy
80
81
  CurationConcerns.config.callback.run(:after_destroy, file_set.id, user)
81
82
  end
@@ -142,5 +143,17 @@ module CurationConcerns
142
143
  return unless work.thumbnail_id.blank?
143
144
  work.thumbnail = file_set
144
145
  end
146
+
147
+ def unlink_from_work
148
+ work = file_set.in_works.first
149
+ return unless work && (work.thumbnail_id == file_set.id || work.representative_id == file_set.id)
150
+ # This is required to clear the thumbnail_id and representative_id fields on the work
151
+ # and force it to be re-solrized. Although ActiveFedora::Aggregation clears the
152
+ # children nodes it leaves the GenericWork.thumbnail_id and GenericWork.representative_id
153
+ # fields in Solr populated.
154
+ work.thumbnail = nil if work.thumbnail_id == file_set.id
155
+ work.representative = nil if work.representative_id == file_set.id
156
+ work.save!
157
+ end
145
158
  end
146
159
  end
@@ -15,24 +15,14 @@ module CurationConcerns
15
15
  end
16
16
  end
17
17
 
18
- def new_download
18
+ def create_download
19
19
  @su = SingleUseLink.create itemId: params[:id], path: main_app.download_path(id: asset)
20
- @link = curation_concerns.download_single_use_link_path(@su.downloadKey)
21
-
22
- respond_to do |format|
23
- format.html
24
- format.js { render js: @link }
25
- end
20
+ render text: curation_concerns.download_single_use_link_url(@su.downloadKey)
26
21
  end
27
22
 
28
- def new_show
23
+ def create_show
29
24
  @su = SingleUseLink.create itemId: params[:id], path: polymorphic_path([main_app, asset])
30
- @link = curation_concerns.show_single_use_link_path(@su.downloadKey)
31
-
32
- respond_to do |format|
33
- format.html
34
- format.js { render js: @link }
35
- end
25
+ render text: curation_concerns.show_single_use_link_url(@su.downloadKey)
36
26
  end
37
27
 
38
28
  protected
data/config/routes.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  CurationConcerns::Engine.routes.draw do
2
2
  get 'single_use_link/show/:id' => 'single_use_links_viewer#show', as: :show_single_use_link
3
3
  get 'single_use_link/download/:id' => 'single_use_links_viewer#download', as: :download_single_use_link
4
- get 'single_use_link/generate_download/:id' => 'single_use_links#new_download', as: :generate_download_single_use_link
5
- get 'single_use_link/generate_show/:id' => 'single_use_links#new_show', as: :generate_show_single_use_link
4
+ post 'single_use_link/generate_download/:id' => 'single_use_links#create_download', as: :generate_download_single_use_link
5
+ post 'single_use_link/generate_show/:id' => 'single_use_links#create_show', as: :generate_show_single_use_link
6
6
 
7
7
  # mount BrowseEverything::Engine => '/remote_files/browse'
8
8
  resources :classify_concerns, only: [:new, :create]
@@ -1,3 +1,3 @@
1
1
  module CurationConcerns
2
- VERSION = "0.12.0.pre8".freeze
2
+ VERSION = "0.12.0.pre9".freeze
3
3
  end
@@ -151,21 +151,26 @@ describe CurationConcerns::FileSetActor do
151
151
  expect { file_set.reload }.to raise_error ActiveFedora::ObjectNotFoundError
152
152
  end
153
153
 
154
- context "representative of a work" do
154
+ context "representative and thumbnail of a work" do
155
155
  let!(:work) do
156
156
  work = create(:generic_work)
157
157
  # this is not part of a block on the create, since the work must be saved
158
158
  # before the representative can be assigned
159
159
  work.ordered_members << file_set
160
160
  work.representative = file_set
161
+ work.thumbnail = file_set
161
162
  work.save
162
163
  work
163
164
  end
164
165
 
165
- it "removes representative and the proxy association" do
166
- expect(work.reload.representative_id).to eq(file_set.id)
166
+ it "removes representative, thumbnail, and the proxy association" do
167
+ gw = GenericWork.load_instance_from_solr(work.id)
168
+ expect(gw.representative_id).to eq(file_set.id)
169
+ expect(gw.thumbnail_id).to eq(file_set.id)
167
170
  expect { actor.destroy }.to change { ActiveFedora::Aggregation::Proxy.count }.by(-1)
168
- expect(work.reload.representative_id).to be_nil
171
+ gw = GenericWork.load_instance_from_solr(work.id)
172
+ expect(gw.representative_id).to be_nil
173
+ expect(gw.thumbnail_id).to be_nil
169
174
  end
170
175
  end
171
176
  end
@@ -21,17 +21,17 @@ describe CurationConcerns::SingleUseLinksController, type: :controller do
21
21
 
22
22
  describe "GET 'download'" do
23
23
  it "and_return http success" do
24
- get 'new_download', id: file
24
+ post 'create_download', id: file
25
25
  expect(response).to be_success
26
- expect(assigns[:link]).to eq routes.url_helpers.download_single_use_link_path(hash)
26
+ expect(response.body).to eq download_single_use_link_url(hash)
27
27
  end
28
28
  end
29
29
 
30
30
  describe "GET 'show'" do
31
31
  it "and_return http success" do
32
- get 'new_show', id: file
32
+ post 'create_show', id: file
33
33
  expect(response).to be_success
34
- expect(assigns[:link]).to eq routes.url_helpers.show_single_use_link_path(hash)
34
+ expect(response.body).to eq show_single_use_link_url(hash)
35
35
  end
36
36
  end
37
37
  end
@@ -40,22 +40,22 @@ describe CurationConcerns::SingleUseLinksController, type: :controller do
40
40
  before do
41
41
  @other_user = create(:user)
42
42
  file.read_users << @other_user
43
- file.save
43
+ file.save!
44
44
  sign_in @other_user
45
45
  file.read_users << @other_user
46
- file.save
46
+ file.save!
47
47
  end
48
48
 
49
49
  describe "GET 'download'" do
50
50
  it "and_return http success" do
51
- get 'new_download', id: file
51
+ post 'create_download', id: file
52
52
  expect(response).not_to be_success
53
53
  end
54
54
  end
55
55
 
56
56
  describe "GET 'show'" do
57
57
  it "and_return http success" do
58
- get 'new_show', id: file
58
+ post 'create_show', id: file
59
59
  expect(response).not_to be_success
60
60
  end
61
61
  end
@@ -64,14 +64,14 @@ describe CurationConcerns::SingleUseLinksController, type: :controller do
64
64
  describe "unknown user" do
65
65
  describe "GET 'download'" do
66
66
  it "and_return http failure" do
67
- get 'new_download', id: file
67
+ post 'create_download', id: file
68
68
  expect(response).not_to be_success
69
69
  end
70
70
  end
71
71
 
72
72
  describe "GET 'show'" do
73
73
  it "and_return http failure" do
74
- get 'new_show', id: file
74
+ post 'create_show', id: file
75
75
  expect(response).not_to be_success
76
76
  end
77
77
  end
@@ -29,14 +29,14 @@ module CurationConcerns
29
29
 
30
30
  describe 'Single Use Link Generator' do
31
31
  routes { CurationConcerns::Engine.routes }
32
- it 'routes to #show' do
32
+ it 'routes to #create_show' do
33
33
  expect(generate_show_single_use_link_path('abc123')).to eq '/single_use_link/generate_show/abc123'
34
- expect(get("/single_use_link/generate_show/abc123")).to route_to("curation_concerns/single_use_links#new_show", id: 'abc123')
34
+ expect(post("/single_use_link/generate_show/abc123")).to route_to("curation_concerns/single_use_links#create_show", id: 'abc123')
35
35
  end
36
36
 
37
- it 'routes to #download' do
37
+ it 'routes to #create_download' do
38
38
  expect(generate_download_single_use_link_path('abc123')).to eq '/single_use_link/generate_download/abc123'
39
- expect(get("/single_use_link/generate_download/abc123")).to route_to("curation_concerns/single_use_links#new_download", id: 'abc123')
39
+ expect(post("/single_use_link/generate_download/abc123")).to route_to("curation_concerns/single_use_links#create_download", id: 'abc123')
40
40
  end
41
41
  end
42
42
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curation_concerns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0.pre8
4
+ version: 0.12.0.pre9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-04-18 00:00:00.000000000 Z
13
+ date: 2016-04-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hydra-head
@@ -924,8 +924,6 @@ files:
924
924
  - app/views/curation_concerns/file_sets/upload/_form_fields.html.erb
925
925
  - app/views/curation_concerns/file_sets/upload/_script_templates.html.erb
926
926
  - app/views/curation_concerns/permissions/confirm.html.erb
927
- - app/views/curation_concerns/single_use_links/new_download.html.erb
928
- - app/views/curation_concerns/single_use_links/new_show.html.erb
929
927
  - app/views/curation_concerns/single_use_links_viewer/show.html.erb
930
928
  - app/views/embargoes/_embargo_history.html.erb
931
929
  - app/views/embargoes/_list_active_embargoes.html.erb
@@ -1198,7 +1196,6 @@ files:
1198
1196
  - spec/views/layouts/error.html.erb_spec.rb
1199
1197
  - spec/views/shared/_add_content.html.erb_spec.rb
1200
1198
  - spec/views/shared/_my_actions.html.erb_spec.rb
1201
- - spec/views/single_use_links/new_download.html.erb_spec.rb
1202
1199
  - spec/views/single_use_links_viewer/show.html.erb_spec.rb
1203
1200
  - tasks/jasmine.rake
1204
1201
  - vendor/assets/images/ui-bg_glass_100_fdf5ce_1x400.png
@@ -1398,5 +1395,4 @@ test_files:
1398
1395
  - spec/views/layouts/error.html.erb_spec.rb
1399
1396
  - spec/views/shared/_add_content.html.erb_spec.rb
1400
1397
  - spec/views/shared/_my_actions.html.erb_spec.rb
1401
- - spec/views/single_use_links/new_download.html.erb_spec.rb
1402
1398
  - spec/views/single_use_links_viewer/show.html.erb_spec.rb
@@ -1,5 +0,0 @@
1
- <div class="single-use-link">
2
- <h1>Single Use Link</h1>
3
- <p>Anyone can use the following link once to download the file</p>
4
- <%= link_to @asset, @link, class: 'download-link', data: { 'no-turbolink' => ''}, target: '_blank' %>
5
- </div>
@@ -1,5 +0,0 @@
1
- <div class="single-use-link">
2
- <h1>Single Use Link</h1>
3
- <p>Anyone can use the following link once to view the file metadata</p>
4
- <%= link_to @asset, @link, target: '_blank' %>
5
- </div>
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'curation_concerns/single_use_links/new_download.html.erb' do
4
- let(:user) { create(:user) }
5
-
6
- let(:f) do
7
- file = FileSet.create do |gf|
8
- gf.apply_depositor_metadata(user)
9
- end
10
- Hydra::Works::AddFileToFileSet.call(file, File.open(fixture_path + '/world.png'), :original_file)
11
- file
12
- end
13
-
14
- let(:hash) { "some-dummy-sha2-hash" }
15
-
16
- before do
17
- assign :asset, f
18
- assign :link, CurationConcerns::Engine.routes.url_helpers.download_single_use_link_path(hash)
19
- render
20
- end
21
-
22
- it "has the download link" do
23
- expect(rendered).to have_selector "a.download-link"
24
- end
25
-
26
- it "has turbolinks disabled in the download link" do
27
- expect(rendered).to have_selector "a.download-link[data-no-turbolink]"
28
- end
29
- end