hyrax 2.1.0.rc1 → 2.1.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CONTRIBUTING.md +6 -6
- data/README.md +18 -8
- data/app/assets/javascripts/hyrax/app.js.erb +1 -1
- data/app/assets/javascripts/hyrax/collections.js +16 -13
- data/app/assets/javascripts/hyrax/monkey_patch_turbolinks.js.coffee +12 -0
- data/app/assets/stylesheets/hyrax/dashboard.scss +4 -0
- data/app/controllers/hyrax/dashboard/collections_controller.rb +4 -7
- data/app/controllers/hyrax/my_controller.rb +1 -0
- data/app/helpers/hyrax/collections_helper.rb +9 -0
- data/app/models/sipity/workflow.rb +6 -7
- data/app/presenters/hyrax/work_show_presenter.rb +4 -1
- data/app/services/hyrax/adapters/nesting_index_adapter.rb +1 -0
- data/app/services/hyrax/collection_types/create_service.rb +2 -2
- data/app/services/hyrax/file_set_fixity_check_service.rb +1 -1
- data/app/views/hyrax/dashboard/collections/_form.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +11 -6
- data/app/views/hyrax/dashboard/collections/_modal_parent_collection_remove_deny.html.erb +14 -0
- data/app/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb +11 -1
- data/app/views/hyrax/dashboard/collections/show.html.erb +1 -0
- data/app/views/hyrax/my/collections/_modal_collection_types_to_create.html.erb +1 -1
- data/app/views/hyrax/my/collections/index.html.erb +8 -2
- data/app/views/hyrax/my/works/_tabs.html.erb +1 -2
- data/app/views/hyrax/my/works/index.html.erb +11 -0
- data/config/locales/hyrax.de.yml +19 -8
- data/config/locales/hyrax.en.yml +14 -3
- data/config/locales/hyrax.es.yml +13 -2
- data/config/locales/hyrax.fr.yml +13 -2
- data/config/locales/hyrax.it.yml +13 -2
- data/config/locales/hyrax.pt-BR.yml +13 -2
- data/config/locales/hyrax.zh.yml +13 -2
- data/hyrax.gemspec +1 -1
- data/lib/generators/hyrax/templates/db/migrate/20170810190549_update_collection_type_column_options.rb.erb +9 -1
- data/lib/hyrax/version.rb +1 -1
- data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +2 -3
- data/spec/features/collection_multi_membership_spec.rb +32 -33
- data/spec/features/dashboard/all_works.rb +2 -1
- data/spec/features/dashboard/collection_spec.rb +35 -13
- data/spec/features/work_show_spec.rb +6 -6
- data/spec/helpers/hyrax/collections_helper_spec.rb +16 -0
- data/spec/models/sipity/workflow_spec.rb +9 -0
- data/spec/presenters/hyrax/work_show_presenter_spec.rb +2 -2
- data/spec/services/hyrax/adapters/nesting_index_adapter_spec.rb +7 -3
- data/spec/services/hyrax/collection_types/create_service_spec.rb +2 -2
- data/spec/services/hyrax/collections_service_spec.rb +1 -1
- data/spec/services/hyrax/file_set_fixity_check_service_spec.rb +13 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/optional_example.rb +16 -0
- data/spec/support/selectors.rb +15 -1
- data/spec/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb_spec.rb +13 -21
- data/spec/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb_spec.rb +5 -3
- data/spec/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb_spec.rb +35 -15
- data/spec/views/hyrax/my/collections/index.html.erb_spec.rb +34 -0
- data/spec/views/hyrax/my/works/index.html.erb_spec.rb +3 -0
- data/template.rb +1 -1
- metadata +15 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f567b87262e35a9cb150d7155519d89714b19b0
|
4
|
+
data.tar.gz: 1ba5abb5d18be1edaacdb1bceb77030e1dfa1c66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b72273e1c7ecb34223b97e5839232fcdcb5f26d036903bdb2e50f2ec45d437a52edcf88012fc88f2d6c0c14a4a7ac9bd46965b3cdeada506d6e553352f38418f
|
7
|
+
data.tar.gz: 389b8b29eee7704e80cf71cdceb6ed8f8e96c0bde66a312bb06f31a73cf3996f0e4afbeba6ae132b7f04132a15b036b6ba06e14385ec7c51ff90c8fab65572dd
|
data/.github/CONTRIBUTING.md
CHANGED
@@ -6,16 +6,16 @@ keeping on top of things.
|
|
6
6
|
|
7
7
|
## Code of Conduct
|
8
8
|
|
9
|
-
The Samvera Community is dedicated to providing a welcoming and positive
|
9
|
+
The Samvera Community is dedicated to providing a welcoming and positive
|
10
10
|
experience for all its members, whether they are at a formal gathering, in
|
11
|
-
a social setting, or taking part in activities online. Please see our
|
11
|
+
a social setting, or taking part in activities online. Please see our
|
12
12
|
[Code of Conduct](CODE_OF_CONDUCT.md) for more information.
|
13
13
|
|
14
14
|
## Samvera Community Intellectual Property Licensing and Ownership
|
15
15
|
|
16
|
-
All code contributors must have an Individual Contributor License Agreement
|
17
|
-
(iCLA) on file with the Samvera Steering Group. If the contributor works for
|
18
|
-
an institution, the institution must have a Corporate Contributor License
|
16
|
+
All code contributors must have an Individual Contributor License Agreement
|
17
|
+
(iCLA) on file with the Samvera Steering Group. If the contributor works for
|
18
|
+
an institution, the institution must have a Corporate Contributor License
|
19
19
|
Agreement (cCLA) on file.
|
20
20
|
|
21
21
|
https://wiki.duraspace.org/display/samvera/Samvera+Community+Intellectual+Property+Licensing+and+Ownership
|
@@ -64,7 +64,7 @@ You should also add yourself to the `CONTRIBUTORS.md` file in the root of the pr
|
|
64
64
|
* This work greatly increases the usability of the code base and supports the on-ramping of new committers.
|
65
65
|
* We will all be understanding of one another's time constraints in this area.
|
66
66
|
* YARD examples:
|
67
|
-
* [
|
67
|
+
* [Hyrax::AdminSet](https://github.com/samvera/hyrax/blob/master/app/models/admin_set.rb)
|
68
68
|
* [ActiveTriples::LocalName::Minter](https://github.com/ActiveTriples/active_triples-local_name/blob/master/lib/active_triples/local_name/minter.rb)
|
69
69
|
* [Getting started with YARD](http://www.rubydoc.info/gems/yard/file/docs/GettingStarted.md)
|
70
70
|
|
data/README.md
CHANGED
@@ -63,7 +63,7 @@ The Samvera community is here to help. Please see our [support guide](./.github/
|
|
63
63
|
# Getting started
|
64
64
|
|
65
65
|
This document contains instructions specific to setting up an app with __Hyrax
|
66
|
-
v2.1.0.
|
66
|
+
v2.1.0.rc2__. If you are looking for instructions on installing a different
|
67
67
|
version, be sure to select the appropriate branch or tag from the drop-down
|
68
68
|
menu above.
|
69
69
|
|
@@ -80,8 +80,8 @@ Prerequisites are required for both creating a Hyrax\-based app and contributing
|
|
80
80
|
|
81
81
|
Hyrax requires the following software to work:
|
82
82
|
|
83
|
-
1. [Solr](http://lucene.apache.org/solr/) version >= 5.x (tested up to
|
84
|
-
1. [Fedora Commons](http://www.fedora-commons.org/) digital repository version >= 4.5.1 (tested up to 4.7.
|
83
|
+
1. [Solr](http://lucene.apache.org/solr/) version >= 5.x (tested up to 7.0.0)
|
84
|
+
1. [Fedora Commons](http://www.fedora-commons.org/) digital repository version >= 4.5.1 (tested up to 4.7.5)
|
85
85
|
1. A SQL RDBMS (MySQL, PostgreSQL), though **note** that SQLite will be used by default if you're looking to get up and running quickly
|
86
86
|
1. [Redis](http://redis.io/), a key-value store
|
87
87
|
1. [ImageMagick](http://www.imagemagick.org/) with JPEG-2000 support
|
@@ -132,7 +132,7 @@ Note here that the following commands assume you're setting up Hyrax in a develo
|
|
132
132
|
|
133
133
|
First, you'll need a working Ruby installation. You can install this via your operating system's package manager -- you are likely to get farther with OSX, Linux, or UNIX than Windows but your mileage may vary -- but we recommend using a Ruby version manager such as [RVM](https://rvm.io/) or [rbenv](https://github.com/sstephenson/rbenv).
|
134
134
|
|
135
|
-
We recommend either Ruby 2.
|
135
|
+
We recommend either Ruby 2.5 or the latest 2.4 version.
|
136
136
|
|
137
137
|
## Redis
|
138
138
|
|
@@ -142,11 +142,11 @@ Starting up Redis will depend on your operating system, and may in fact already
|
|
142
142
|
|
143
143
|
## Rails
|
144
144
|
|
145
|
-
Hyrax requires Rails 5. We recommend the latest Rails 5.
|
145
|
+
Hyrax requires Rails 5. We recommend the latest Rails 5.1 release.
|
146
146
|
|
147
147
|
```
|
148
148
|
# If you don't already have Rails at your disposal...
|
149
|
-
gem install rails -v 5.
|
149
|
+
gem install rails -v 5.1.6
|
150
150
|
```
|
151
151
|
|
152
152
|
### JavaScript runtime
|
@@ -162,7 +162,7 @@ NOTE: The steps need to be done in order to create a new Hyrax based app.
|
|
162
162
|
Generate a new Rails application using the template.
|
163
163
|
|
164
164
|
```
|
165
|
-
rails _5.
|
165
|
+
rails _5.1.6_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v2.1.0.rc2/template.rb
|
166
166
|
```
|
167
167
|
|
168
168
|
Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
|
@@ -200,7 +200,7 @@ Many of the services performed by Hyrax are resource intensive, and therefore ar
|
|
200
200
|
|
201
201
|
Hyrax implements these jobs using the Rails [ActiveJob](http://edgeguides.rubyonrails.org/active_job_basics.html) framework, allowing you to choose the message queue system of your choice.
|
202
202
|
|
203
|
-
For initial
|
203
|
+
For initial development, it is recommended that you change the default ActiveJob adapter from `:async` to `:inline`. This adapter will execute jobs immediately (in the foreground) as they are received. This can be accomplished by adding the following to your `config/environments/development.rb`
|
204
204
|
|
205
205
|
```
|
206
206
|
class Application < Rails::Application
|
@@ -210,6 +210,16 @@ class Application < Rails::Application
|
|
210
210
|
end
|
211
211
|
```
|
212
212
|
|
213
|
+
For testing, it is recommended that you use the [built-in `:test` adapter](http://api.rubyonrails.org/classes/ActiveJob/QueueAdapters/TestAdapter.html) which stores enqueued and performed jobs, running only those configured to run during test setup. To do this, add the following to `config/environments/test.rb`:
|
214
|
+
|
215
|
+
```ruby
|
216
|
+
Rails.application.configure do
|
217
|
+
# ...
|
218
|
+
config.active_job.queue_adapter = :test
|
219
|
+
# ...
|
220
|
+
end
|
221
|
+
```
|
222
|
+
|
213
223
|
**For production applications** you will want to use a more robust message queue system such as [Sidekiq](http://sidekiq.org/). The Hyrax Development Guide has a detailed walkthrough of [installing and configuring Sidekiq](https://github.com/samvera/hyrax/wiki/Using-Sidekiq-with-Hyrax).
|
214
224
|
|
215
225
|
## Create default administrative set
|
@@ -48,7 +48,7 @@ Hyrax = {
|
|
48
48
|
// The Collection edit page
|
49
49
|
collectionEditor: function() {
|
50
50
|
var CollectionControls = require('hyrax/collections/editor');
|
51
|
-
var controls = new CollectionControls($('#
|
51
|
+
var controls = new CollectionControls($('#collection-edit-controls'));
|
52
52
|
},
|
53
53
|
|
54
54
|
// Collections v2 - collections related js should (over time) be moved here
|
@@ -1,3 +1,5 @@
|
|
1
|
+
var autocompleteModule = require('hyrax/autocomplete');
|
2
|
+
|
1
3
|
Blacklight.onLoad(function () {
|
2
4
|
|
3
5
|
/**
|
@@ -182,18 +184,31 @@ Blacklight.onLoad(function () {
|
|
182
184
|
$('[data-behavior="updates-collection"]').on('click', function() {
|
183
185
|
var string_to_replace = "collection_replace_id",
|
184
186
|
form = $(this).closest("form"),
|
185
|
-
collection_id = $(
|
187
|
+
collection_id = $('#member_of_collection_ids')[0].value;
|
186
188
|
|
187
189
|
form[0].action = form[0].action.replace(string_to_replace, collection_id);
|
188
190
|
form.append('<input type="hidden" value="add" name="collection[members]"></input>');
|
189
191
|
});
|
190
192
|
|
193
|
+
// Initializes the autocomplete element for the add to collection modal
|
194
|
+
$('#collection-list-container').on('show.bs.modal', function() {
|
195
|
+
var inputField = $('#member_of_collection_ids');
|
196
|
+
var autocomplete = new autocompleteModule();
|
197
|
+
autocomplete.setup(inputField, inputField.data('autocomplete'), inputField.data('autocompleteUrl'));
|
198
|
+
});
|
199
|
+
|
191
200
|
// Display access deny for edit request.
|
192
201
|
$('#documents').find('.edit-collection-deny-button').on('click', function (e) {
|
193
202
|
e.preventDefault();
|
194
203
|
$('#collections-to-edit-deny-modal').modal('show');
|
195
204
|
});
|
196
205
|
|
206
|
+
// Display access deny for remove parent collection button.
|
207
|
+
$('#parent-collections-wrapper').find('.remove-parent-from-collection-deny-button').on('click', function (e) {
|
208
|
+
e.preventDefault();
|
209
|
+
$('#parent-collection-to-remove-deny-modal').modal('show');
|
210
|
+
});
|
211
|
+
|
197
212
|
// Remove this parent collection list button clicked
|
198
213
|
$('#parent-collections-wrapper')
|
199
214
|
.find('.remove-from-collection-button')
|
@@ -266,18 +281,6 @@ Blacklight.onLoad(function () {
|
|
266
281
|
}
|
267
282
|
});
|
268
283
|
|
269
|
-
$('#show-more-parent-collections').on('click', function () {
|
270
|
-
$(this).hide();
|
271
|
-
$("#more-parent-collections").show();
|
272
|
-
$("#show-less-parent-collections").show();
|
273
|
-
});
|
274
|
-
|
275
|
-
$('#show-less-parent-collections').on('click', function () {
|
276
|
-
$(this).hide();
|
277
|
-
$("#more-parent-collections").hide();
|
278
|
-
$("#show-more-parent-collections").show();
|
279
|
-
});
|
280
|
-
|
281
284
|
// Add to collection modal form post
|
282
285
|
$('#add-to-collection-modal').find('.modal-add-button').on('click', function (e) {
|
283
286
|
var $self = $(this),
|
@@ -9,3 +9,15 @@ if Turbolinks?
|
|
9
9
|
else
|
10
10
|
@failed = true
|
11
11
|
@delegate.requestFailedWithStatusCode(@xhr.status, @xhr.responseText)
|
12
|
+
|
13
|
+
# Fixes a back/forward navigation problem with UV and turbolinks
|
14
|
+
# See https://github.com/samvera/hyrax/issues/2964
|
15
|
+
# This is based on https://github.com/turbolinks/turbolinks/issues/219#issuecomment-275838923
|
16
|
+
$(window).on 'popstate', (event) =>
|
17
|
+
@turbolinks_location = Turbolinks.Location.wrap(window.location)
|
18
|
+
return if Turbolinks.controller.location.requestURL == @turbolinks_location.requestURL
|
19
|
+
return if event.state?.turbolinks
|
20
|
+
if @window_turbolinks = window.history.state?.turbolinks
|
21
|
+
Turbolinks.controller.historyPoppedToLocationWithRestorationIdentifier(@turbolinks_location, @window_turbolinks.restorationIdentifier)
|
22
|
+
else
|
23
|
+
Turbolinks.controller.historyPoppedToLocationWithRestorationIdentifier(@turbolinks_location, Turbolinks.uuid())
|
@@ -73,9 +73,6 @@ module Hyrax
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def edit
|
76
|
-
member_works
|
77
|
-
# this is used to populate the "add to a collection" action for the members
|
78
|
-
@user_collections = find_collections_for_form
|
79
76
|
form
|
80
77
|
end
|
81
78
|
|
@@ -129,7 +126,6 @@ module Hyrax
|
|
129
126
|
|
130
127
|
def after_update_error
|
131
128
|
form
|
132
|
-
query_collection_members
|
133
129
|
respond_to do |format|
|
134
130
|
format.html { render action: 'edit' }
|
135
131
|
format.json { render json: @collection.errors, status: :unprocessable_entity }
|
@@ -153,11 +149,12 @@ module Hyrax
|
|
153
149
|
end
|
154
150
|
end
|
155
151
|
|
156
|
-
def after_destroy(
|
152
|
+
def after_destroy(_id)
|
153
|
+
# leaving id to avoid changing the method's parameters prior to release
|
157
154
|
respond_to do |format|
|
158
155
|
format.html do
|
159
156
|
redirect_to my_collections_path,
|
160
|
-
notice: t('hyrax.dashboard.my.action.collection_delete_success'
|
157
|
+
notice: t('hyrax.dashboard.my.action.collection_delete_success')
|
161
158
|
end
|
162
159
|
format.json { head :no_content, location: my_collections_path }
|
163
160
|
end
|
@@ -166,7 +163,7 @@ module Hyrax
|
|
166
163
|
def after_destroy_error(id)
|
167
164
|
respond_to do |format|
|
168
165
|
format.html do
|
169
|
-
flash[:notice] = t('hyrax.dashboard.my.action.collection_delete_fail'
|
166
|
+
flash[:notice] = t('hyrax.dashboard.my.action.collection_delete_fail')
|
170
167
|
render :edit, status: :unprocessable_entity
|
171
168
|
end
|
172
169
|
format.json { render json: { id: id }, status: :unprocessable_entity, location: dashboard_collection_path(@collection) }
|
@@ -56,6 +56,7 @@ module Hyrax
|
|
56
56
|
@empty_batch = batch.empty?
|
57
57
|
@all_checked = (count_on_page == @document_list.count)
|
58
58
|
@add_works_to_collection = params.fetch(:add_works_to_collection, '')
|
59
|
+
@add_works_to_collection_label = params.fetch(:add_works_to_collection_label, '')
|
59
60
|
end
|
60
61
|
|
61
62
|
def query_solr
|
@@ -20,6 +20,15 @@ module Hyrax
|
|
20
20
|
content_tag :span, safe_join([t('hyrax.collection.is_part_of'), ': '] + collection_links)
|
21
21
|
end
|
22
22
|
|
23
|
+
##
|
24
|
+
# Append a collection_type_id to the existing querystring (whether or not it has pre-existing params)
|
25
|
+
# @return [String] the original url with and added collection_type_id param
|
26
|
+
def append_collection_type_url(url, collection_type_id)
|
27
|
+
uri = URI.parse(url)
|
28
|
+
uri.query = [uri.query, "collection_type_id=#{collection_type_id}"].compact.join('&')
|
29
|
+
uri.to_s
|
30
|
+
end
|
31
|
+
|
23
32
|
# @return [Boolean]
|
24
33
|
def has_collection_search_parameters?
|
25
34
|
params[:cq].present?
|
@@ -39,20 +39,19 @@ module Sipity
|
|
39
39
|
# Within the given permission_template scope:
|
40
40
|
# * Activate the specified workflow_id or workflow_name
|
41
41
|
# * Deactivate the other workflows
|
42
|
-
#
|
43
|
-
# TODO: Resolve https://github.com/samvera/hyrax/issues/2151 as the documentation is aspirational and not reality
|
44
|
-
#
|
45
42
|
# @param permission_template [Hyrax::PermissionTemplate] The scope for activation of the workflow id
|
46
43
|
# @param workflow_id [Integer] The workflow_id within the given permission_template that should be activated
|
47
44
|
# @param workflow_name [String] The name of the workflow within the given permission template that should be activated
|
48
|
-
# @return [
|
45
|
+
# @return [Sipity::Workflow] active workflow
|
49
46
|
# @raise [ActiveRecord::RecordNotFound] When we have a mismatch on permission template and workflow id or workflow name
|
50
47
|
# @raise [RuntimeError] When you don't specify a workflow_id or workflow_name
|
51
48
|
def self.activate!(permission_template:, workflow_id: nil, workflow_name: nil)
|
52
49
|
raise "You must specify a workflow_id or workflow_name to activate!" if workflow_id.blank? && workflow_name.blank?
|
53
|
-
|
54
|
-
Sipity::Workflow.
|
55
|
-
|
50
|
+
workflow_to_activate = Sipity::Workflow.find_by!({ permission_template: permission_template, id: workflow_id, name: workflow_name }.compact)
|
51
|
+
active_workflow = Sipity::Workflow.where(permission_template: permission_template, active: true)
|
52
|
+
return workflow_to_activate if workflow_to_activate == active_workflow.first
|
53
|
+
workflow_to_activate.tap do |workflow|
|
54
|
+
active_workflow.update(active: nil)
|
56
55
|
workflow.update!(active: true)
|
57
56
|
end
|
58
57
|
end
|
@@ -57,7 +57,10 @@ module Hyrax
|
|
57
57
|
|
58
58
|
# @return [Boolean] render the UniversalViewer
|
59
59
|
def universal_viewer?
|
60
|
-
|
60
|
+
representative_id.present? &&
|
61
|
+
representative_presenter.present? &&
|
62
|
+
representative_presenter.image? &&
|
63
|
+
Hyrax.config.iiif_image_server? &&
|
61
64
|
members_include_viewable_image?
|
62
65
|
end
|
63
66
|
|
@@ -133,6 +133,7 @@ module Hyrax
|
|
133
133
|
def self.find_solr_document_by(id:)
|
134
134
|
query = ActiveFedora::SolrQueryBuilder.construct_query_for_ids([id])
|
135
135
|
document = ActiveFedora::SolrService.query(query, rows: 1).first
|
136
|
+
document = ActiveFedora::Base.find(id).to_solr if document.nil?
|
136
137
|
raise "Unable to find SolrDocument with ID=#{id}" if document.nil?
|
137
138
|
document
|
138
139
|
end
|
@@ -40,7 +40,7 @@ module Hyrax
|
|
40
40
|
require_membership: false,
|
41
41
|
assigns_workflow: false,
|
42
42
|
assigns_visibility: false,
|
43
|
-
badge_color: "#
|
43
|
+
badge_color: "#705070",
|
44
44
|
participants: [{ agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE, agent_id: ::Ability.admin_group_name, access: Hyrax::CollectionTypeParticipant::MANAGE_ACCESS },
|
45
45
|
{ agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE, agent_id: ::Ability.registered_group_name, access: Hyrax::CollectionTypeParticipant::CREATE_ACCESS }]
|
46
46
|
}.freeze
|
@@ -58,7 +58,7 @@ module Hyrax
|
|
58
58
|
require_membership: true,
|
59
59
|
assigns_workflow: true,
|
60
60
|
assigns_visibility: true,
|
61
|
-
badge_color: "#
|
61
|
+
badge_color: "#405060",
|
62
62
|
participants: [{ agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE, agent_id: ::Ability.admin_group_name, access: Hyrax::CollectionTypeParticipant::MANAGE_ACCESS },
|
63
63
|
{ agent_type: Hyrax::CollectionTypeParticipant::GROUP_TYPE, agent_id: ::Ability.admin_group_name, access: Hyrax::CollectionTypeParticipant::CREATE_ACCESS }]
|
64
64
|
}.freeze
|
@@ -78,7 +78,7 @@ module Hyrax
|
|
78
78
|
def fixity_check_file(file)
|
79
79
|
versions = file.has_versions? ? file.versions.all : [file]
|
80
80
|
|
81
|
-
versions = [versions.max_by(&:created)] if latest_version_only
|
81
|
+
versions = [versions.max_by(&:created)] if file.has_versions? && latest_version_only
|
82
82
|
|
83
83
|
versions.collect { |v| fixity_check_file_version(file.id, v.uri.to_s) }.flatten
|
84
84
|
end
|
@@ -13,12 +13,17 @@
|
|
13
13
|
<fieldset>
|
14
14
|
<legend><%= t("hyrax.collection.select_form.select_heading") %></legend>
|
15
15
|
<ul>
|
16
|
-
<%
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
<% if @add_works_to_collection.present? %>
|
17
|
+
<%= text_field_tag 'member_of_collection_label', @add_works_to_collection_label, disabled: true %>
|
18
|
+
<%= hidden_field_tag 'member_of_collection_ids', @add_works_to_collection %>
|
19
|
+
<% else %>
|
20
|
+
<%= text_field_tag 'member_of_collection_ids', nil,
|
21
|
+
prompt: :translate,
|
22
|
+
data: {
|
23
|
+
placeholder: t('simple_form.placeholders.defaults.member_of_collection_ids'),
|
24
|
+
autocomplete: 'collection',
|
25
|
+
'autocomplete-url' => Rails.application.routes.url_helpers.qa_path + '/search/collections?access=deposit'
|
26
|
+
} %>
|
22
27
|
<% end %>
|
23
28
|
</ul>
|
24
29
|
</fieldset>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="modal fade" id="parent-collection-to-remove-deny-modal" tabindex="-1" role="dialog" aria-labelledby="remove-parent-collection-label">
|
2
|
+
<div class="modal-dialog" role="document">
|
3
|
+
<div class="modal-content">
|
4
|
+
<form class="delete-collection-form">
|
5
|
+
<div class="modal-body">
|
6
|
+
<p><%= t('hyrax.dashboard.collections.form_relationships.modals.remove_parent_collection_deny') %></p>
|
7
|
+
</div>
|
8
|
+
<div class="modal-footer">
|
9
|
+
<button type="button" class="btn btn-primary" data-dismiss="modal"><%= t('helpers.action.close') %></button>
|
10
|
+
</div>
|
11
|
+
</form>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
</div>
|
17
17
|
<div>
|
18
18
|
<%= link_to t('hyrax.collection.actions.add_existing_works.label'),
|
19
|
-
hyrax.my_works_path(add_works_to_collection: presenter.id),
|
19
|
+
hyrax.my_works_path(add_works_to_collection: presenter.id, add_works_to_collection_label: presenter.title),
|
20
20
|
title: t('hyrax.collection.actions.add_existing_works.desc'),
|
21
21
|
class: 'btn btn-link side-arrows',
|
22
22
|
data: { turbolinks: false } %>
|
@@ -6,6 +6,16 @@
|
|
6
6
|
<div class="collections-list-title">
|
7
7
|
<%= link_to document, [hyrax, :dashboard, document], id: "src_copy_link_#{document.id}" %>
|
8
8
|
</div>
|
9
|
-
|
9
|
+
<% if can? :edit, id %>
|
10
|
+
<% if can? :edit, document.id %>
|
11
|
+
<button class="btn btn-xs btn-danger remove-from-collection-button"><%= t('hyrax.collections.show.buttons.remove_from_collection') %></button>
|
12
|
+
<% else %>
|
13
|
+
<%= link_to "#",
|
14
|
+
class: 'btn btn-xs btn-danger remove-parent-from-collection-deny-button',
|
15
|
+
title: t('hyrax.collections.show.buttons.remove_from_collection') do %>
|
16
|
+
<%= t('hyrax.collections.show.buttons.remove_from_collection') %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
10
20
|
</div>
|
11
21
|
</li>
|
@@ -96,6 +96,7 @@
|
|
96
96
|
<% if @presenter.collection_type_is_nestable? && !has_collection_search_parameters? %>
|
97
97
|
<%= render 'hyrax/my/collections/modal_add_to_collection', source: 'show' %>
|
98
98
|
<%= render 'hyrax/my/collections/modal_add_subcollection', id: @presenter.id, source: 'show' %>
|
99
|
+
<%= render 'hyrax/dashboard/collections/modal_parent_collection_remove_deny', source: 'show' %>
|
99
100
|
<% end %>
|
100
101
|
|
101
102
|
<% unless has_collection_search_parameters? %>
|