hyrax 2.0.0.beta5 → 2.0.0.rc1
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.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/app/assets/javascripts/hyrax/save_work/visibility_component.es6 +29 -8
- data/app/forms/hyrax/forms/permission_template_form.rb +7 -7
- data/app/helpers/hyrax/hyrax_helper_behavior.rb +10 -4
- data/app/services/hyrax/{rights_statements.rb → rights_statement_service.rb} +1 -1
- data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +7 -1
- data/app/views/records/edit_fields/_rights_statement.html.erb +1 -1
- data/config/locales/hyrax.de.yml +1 -0
- data/config/locales/hyrax.en.yml +1 -1
- data/config/locales/hyrax.es.yml +1 -0
- data/config/locales/hyrax.fr.yml +1 -0
- data/config/locales/hyrax.it.yml +1 -0
- data/config/locales/hyrax.pt-BR.yml +1 -0
- data/config/locales/hyrax.zh.yml +1 -0
- data/lib/generators/hyrax/templates/catalog_controller.rb +14 -4
- data/lib/generators/hyrax/templates/config/locales/hyrax.de.yml +4 -2
- data/lib/generators/hyrax/templates/config/locales/hyrax.en.yml +4 -2
- data/lib/generators/hyrax/templates/config/locales/hyrax.es.yml +4 -2
- data/lib/generators/hyrax/templates/config/locales/hyrax.fr.yml +6 -0
- data/lib/generators/hyrax/templates/config/locales/hyrax.it.yml +4 -2
- data/lib/generators/hyrax/templates/config/locales/hyrax.pt-BR.yml +4 -2
- data/lib/generators/hyrax/templates/config/locales/hyrax.zh.yml +4 -2
- data/lib/hyrax/version.rb +1 -1
- data/spec/forms/hyrax/forms/permission_template_form_spec.rb +7 -0
- data/spec/helpers/blacklight_helper_spec.rb +14 -7
- data/spec/helpers/hyrax_helper_spec.rb +8 -2
- data/spec/javascripts/visibility_component_spec.js +44 -0
- data/spec/services/hyrax/{rights_statements_spec.rb → rights_statement_service_spec.rb} +1 -1
- data/spec/views/catalog/_index_list_default.html.erb_spec.rb +3 -3
- data/spec/views/hyrax/admin/admin_sets/_form_visibility.html.erb_spec.rb +1 -0
- data/template.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6a96b72971c72adabf7c92ab360d35bb5d98eb63
|
|
4
|
+
data.tar.gz: 3292d8aaf5784bcdd8e061f2446ad321e84a64f7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a12c44a6f0bb8b928a40666fbe8e0f3dbdc0d7c2a84410aff8e550c65916a2644910258160cca03ca806fc4b7f5c17d0fa963fa278dbb7ac49c06ee341f19abc
|
|
7
|
+
data.tar.gz: bf7f7762658984fe13a62829dc706eeb32a070a13c57c8e8320988aa0f0e3a7fe289b12b647626e634871a2e3a7bfffb8427a4d49b3a0e894d7cac4ce5d40cde
|
data/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Docs: [](./LICENSE)
|
|
14
14
|
|
|
15
15
|
Jump in: [](http://slack.samvera.org/)
|
|
16
|
-
[](https://waffle.io/samvera/hyrax?milestone=2.x%20series)
|
|
17
17
|
|
|
18
18
|
# Table of Contents
|
|
19
19
|
|
|
@@ -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.0.0.
|
|
66
|
+
v2.0.0.rc1__. 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
|
|
|
@@ -160,7 +160,7 @@ NOTE: The steps need to be done in order to create a new Hyrax based app.
|
|
|
160
160
|
Generate a new Rails application using the template.
|
|
161
161
|
|
|
162
162
|
```
|
|
163
|
-
rails _5.0.6_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v2.0.0.
|
|
163
|
+
rails _5.0.6_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v2.0.0.rc1/template.rb
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
|
|
@@ -76,14 +76,9 @@ export default class VisibilityComponent {
|
|
|
76
76
|
// Apply visibility/release restrictions based on selected AdminSet
|
|
77
77
|
applyRestrictions(visibility, release_no_delay, release_date, release_before)
|
|
78
78
|
{
|
|
79
|
-
// If immediate release required
|
|
80
|
-
if(release_no_delay &&
|
|
81
|
-
|
|
82
|
-
this.selectVisibility(visibility)
|
|
83
|
-
}
|
|
84
|
-
else if(release_no_delay) {
|
|
85
|
-
// No visibility required, but must be released today. Disable embargo & lease.
|
|
86
|
-
this.disableEmbargoAndLease();
|
|
79
|
+
// If immediate release required or the release date is in the past.
|
|
80
|
+
if(release_no_delay || (release_date && (new Date() > Date.parse(release_date)))) {
|
|
81
|
+
this.requireReleaseNow(visibility)
|
|
87
82
|
}
|
|
88
83
|
// Otherwise if future date and release_before==true, must be released between today and release_date
|
|
89
84
|
else if(release_date && release_before) {
|
|
@@ -137,6 +132,18 @@ export default class VisibilityComponent {
|
|
|
137
132
|
this.selectVisibilityAfterEmbargo(visibility)
|
|
138
133
|
}
|
|
139
134
|
|
|
135
|
+
// Require release now
|
|
136
|
+
requireReleaseNow(visibility) {
|
|
137
|
+
if(visibility) {
|
|
138
|
+
// Select required visibility
|
|
139
|
+
this.selectVisibility(visibility)
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// No visibility required, but must be released today. Disable embargo & lease.
|
|
143
|
+
this.disableEmbargoAndLease()
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
140
147
|
// Disable Embargo and Lease options. Work must be released immediately
|
|
141
148
|
disableEmbargoAndLease() {
|
|
142
149
|
this.disableVisibilityOptions(["embargo","lease"])
|
|
@@ -153,6 +160,8 @@ export default class VisibilityComponent {
|
|
|
153
160
|
this.element.find(matchEnabled).prop("disabled", false)
|
|
154
161
|
}
|
|
155
162
|
this.element.find(matchDisabled).prop("disabled", true)
|
|
163
|
+
|
|
164
|
+
this.checkEnabledVisibilityOption()
|
|
156
165
|
}
|
|
157
166
|
|
|
158
167
|
// Disable one or more visibility option (based on array of passed in options),
|
|
@@ -166,6 +175,8 @@ export default class VisibilityComponent {
|
|
|
166
175
|
this.element.find(matchDisabled).prop("disabled", true)
|
|
167
176
|
}
|
|
168
177
|
this.element.find(matchEnabled).prop("disabled", false)
|
|
178
|
+
|
|
179
|
+
this.checkEnabledVisibilityOption()
|
|
169
180
|
}
|
|
170
181
|
|
|
171
182
|
// Create a jQuery matcher which will match for all the specified options
|
|
@@ -255,6 +266,16 @@ export default class VisibilityComponent {
|
|
|
255
266
|
return this.element.find("select[id$='_visibility_after_embargo']")
|
|
256
267
|
}
|
|
257
268
|
|
|
269
|
+
// If the selected visibility option is disabled change selection to the
|
|
270
|
+
// least public option that is enabled.
|
|
271
|
+
checkEnabledVisibilityOption() {
|
|
272
|
+
if (this.element.find("[type='radio']:disabled:checked").length > 0) {
|
|
273
|
+
this.element.find("[type='radio']:enabled").last().prop('checked', true)
|
|
274
|
+
// Ensure required option is opened in form
|
|
275
|
+
this.showForm()
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
258
279
|
// Get today's date in YYYY-MM-DD format
|
|
259
280
|
getToday() {
|
|
260
281
|
let today = new Date()
|
|
@@ -186,6 +186,8 @@ module Hyrax
|
|
|
186
186
|
# Removes release_varies and release_embargo from the returned attributes
|
|
187
187
|
# These form fields are only used to update release_period
|
|
188
188
|
# @return [Hash] attributes used to update the model
|
|
189
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
190
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
|
189
191
|
def permission_template_update_params(raw_attributes)
|
|
190
192
|
attributes = raw_attributes.except(:release_varies, :release_embargo)
|
|
191
193
|
# If 'varies' before date option selected, then set release_period='before' and save release_date as-is
|
|
@@ -199,19 +201,21 @@ module Hyrax
|
|
|
199
201
|
attributes[:release_date] = nil
|
|
200
202
|
end
|
|
201
203
|
|
|
202
|
-
if attributes[:release_period] == Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_NO_DELAY
|
|
203
|
-
# If release is "no delay"
|
|
204
|
+
if attributes[:release_period] == Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_NO_DELAY || (attributes[:release_period].blank? && raw_attributes[:release_varies].blank?)
|
|
205
|
+
# If release is "no delay" or is "varies" and "allow depositor to decide",
|
|
206
|
+
# then a release_date should never be allowed/specified
|
|
204
207
|
attributes[:release_date] = nil
|
|
205
208
|
end
|
|
206
209
|
|
|
207
210
|
attributes
|
|
208
211
|
end
|
|
212
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
213
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
|
209
214
|
|
|
210
215
|
# validate the hash of attributes used to update the visibility tab of the model
|
|
211
216
|
# @param [Hash] attributes
|
|
212
217
|
# @return [String, Nil] the error code if invalid, nil if valid
|
|
213
218
|
# rubocop:disable Metrics/CyclomaticComplexity
|
|
214
|
-
# rubocop:disable Metrics/AbcSize
|
|
215
219
|
# rubocop:disable Metrics/PerceivedComplexity
|
|
216
220
|
def validate_visibility_combinations(attributes)
|
|
217
221
|
return unless attributes.key?(:visibility) # only the visibility tab has validations
|
|
@@ -219,9 +223,6 @@ module Hyrax
|
|
|
219
223
|
# if "save" without any selections - none of the attributes are present
|
|
220
224
|
return "nothing" if !attributes[:release_varies] && !attributes[:release_period] && !attributes[:release_date] && !attributes[:release_embargo]
|
|
221
225
|
|
|
222
|
-
# if "varies" without sub-options (in this case, release_varies will be missing)
|
|
223
|
-
return "varies" if attributes[:release_period].blank? && attributes[:release_varies].blank?
|
|
224
|
-
|
|
225
226
|
# if "varies before" but date not selected
|
|
226
227
|
return "no_date" if attributes[:release_varies] == Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_BEFORE_DATE && attributes[:release_date].blank?
|
|
227
228
|
|
|
@@ -233,7 +234,6 @@ module Hyrax
|
|
|
233
234
|
end
|
|
234
235
|
# rubocop:enable Metrics/CyclomaticComplexity
|
|
235
236
|
# rubocop:enable Metrics/PerceivedComplexity
|
|
236
|
-
# rubocop:enable Metrics/AbcSize
|
|
237
237
|
end
|
|
238
238
|
end
|
|
239
239
|
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
|
|
3
1
|
module Hyrax
|
|
4
2
|
module HyraxHelperBehavior
|
|
5
3
|
include Hyrax::CitationsBehavior
|
|
@@ -198,13 +196,21 @@ module Hyrax
|
|
|
198
196
|
end
|
|
199
197
|
|
|
200
198
|
# A Blacklight index field helper_method
|
|
201
|
-
# @param [Hash] options from blacklight helper_method invocation. Maps
|
|
202
|
-
# @return [ActiveSupport::SafeBuffer]
|
|
199
|
+
# @param [Hash] options from blacklight helper_method invocation. Maps license URIs to links with labels.
|
|
200
|
+
# @return [ActiveSupport::SafeBuffer] license links, html_safe
|
|
203
201
|
def license_links(options)
|
|
204
202
|
service = Hyrax::LicenseService.new
|
|
205
203
|
options[:value].map { |right| link_to service.label(right), right }.to_sentence.html_safe
|
|
206
204
|
end
|
|
207
205
|
|
|
206
|
+
# A Blacklight index field helper_method
|
|
207
|
+
# @param [Hash] options from blacklight helper_method invocation. Maps rights statement URIs to links with labels.
|
|
208
|
+
# @return [ActiveSupport::SafeBuffer] rights statement links, html_safe
|
|
209
|
+
def rights_statement_links(options)
|
|
210
|
+
service = Hyrax::RightsStatementService.new
|
|
211
|
+
options[:value].map { |right| link_to service.label(right), right }.to_sentence.html_safe
|
|
212
|
+
end
|
|
213
|
+
|
|
208
214
|
def link_to_telephone(user)
|
|
209
215
|
return unless user
|
|
210
216
|
link_to user.telephone, "wtai://wp/mc;#{user.telephone}" if user.telephone
|
|
@@ -14,10 +14,16 @@
|
|
|
14
14
|
</div>
|
|
15
15
|
<div id="release-varies" class="radio">
|
|
16
16
|
<label>
|
|
17
|
-
<%= f.radio_button :release_period, '', checked: !f.object.release_varies.blank? %>
|
|
17
|
+
<%= f.radio_button :release_period, '', checked: f.object.release_period.blank? || !f.object.release_varies.blank? %>
|
|
18
18
|
<%= t('.release.varies.description') %>
|
|
19
19
|
</label>
|
|
20
20
|
<ul>
|
|
21
|
+
<li class="radio form-inline">
|
|
22
|
+
<label>
|
|
23
|
+
<%= f.radio_button :release_varies, '' %>
|
|
24
|
+
<%= t('.release.varies.any') %>
|
|
25
|
+
</label>
|
|
26
|
+
</li>
|
|
21
27
|
<li class="radio form-inline">
|
|
22
28
|
<label>
|
|
23
29
|
<%= f.radio_button :release_varies, Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_BEFORE_DATE %>
|
data/config/locales/hyrax.de.yml
CHANGED
|
@@ -133,6 +133,7 @@ de:
|
|
|
133
133
|
no_delay: Keine Verzögerung - Freigabe aller Arbeiten, sobald sie hinterlegt sind
|
|
134
134
|
title: Freigabe
|
|
135
135
|
varies:
|
|
136
|
+
any: Dem Einzahler erlauben, sich zu entscheiden
|
|
136
137
|
between: Zwischen "jetzt" und
|
|
137
138
|
description: 'Variabel - Deponenten können den Freigabedatum für eine einzelne Arbeit festlegen:'
|
|
138
139
|
embargo:
|
data/config/locales/hyrax.en.yml
CHANGED
|
@@ -80,7 +80,6 @@ en:
|
|
|
80
80
|
visibility: "The administrative set's release & visibility settings have been updated."
|
|
81
81
|
workflow: "The administrative set's workflow has been updated."
|
|
82
82
|
permission_update_errors:
|
|
83
|
-
varies: "Release option 'Varies' requires a date or embargo period."
|
|
84
83
|
no_date: "A date is required for the selected release option."
|
|
85
84
|
no_embargo: "An embargo period is required for the selected option."
|
|
86
85
|
nothing: "Select release options before pressing save."
|
|
@@ -132,6 +131,7 @@ en:
|
|
|
132
131
|
no_delay: "No delay -- release all works as soon as they are deposited"
|
|
133
132
|
title: "Release"
|
|
134
133
|
varies:
|
|
134
|
+
any: "Allow depositor to decide"
|
|
135
135
|
between: "Between \"now\" and"
|
|
136
136
|
description: "Varies -- depositors can set the release date for an individual work:"
|
|
137
137
|
embargo:
|
data/config/locales/hyrax.es.yml
CHANGED
|
@@ -133,6 +133,7 @@ es:
|
|
|
133
133
|
no_delay: Sin demora -- liberar todas los trabajos tan pronto como se depositen
|
|
134
134
|
title: Lanzamiento
|
|
135
135
|
varies:
|
|
136
|
+
any: Permitir que el depositante decida
|
|
136
137
|
between: Entre "ahora" y
|
|
137
138
|
description: 'Varía -- los depositantes pueden fijar la fecha de lanzamiento para un trabajo individual:'
|
|
138
139
|
embargo:
|
data/config/locales/hyrax.fr.yml
CHANGED
|
@@ -133,6 +133,7 @@ fr:
|
|
|
133
133
|
no_delay: Pas de retard - libère tous les travaux dès qu'ils sont déposés
|
|
134
134
|
title: Libération
|
|
135
135
|
varies:
|
|
136
|
+
any: Permettre au déposant de décider
|
|
136
137
|
between: Entre «maintenant» et
|
|
137
138
|
description: 'Variable - les déposants peuvent définir la date de sortie pour un travail individuel:'
|
|
138
139
|
embargo:
|
data/config/locales/hyrax.it.yml
CHANGED
|
@@ -133,6 +133,7 @@ it:
|
|
|
133
133
|
no_delay: Nessun ritardo - rilasciare tutti i lavori non appena vengono depositati
|
|
134
134
|
title: Liberare
|
|
135
135
|
varies:
|
|
136
|
+
any: Consentire al depositante di decidere
|
|
136
137
|
between: Tra "ora" e "
|
|
137
138
|
description: 'Varia - i depositanti possono impostare la data di rilascio per un lavoro individuale:'
|
|
138
139
|
embargo:
|
|
@@ -133,6 +133,7 @@ pt-BR:
|
|
|
133
133
|
no_delay: Sem atraso - liberte todos os trabalhos assim que eles são depositados
|
|
134
134
|
title: Lançamento
|
|
135
135
|
varies:
|
|
136
|
+
any: Permitir que o depositante decida
|
|
136
137
|
between: Entre "agora" e
|
|
137
138
|
description: 'Varia - os depositantes podem definir a data de lançamento para um trabalho individual:'
|
|
138
139
|
embargo:
|
data/config/locales/hyrax.zh.yml
CHANGED
|
@@ -71,7 +71,8 @@ class CatalogController < ApplicationController
|
|
|
71
71
|
config.add_index_field solr_name("date_uploaded", :stored_sortable, type: :date), itemprop: 'datePublished', helper_method: :human_readable_date
|
|
72
72
|
config.add_index_field solr_name("date_modified", :stored_sortable, type: :date), itemprop: 'dateModified', helper_method: :human_readable_date
|
|
73
73
|
config.add_index_field solr_name("date_created", :stored_searchable), itemprop: 'dateCreated'
|
|
74
|
-
config.add_index_field solr_name("
|
|
74
|
+
config.add_index_field solr_name("rights_statement", :stored_searchable), helper_method: :rights_statement_links
|
|
75
|
+
config.add_index_field solr_name("license", :stored_searchable), helper_method: :license_links
|
|
75
76
|
config.add_index_field solr_name("resource_type", :stored_searchable), label: "Resource Type", link_to_search: solr_name("resource_type", :facetable)
|
|
76
77
|
config.add_index_field solr_name("file_format", :stored_searchable), link_to_search: solr_name("file_format", :facetable)
|
|
77
78
|
config.add_index_field solr_name("identifier", :stored_searchable), helper_method: :index_field_link, field_name: 'identifier'
|
|
@@ -92,7 +93,8 @@ class CatalogController < ApplicationController
|
|
|
92
93
|
config.add_show_field solr_name("date_uploaded", :stored_searchable)
|
|
93
94
|
config.add_show_field solr_name("date_modified", :stored_searchable)
|
|
94
95
|
config.add_show_field solr_name("date_created", :stored_searchable)
|
|
95
|
-
config.add_show_field solr_name("
|
|
96
|
+
config.add_show_field solr_name("rights_statement", :stored_searchable)
|
|
97
|
+
config.add_show_field solr_name("license", :stored_searchable)
|
|
96
98
|
config.add_show_field solr_name("resource_type", :stored_searchable), label: "Resource Type"
|
|
97
99
|
config.add_show_field solr_name("format", :stored_searchable)
|
|
98
100
|
config.add_show_field solr_name("identifier", :stored_searchable)
|
|
@@ -248,8 +250,16 @@ class CatalogController < ApplicationController
|
|
|
248
250
|
}
|
|
249
251
|
end
|
|
250
252
|
|
|
251
|
-
config.add_search_field('
|
|
252
|
-
solr_name = solr_name("
|
|
253
|
+
config.add_search_field('rights_statement') do |field|
|
|
254
|
+
solr_name = solr_name("rights_statement", :stored_searchable)
|
|
255
|
+
field.solr_local_parameters = {
|
|
256
|
+
qf: solr_name,
|
|
257
|
+
pf: solr_name
|
|
258
|
+
}
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
config.add_search_field('license') do |field|
|
|
262
|
+
solr_name = solr_name("license", :stored_searchable)
|
|
253
263
|
field.solr_local_parameters = {
|
|
254
264
|
qf: solr_name,
|
|
255
265
|
pf: solr_name
|
|
@@ -24,8 +24,9 @@ de:
|
|
|
24
24
|
identifier_tesim: Identifikator
|
|
25
25
|
keyword_tesim: Stichwort
|
|
26
26
|
language_tesim: Sprache
|
|
27
|
+
license_tesim: Lizenz
|
|
27
28
|
publisher_tesim: Herausgeber
|
|
28
|
-
|
|
29
|
+
rights_statement_tesim: Rechte
|
|
29
30
|
subject_tesim: Fach
|
|
30
31
|
show:
|
|
31
32
|
based_near_tesim: Ort
|
|
@@ -39,8 +40,9 @@ de:
|
|
|
39
40
|
identifier_tesim: Identifikator
|
|
40
41
|
keyword_tesim: Stichwort
|
|
41
42
|
language_tesim: Sprache
|
|
43
|
+
license_tesim: Lizenz
|
|
42
44
|
publisher_tesim: Herausgeber
|
|
43
|
-
|
|
45
|
+
rights_statement_tesim: Rechte
|
|
44
46
|
subject_tesim: Fach
|
|
45
47
|
title_tesim: Titel
|
|
46
48
|
hyrax:
|
|
@@ -23,8 +23,9 @@ en:
|
|
|
23
23
|
identifier_tesim: Identifier
|
|
24
24
|
keyword_tesim: Keyword
|
|
25
25
|
language_tesim: Language
|
|
26
|
+
license_tesim: License
|
|
26
27
|
publisher_tesim: Publisher
|
|
27
|
-
|
|
28
|
+
rights_statement_tesim: Rights Statement
|
|
28
29
|
subject_tesim: Subject
|
|
29
30
|
show:
|
|
30
31
|
based_near_tesim: Location
|
|
@@ -38,8 +39,9 @@ en:
|
|
|
38
39
|
identifier_tesim: Identifier
|
|
39
40
|
keyword_tesim: Keyword
|
|
40
41
|
language_tesim: Language
|
|
42
|
+
license_tesim: License
|
|
41
43
|
publisher_tesim: Publisher
|
|
42
|
-
|
|
44
|
+
rights_statement_tesim: Rights Statement
|
|
43
45
|
subject_tesim: Subject
|
|
44
46
|
title_tesim: Title
|
|
45
47
|
hyrax:
|
|
@@ -24,8 +24,9 @@ es:
|
|
|
24
24
|
identifier_tesim: Identificador
|
|
25
25
|
keyword_tesim: Palabra clave
|
|
26
26
|
language_tesim: Idioma
|
|
27
|
+
license_tesim: Licencia
|
|
27
28
|
publisher_tesim: Editor
|
|
28
|
-
|
|
29
|
+
rights_statement_tesim: Derechos
|
|
29
30
|
subject_tesim: Tema
|
|
30
31
|
show:
|
|
31
32
|
based_near_tesim: Ubicación
|
|
@@ -39,8 +40,9 @@ es:
|
|
|
39
40
|
identifier_tesim: Identificador
|
|
40
41
|
keyword_tesim: Palabra clave
|
|
41
42
|
language_tesim: Idioma
|
|
43
|
+
license_tesim: Licencia
|
|
42
44
|
publisher_tesim: Editor
|
|
43
|
-
|
|
45
|
+
rights_statement_tesim: Derechos
|
|
44
46
|
subject_tesim: Tema
|
|
45
47
|
title_tesim: Título
|
|
46
48
|
hyrax:
|
|
@@ -24,7 +24,10 @@ fr:
|
|
|
24
24
|
identifier_tesim: Identificateur
|
|
25
25
|
keyword_tesim: Mot-clé
|
|
26
26
|
language_tesim: La langue
|
|
27
|
+
license_statement_tesim: Licence
|
|
28
|
+
license_tesim: Licence
|
|
27
29
|
publisher_tesim: Éditeur
|
|
30
|
+
rights_statement_tesim: Déclaration des droits
|
|
28
31
|
rights_tesim: Droits
|
|
29
32
|
subject_tesim: Assujettir
|
|
30
33
|
show:
|
|
@@ -39,7 +42,10 @@ fr:
|
|
|
39
42
|
identifier_tesim: Identificateur
|
|
40
43
|
keyword_tesim: Mot-clé
|
|
41
44
|
language_tesim: La langue
|
|
45
|
+
license_statement_tesim: Licence
|
|
46
|
+
license_tesim: Licence
|
|
42
47
|
publisher_tesim: Éditeur
|
|
48
|
+
rights_statement_tesim: Déclaration des droits
|
|
43
49
|
rights_tesim: Droits
|
|
44
50
|
subject_tesim: Assujettir
|
|
45
51
|
title_tesim: Titre
|
|
@@ -24,8 +24,9 @@ it:
|
|
|
24
24
|
identifier_tesim: Identifier
|
|
25
25
|
keyword_tesim: Parola chiave
|
|
26
26
|
language_tesim: Lingua
|
|
27
|
+
license_tesim: Licenza
|
|
27
28
|
publisher_tesim: Editore
|
|
28
|
-
|
|
29
|
+
rights_statement_tesim: Diritti
|
|
29
30
|
subject_tesim: Soggetto
|
|
30
31
|
show:
|
|
31
32
|
based_near_tesim: luogo
|
|
@@ -39,8 +40,9 @@ it:
|
|
|
39
40
|
identifier_tesim: Identifier
|
|
40
41
|
keyword_tesim: Parola chiave
|
|
41
42
|
language_tesim: Lingua
|
|
43
|
+
license_tesim: Licenza
|
|
42
44
|
publisher_tesim: Editore
|
|
43
|
-
|
|
45
|
+
rights_statement_tesim: Diritti
|
|
44
46
|
subject_tesim: Soggetto
|
|
45
47
|
title_tesim: Titolo
|
|
46
48
|
hyrax:
|
|
@@ -24,8 +24,9 @@ pt-BR:
|
|
|
24
24
|
identifier_tesim: Identificador
|
|
25
25
|
keyword_tesim: Palavra-chave
|
|
26
26
|
language_tesim: Língua
|
|
27
|
+
license_tesim: Licença
|
|
27
28
|
publisher_tesim: Editor
|
|
28
|
-
|
|
29
|
+
rights_statement_tesim: Direitos
|
|
29
30
|
subject_tesim: Sujeito
|
|
30
31
|
show:
|
|
31
32
|
based_near_tesim: Localização
|
|
@@ -39,8 +40,9 @@ pt-BR:
|
|
|
39
40
|
identifier_tesim: Identificador
|
|
40
41
|
keyword_tesim: Palavra-chave
|
|
41
42
|
language_tesim: Língua
|
|
43
|
+
license_tesim: Licença
|
|
42
44
|
publisher_tesim: Editor
|
|
43
|
-
|
|
45
|
+
rights_statement_tesim: Direitos
|
|
44
46
|
subject_tesim: Sujeito
|
|
45
47
|
title_tesim: Título
|
|
46
48
|
hyrax:
|
|
@@ -24,8 +24,9 @@ zh:
|
|
|
24
24
|
identifier_tesim: 识别码
|
|
25
25
|
keyword_tesim: 关键词
|
|
26
26
|
language_tesim: 语言
|
|
27
|
+
license_tesim: 执照
|
|
27
28
|
publisher_tesim: 出版者
|
|
28
|
-
|
|
29
|
+
rights_statement_tesim: 权
|
|
29
30
|
subject_tesim: 学科
|
|
30
31
|
show:
|
|
31
32
|
based_near_tesim: 位置
|
|
@@ -39,8 +40,9 @@ zh:
|
|
|
39
40
|
identifier_tesim: 识别码
|
|
40
41
|
keyword_tesim: 关键词
|
|
41
42
|
language_tesim: 语言
|
|
43
|
+
license_tesim: 执照
|
|
42
44
|
publisher_tesim: 出版者
|
|
43
|
-
|
|
45
|
+
rights_statement_tesim: 权
|
|
44
46
|
subject_tesim: 学科
|
|
45
47
|
title_tesim: 标题
|
|
46
48
|
hyrax:
|
data/lib/hyrax/version.rb
CHANGED
|
@@ -317,6 +317,13 @@ RSpec.describe Hyrax::Forms::PermissionTemplateForm do
|
|
|
317
317
|
it_behaves_like 'valid attributes'
|
|
318
318
|
end
|
|
319
319
|
|
|
320
|
+
describe 'varies, with depositor choice' do
|
|
321
|
+
let(:release_period) { '' }
|
|
322
|
+
let(:release_varies) { '' }
|
|
323
|
+
|
|
324
|
+
it_behaves_like 'valid attributes'
|
|
325
|
+
end
|
|
326
|
+
|
|
320
327
|
describe 'varies, with date selected' do
|
|
321
328
|
let(:release_date) { Time.zone.today + 2.months }
|
|
322
329
|
let(:release_varies) { Hyrax::PermissionTemplate::RELEASE_TEXT_VALUE_BEFORE_DATE }
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
|
|
3
1
|
RSpec.describe BlacklightHelper, type: :helper do
|
|
4
2
|
let(:blacklight_config) { CatalogController.blacklight_config }
|
|
5
3
|
let(:attributes) do
|
|
@@ -8,9 +6,10 @@ RSpec.describe BlacklightHelper, type: :helper do
|
|
|
8
6
|
'proxy_depositor_ssim' => ['atz@stanford.edu'],
|
|
9
7
|
'description_tesim' => ['This links to http://example.com/ What about that?'],
|
|
10
8
|
'date_uploaded_dtsi' => '2013-03-14T00:00:00Z',
|
|
11
|
-
'
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
'license_tesim' => ["http://creativecommons.org/publicdomain/zero/1.0/",
|
|
10
|
+
"http://creativecommons.org/publicdomain/mark/1.0/",
|
|
11
|
+
"http://www.europeana.eu/portal/rights/rr-r.html"],
|
|
12
|
+
'rights_statement_tesim' => ['http://rightsstatements.org/vocab/InC/1.0/'],
|
|
14
13
|
'identifier_tesim' => ['65434567654345654'],
|
|
15
14
|
'keyword_tesim' => ['taco', 'mustache'],
|
|
16
15
|
'subject_tesim' => ['Awesome'],
|
|
@@ -47,8 +46,8 @@ RSpec.describe BlacklightHelper, type: :helper do
|
|
|
47
46
|
end
|
|
48
47
|
end
|
|
49
48
|
|
|
50
|
-
context "
|
|
51
|
-
let(:field_name) { '
|
|
49
|
+
context "license_tesim" do
|
|
50
|
+
let(:field_name) { 'license_tesim' }
|
|
52
51
|
|
|
53
52
|
it do
|
|
54
53
|
is_expected.to eq "<a href=\"http://creativecommons.org/publicdomain/zero/1.0/\">Creative Commons CC0 1.0 Universal</a>, " \
|
|
@@ -57,6 +56,14 @@ RSpec.describe BlacklightHelper, type: :helper do
|
|
|
57
56
|
end
|
|
58
57
|
end
|
|
59
58
|
|
|
59
|
+
context "rights_statement_tesim" do
|
|
60
|
+
let(:field_name) { 'rights_statement_tesim' }
|
|
61
|
+
|
|
62
|
+
it do
|
|
63
|
+
is_expected.to eq "<a href=\"http://rightsstatements.org/vocab/InC/1.0/\">In Copyright</a>"
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
60
67
|
context "metadata index links" do
|
|
61
68
|
let(:search_state) { Hyrax::SearchState.new(params, blacklight_config, controller) }
|
|
62
69
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
|
|
3
1
|
def new_state
|
|
4
2
|
Blacklight::SearchState.new({}, CatalogController.blacklight_config)
|
|
5
3
|
end
|
|
@@ -352,6 +350,14 @@ RSpec.describe HyraxHelper, type: :helper do
|
|
|
352
350
|
end
|
|
353
351
|
end
|
|
354
352
|
|
|
353
|
+
describe "#rights_statment_links" do
|
|
354
|
+
it "maps the url to a link with a label" do
|
|
355
|
+
expect(helper.rights_statement_links(
|
|
356
|
+
value: ["http://rightsstatements.org/vocab/InC/1.0/"]
|
|
357
|
+
)).to eq("<a href=\"http://rightsstatements.org/vocab/InC/1.0/\">In Copyright</a>")
|
|
358
|
+
end
|
|
359
|
+
end
|
|
360
|
+
|
|
355
361
|
describe "#human_readable_date" do
|
|
356
362
|
it "ensures that the display of the date is human-readable" do
|
|
357
363
|
expect(helper.human_readable_date(value: ["2016-08-15T00:00:00Z"])).to eq("08/15/2016")
|
|
@@ -169,6 +169,25 @@ describe("VisibilityComponent", function() {
|
|
|
169
169
|
expect(target.requireEmbargo).toHaveBeenCalledWith("authenticated", futureDate);
|
|
170
170
|
});
|
|
171
171
|
});
|
|
172
|
+
describe("with required past release date, dont restrict visibility", function() {
|
|
173
|
+
beforeEach(function() {
|
|
174
|
+
spyOn(target, 'disableEmbargoAndLease');
|
|
175
|
+
});
|
|
176
|
+
it("disable embargo and lease", function() {
|
|
177
|
+
target.applyRestrictions(undefined, undefined, "2017-01-01", false);
|
|
178
|
+
expect(target.disableEmbargoAndLease).toHaveBeenCalled();
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
describe("with required past release date, and required visibility", function() {
|
|
182
|
+
beforeEach(function() {
|
|
183
|
+
spyOn(target, 'selectVisibility');
|
|
184
|
+
});
|
|
185
|
+
it("require visibility", function() {
|
|
186
|
+
var visibility = "authenticated";
|
|
187
|
+
target.applyRestrictions(visibility, undefined, "2017-01-01", false);
|
|
188
|
+
expect(target.selectVisibility).toHaveBeenCalledWith(visibility);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
172
191
|
});
|
|
173
192
|
|
|
174
193
|
//selectVisibility(visibility)
|
|
@@ -416,6 +435,31 @@ describe("VisibilityComponent", function() {
|
|
|
416
435
|
expect(target.getVisibilityAfterEmbargoInput()).toHaveProp("name", "generic_work[visibility_after_embargo]");
|
|
417
436
|
});
|
|
418
437
|
});
|
|
438
|
+
|
|
439
|
+
//checkEnabledVisibilityOption()
|
|
440
|
+
describe("checkEnabledVisibilityOption", function() {
|
|
441
|
+
describe("with disabled option selected", function() {
|
|
442
|
+
beforeEach(function() {
|
|
443
|
+
target.enableAllOptions();
|
|
444
|
+
element.find("[type='radio'][value='restricted']").prop("checked", true).prop("disabled", true);
|
|
445
|
+
});
|
|
446
|
+
it("selects last enabled radio option", function() {
|
|
447
|
+
target.checkEnabledVisibilityOption();
|
|
448
|
+
expect(element.find("[type='radio'][value='restricted']")).not.toBeChecked();
|
|
449
|
+
expect(element.find("[type='radio'][value='lease']")).toBeChecked();
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
describe("with enabled option selected", function() {
|
|
453
|
+
beforeEach(function() {
|
|
454
|
+
target.enableAllOptions();
|
|
455
|
+
element.find("[type='radio'][value='open']").prop("checked", true);
|
|
456
|
+
});
|
|
457
|
+
it("does not change selection", function() {
|
|
458
|
+
target.checkEnabledVisibilityOption();
|
|
459
|
+
expect(element.find("[type='radio'][value='open']")).toBeChecked();
|
|
460
|
+
});
|
|
461
|
+
});
|
|
462
|
+
});
|
|
419
463
|
});
|
|
420
464
|
|
|
421
465
|
// Generate a form that includes AdminSet selectbox (with a passed in option)
|
|
@@ -6,7 +6,7 @@ RSpec.describe 'catalog/_index_list_default', type: :view do
|
|
|
6
6
|
'description_tesim' => [''],
|
|
7
7
|
'date_uploaded_dtsi' => 'a date',
|
|
8
8
|
'date_modified_dtsi' => 'a date',
|
|
9
|
-
'
|
|
9
|
+
'rights_statement_tesim' => [''],
|
|
10
10
|
'embargo_release_date_dtsi' => 'a date',
|
|
11
11
|
'lease_expiration_date_dtsi' => 'a date' }
|
|
12
12
|
end
|
|
@@ -33,8 +33,8 @@ RSpec.describe 'catalog/_index_list_default', type: :view do
|
|
|
33
33
|
expect(rendered).to include 'Test proxy_depositor_ssim'
|
|
34
34
|
expect(rendered).to include '<span class="attribute-label h4">Owner:</span>'
|
|
35
35
|
expect(rendered).to include 'Test depositor_tesim'
|
|
36
|
-
expect(rendered).to include '<span class="attribute-label h4">Rights:</span>'
|
|
37
|
-
expect(rendered).to include 'Test
|
|
36
|
+
expect(rendered).to include '<span class="attribute-label h4">Rights Statement:</span>'
|
|
37
|
+
expect(rendered).to include 'Test rights_statement_tesim'
|
|
38
38
|
expect(rendered).to include '<span class="attribute-label h4">Embargo release date:</span>'
|
|
39
39
|
expect(rendered).to include 'Test embargo_release_date_dtsi'
|
|
40
40
|
expect(rendered).to include '<span class="attribute-label h4">Lease expiration date:</span>'
|
|
@@ -12,6 +12,7 @@ RSpec.describe 'hyrax/admin/admin_sets/_form_visibility.html.erb', type: :view d
|
|
|
12
12
|
it "has the form" do
|
|
13
13
|
expect(rendered).to have_selector('#visibility input[type=radio][name="permission_template[release_period]"][value=now]')
|
|
14
14
|
expect(rendered).to have_selector('#visibility input[type=radio][name="permission_template[release_period]"][value=fixed]')
|
|
15
|
+
expect(rendered).to have_selector('#visibility input[type=radio][name="permission_template[release_varies]"][value=""]')
|
|
15
16
|
expect(rendered).to have_selector('#visibility input[type=radio][name="permission_template[release_varies]"][value=before]')
|
|
16
17
|
expect(rendered).to have_selector('#visibility input[type=radio][name="permission_template[release_varies]"][value=embargo]')
|
|
17
18
|
expect(rendered).to have_selector('#visibility select[name="permission_template[release_embargo]"]')
|
data/template.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hyrax
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.0.
|
|
4
|
+
version: 2.0.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Coyne
|
|
@@ -14,7 +14,7 @@ authors:
|
|
|
14
14
|
autorequire:
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
|
-
date: 2017-10-
|
|
17
|
+
date: 2017-10-11 00:00:00.000000000 Z
|
|
18
18
|
dependencies:
|
|
19
19
|
- !ruby/object:Gem::Dependency
|
|
20
20
|
name: rails
|
|
@@ -1489,7 +1489,7 @@ files:
|
|
|
1489
1489
|
- app/services/hyrax/repository_fixity_check_service.rb
|
|
1490
1490
|
- app/services/hyrax/resource_types_service.rb
|
|
1491
1491
|
- app/services/hyrax/restriction_service.rb
|
|
1492
|
-
- app/services/hyrax/
|
|
1492
|
+
- app/services/hyrax/rights_statement_service.rb
|
|
1493
1493
|
- app/services/hyrax/statistics/collections/over_time.rb
|
|
1494
1494
|
- app/services/hyrax/statistics/depositors/summary.rb
|
|
1495
1495
|
- app/services/hyrax/statistics/file_sets/by_format.rb
|
|
@@ -2496,7 +2496,7 @@ files:
|
|
|
2496
2496
|
- spec/services/hyrax/quick_classification_query_spec.rb
|
|
2497
2497
|
- spec/services/hyrax/repository_fixity_check_service_spec.rb
|
|
2498
2498
|
- spec/services/hyrax/resource_types_service_spec.rb
|
|
2499
|
-
- spec/services/hyrax/
|
|
2499
|
+
- spec/services/hyrax/rights_statement_service_spec.rb
|
|
2500
2500
|
- spec/services/hyrax/statistics/collections/over_time_spec.rb
|
|
2501
2501
|
- spec/services/hyrax/statistics/depositors/summary_spec.rb
|
|
2502
2502
|
- spec/services/hyrax/statistics/file_sets/by_format_spec.rb
|
|
@@ -3131,7 +3131,7 @@ test_files:
|
|
|
3131
3131
|
- spec/services/hyrax/quick_classification_query_spec.rb
|
|
3132
3132
|
- spec/services/hyrax/repository_fixity_check_service_spec.rb
|
|
3133
3133
|
- spec/services/hyrax/resource_types_service_spec.rb
|
|
3134
|
-
- spec/services/hyrax/
|
|
3134
|
+
- spec/services/hyrax/rights_statement_service_spec.rb
|
|
3135
3135
|
- spec/services/hyrax/statistics/collections/over_time_spec.rb
|
|
3136
3136
|
- spec/services/hyrax/statistics/depositors/summary_spec.rb
|
|
3137
3137
|
- spec/services/hyrax/statistics/file_sets/by_format_spec.rb
|