hyrax 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/README.md +2 -2
- data/app/assets/javascripts/hyrax/file_manager/member.es6 +6 -0
- data/app/models/concerns/hyrax/file_set/derivatives.rb +1 -1
- data/app/models/concerns/hyrax/work_behavior.rb +1 -1
- data/app/models/hyrax/operation.rb +3 -1
- data/app/models/sipity/agent.rb +14 -1
- data/app/models/sipity/entity.rb +3 -1
- data/app/models/sipity/workflow_action.rb +3 -1
- data/app/models/sipity/workflow_state.rb +3 -1
- data/app/presenters/hyrax/presents_attributes.rb +2 -2
- data/app/renderers/hyrax/renderers/configured_microdata.rb +1 -3
- data/app/search_builders/hyrax/catalog_search_builder.rb +1 -1
- data/app/services/hyrax/microdata.rb +66 -0
- data/app/services/hyrax/resource_types_service.rb +1 -2
- data/config/locales/hyrax.en.yml +0 -46
- data/config/locales/hyrax.es.yml +0 -46
- data/config/schema_org.yml +46 -0
- data/db/migrate/20160328222152_create_version_committers.rb +1 -1
- data/db/migrate/20160328222153_create_checksum_audit_logs.rb +1 -1
- data/db/migrate/20160328222154_create_single_use_links.rb +1 -1
- data/db/migrate/20160328222156_add_social_to_users.rb +1 -1
- data/db/migrate/20160328222157_add_ldap_attrs_to_user.rb +1 -1
- data/db/migrate/20160328222158_add_avatars_to_users.rb +1 -1
- data/db/migrate/20160328222161_create_trophies.rb +1 -1
- data/db/migrate/20160328222162_add_linkedin_to_users.rb +1 -1
- data/db/migrate/20160328222163_create_tinymce_assets.rb +1 -1
- data/db/migrate/20160328222164_create_content_blocks.rb +1 -1
- data/db/migrate/20160328222165_create_featured_works.rb +1 -1
- data/db/migrate/20160328222166_add_external_key_to_content_blocks.rb +1 -1
- data/db/migrate/20160328222226_create_proxy_deposit_rights.rb +1 -1
- data/db/migrate/20160328222227_create_proxy_deposit_requests.rb +1 -1
- data/db/migrate/20160328222228_create_file_view_stats.rb +1 -1
- data/db/migrate/20160328222229_create_file_download_stats.rb +1 -1
- data/db/migrate/20160328222230_add_orcid_to_users.rb +1 -1
- data/db/migrate/20160328222231_create_user_stats.rb +1 -1
- data/db/migrate/20160328222232_create_work_view_stats.rb +1 -1
- data/db/migrate/20160328222233_add_works_to_user_stats.rb +1 -1
- data/db/migrate/20160328222236_change_trophy_generic_file_id_to_work_id.rb +1 -1
- data/db/migrate/20160328222237_change_proxy_deposit_generic_file_id_to_work_id.rb +1 -1
- data/db/migrate/20160328222238_change_audit_log_generic_file_id_to_file_set_id.rb +1 -1
- data/db/migrate/20160328222239_change_proxy_deposit_request_generic_file_id_to_work_id.rb +1 -1
- data/db/migrate/20160401142419_create_uploaded_files.rb +1 -1
- data/db/migrate/20160415212015_create_features.rb +1 -1
- data/db/migrate/20160427155928_create_operations.rb +1 -1
- data/db/migrate/20160510000007_change_featured_work_generic_file_id_to_work_id.rb +1 -1
- data/db/migrate/20160516190435_add_arkivo_to_users.rb +1 -1
- data/db/migrate/20160919151348_create_sipity.rb +1 -1
- data/db/migrate/20161012182404_create_sipity_workflow_methods.rb +1 -1
- data/db/migrate/20161021175854_create_permission_template.rb +1 -1
- data/db/migrate/20161021180154_create_permission_template_access.rb +1 -1
- data/db/migrate/20161116222307_add_release_to_permission_templates.rb +1 -1
- data/db/migrate/20170131142607_add_permission_template_to_sipity_workflow.rb +1 -1
- data/db/migrate/20170307142607_tidy_up_because_of_bad_exception.rb +1 -1
- data/db/migrate/20170308175556_add_allows_access_grant_to_workflow.rb +1 -1
- data/hyrax.gemspec +1 -1
- data/lib/generators/hyrax/install_generator.rb +18 -2
- data/lib/hyrax/version.rb +1 -1
- data/spec/actors/hyrax/create_with_files_actor_spec.rb +3 -3
- data/spec/controllers/catalog_controller_spec.rb +6 -6
- data/spec/controllers/hyrax/uploads_controller_spec.rb +7 -4
- data/spec/conversions/power_converters/sipity_workflow_state_spec.rb +2 -2
- data/spec/factories/uploaded_files.rb +5 -0
- data/spec/features/delete_work_spec.rb +23 -0
- data/spec/fixtures/config/schema_org.yml +5 -0
- data/spec/jobs/attach_files_to_work_job_spec.rb +2 -2
- data/spec/jobs/create_derivatives_job_spec.rb +16 -15
- data/spec/models/sipity/entity_spec.rb +2 -1
- data/spec/models/sipity/workflow_state_spec.rb +2 -2
- data/spec/renderers/hyrax/renderers/attribute_renderer_spec.rb +5 -5
- data/spec/search_builder/hyrax/catalog_search_builder_spec.rb +1 -1
- data/spec/services/hyrax/workflow/action_taken_service_spec.rb +3 -3
- data/spec/services/hyrax/workflow/notification_generator_spec.rb +1 -1
- metadata +13 -7
- data/spec/fixtures/locales/renderer.en.yml +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ba1e774b9fb00e5c4384e30c0001161c3dac629
|
4
|
+
data.tar.gz: b3c1f51c995c1a56bbbeeb447dbd9d0c2f41161a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7fede837b32421d36837ebea2aaec223fc81c89005009336cedf60fbf6e9605b726a30c8cbcbb17b3e30ebf23cdb80d7fe32aaf0ad3142882b45b50c6a88a24
|
7
|
+
data.tar.gz: d05a6e8047084d8de30add25123d815c634f6880ea37d6a0b681667ddb46bd7be8594f5b6722af92b25fd1b7678b86801fe6a2d9cc2c3c52d0de545b1566d121
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -59,7 +59,7 @@ If you have questions or need help, please email [the Hydra community tech list]
|
|
59
59
|
# Getting started
|
60
60
|
|
61
61
|
This document contains instructions specific to setting up an app with __Hyrax
|
62
|
-
v1.0.
|
62
|
+
v1.0.2__. If you are looking for instructions on installing a different
|
63
63
|
version, be sure to select the appropriate branch or tag from the drop-down
|
64
64
|
menu above.
|
65
65
|
|
@@ -133,7 +133,7 @@ Rails requires that you have a JavaScript runtime -- for example, nodejs -- inst
|
|
133
133
|
Generate a new Rails application using the template.
|
134
134
|
|
135
135
|
```
|
136
|
-
rails new my_app -m https://raw.githubusercontent.com/
|
136
|
+
rails new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v1.0.2/template.rb
|
137
137
|
```
|
138
138
|
|
139
139
|
Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
|
@@ -1,4 +1,10 @@
|
|
1
1
|
export class InputTracker {
|
2
|
+
/*
|
3
|
+
* @param element {jQuery} The field to bind to. Typically instantiated for
|
4
|
+
* the titles of each member (file_set) object as well
|
5
|
+
* the hidden work thumbnail_id and representative_id
|
6
|
+
* @param notifier {FileManagerMember}
|
7
|
+
*/
|
2
8
|
constructor(element, notifier) {
|
3
9
|
this.element = element
|
4
10
|
this.notifier = notifier
|
@@ -44,7 +44,7 @@ module Hyrax
|
|
44
44
|
Hydra::Derivatives.source_file_service = Hyrax::LocalFileService
|
45
45
|
Hydra::Derivatives.output_file_service = Hyrax::PersistDerivatives
|
46
46
|
Hydra::Derivatives::FullTextExtract.output_file_service = Hyrax::PersistDirectlyContainedOutputFileService
|
47
|
-
|
47
|
+
before_destroy :cleanup_derivatives
|
48
48
|
# This completely overrides the version in Hydra::Works so that we
|
49
49
|
# read and write to a local file. It's important that characterization runs
|
50
50
|
# before derivatives so that we have a credible mime_type field to work with.
|
@@ -18,7 +18,9 @@ module Hyrax
|
|
18
18
|
self.table_name = 'curation_concerns_operations'
|
19
19
|
acts_as_nested_set
|
20
20
|
define_callbacks :success, :failure
|
21
|
-
belongs_to :user,
|
21
|
+
belongs_to :user,
|
22
|
+
optional: true,
|
23
|
+
class_name: '::User'
|
22
24
|
|
23
25
|
# If this is a batch job (has children), check to see if all the children are complete
|
24
26
|
# @see #fail! when none of the children are in a PENDING nor PERFORMING state but at least one is in a FAILURE state
|
data/app/models/sipity/agent.rb
CHANGED
@@ -9,7 +9,6 @@ module Sipity
|
|
9
9
|
ENTITY_LEVEL_AGENT_RELATIONSHIP = 'entity_level'.freeze
|
10
10
|
WORKFLOW_LEVEL_AGENT_RELATIONSHIP = 'workflow_level'.freeze
|
11
11
|
|
12
|
-
belongs_to :proxy_for, polymorphic: true
|
13
12
|
has_many :workflow_responsibilities, dependent: :destroy, class_name: 'Sipity::WorkflowResponsibility'
|
14
13
|
has_many :entity_specific_responsibilities, dependent: :destroy, class_name: 'Sipity::EntitySpecificResponsibility'
|
15
14
|
|
@@ -17,5 +16,19 @@ module Sipity
|
|
17
16
|
foreign_key: :agent_id,
|
18
17
|
dependent: :destroy,
|
19
18
|
class_name: 'Sipity::Comment'
|
19
|
+
|
20
|
+
# Presently Hyrax::Group is a PORO not an ActiveRecord object, so
|
21
|
+
# creating a belongs to causes Rails 5.1 to try to access methods that don't exist.
|
22
|
+
# We do have this relationship, abet only conceptually:
|
23
|
+
# belongs_to :proxy_for, polymorphic: true
|
24
|
+
|
25
|
+
def proxy_for=(target)
|
26
|
+
self.proxy_for_id = target.id
|
27
|
+
self.proxy_for_type = target.class.name
|
28
|
+
end
|
29
|
+
|
30
|
+
def proxy_for
|
31
|
+
@proxy_for ||= proxy_for_type.constantize.find(proxy_for_id)
|
32
|
+
end
|
20
33
|
end
|
21
34
|
end
|
data/app/models/sipity/entity.rb
CHANGED
@@ -9,7 +9,9 @@ module Sipity
|
|
9
9
|
self.table_name = 'sipity_entities'
|
10
10
|
|
11
11
|
belongs_to :workflow, class_name: 'Sipity::Workflow'
|
12
|
-
belongs_to :workflow_state,
|
12
|
+
belongs_to :workflow_state,
|
13
|
+
optional: true,
|
14
|
+
class_name: 'Sipity::WorkflowState'
|
13
15
|
|
14
16
|
has_many :entity_specific_responsibilities, dependent: :destroy, class_name: 'Sipity::EntitySpecificResponsibility'
|
15
17
|
|
@@ -12,7 +12,9 @@ module Sipity
|
|
12
12
|
self.table_name = 'sipity_workflow_actions'
|
13
13
|
|
14
14
|
belongs_to :workflow, class_name: 'Sipity::Workflow'
|
15
|
-
belongs_to :resulting_workflow_state,
|
15
|
+
belongs_to :resulting_workflow_state,
|
16
|
+
optional: true,
|
17
|
+
class_name: 'Sipity::WorkflowState'
|
16
18
|
|
17
19
|
has_many :workflow_state_actions, dependent: :destroy, class_name: 'Sipity::WorkflowStateAction'
|
18
20
|
has_many :triggered_methods, dependent: :destroy, class_name: 'Sipity::Method'
|
@@ -4,7 +4,9 @@ module Sipity
|
|
4
4
|
class WorkflowState < ActiveRecord::Base
|
5
5
|
self.table_name = 'sipity_workflow_states'
|
6
6
|
|
7
|
-
belongs_to :workflow,
|
7
|
+
belongs_to :workflow,
|
8
|
+
class_name: 'Sipity::Workflow'
|
9
|
+
|
8
10
|
has_many :originating_workflow_state_actions,
|
9
11
|
dependent: :destroy,
|
10
12
|
class_name: 'Sipity::WorkflowStateAction',
|
@@ -34,7 +34,7 @@ module Hyrax
|
|
34
34
|
|
35
35
|
def microdata_type_to_html
|
36
36
|
return "" unless display_microdata?
|
37
|
-
value =
|
37
|
+
value = Microdata.fetch(microdata_type_key, default: Hyrax.config.microdata_default_type)
|
38
38
|
" itemscope itemtype=\"#{value}\"".html_safe
|
39
39
|
end
|
40
40
|
|
@@ -64,7 +64,7 @@ module Hyrax
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def microdata_type_key
|
67
|
-
"
|
67
|
+
"resource_type.#{human_readable_type}"
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
module Hyrax
|
2
2
|
module Renderers
|
3
3
|
module ConfiguredMicrodata
|
4
|
-
PREFIX = 'hyrax.schema_org'.freeze
|
5
|
-
|
6
4
|
def microdata?(field)
|
7
5
|
return false unless Hyrax.config.display_microdata?
|
8
6
|
translate_microdata(field: field, field_context: 'property', default: false)
|
@@ -41,7 +39,7 @@ module Hyrax
|
|
41
39
|
private
|
42
40
|
|
43
41
|
def translate_microdata(field:, field_context:, default: true)
|
44
|
-
|
42
|
+
Microdata.fetch("#{field}.#{field_context}", default: default)
|
45
43
|
end
|
46
44
|
end
|
47
45
|
end
|
@@ -7,7 +7,7 @@ class Hyrax::CatalogSearchBuilder < Hyrax::SearchBuilder
|
|
7
7
|
|
8
8
|
# show both works that match the query and works that contain files that match the query
|
9
9
|
def show_works_or_works_that_contain_files(solr_parameters)
|
10
|
-
return if blacklight_params[:q].blank? || blacklight_params[:search_field]
|
10
|
+
return if blacklight_params[:q].blank? || blacklight_params[:search_field] != 'all_fields'
|
11
11
|
solr_parameters[:user_query] = blacklight_params[:q]
|
12
12
|
solr_parameters[:q] = new_query
|
13
13
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Hyrax
|
2
|
+
class Microdata
|
3
|
+
include Singleton
|
4
|
+
FILENAME = 'config/schema_org.yml'.freeze
|
5
|
+
TOP_KEY = 'schema_org'.freeze
|
6
|
+
|
7
|
+
def self.fetch(key, options = {})
|
8
|
+
instance.fetch(key, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def fetch(key, options)
|
12
|
+
data.fetch(key) { options[:default] }
|
13
|
+
end
|
14
|
+
|
15
|
+
# Allow clients to register paths providing config data sources.
|
16
|
+
# Register a config files like this:
|
17
|
+
# Microdata.load_path << 'path/to/locale/en.yml'
|
18
|
+
def self.load_path
|
19
|
+
@load_path ||= [FILENAME]
|
20
|
+
end
|
21
|
+
|
22
|
+
# Sets the load path instance.
|
23
|
+
class << self
|
24
|
+
attr_writer :load_path
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.reload!
|
28
|
+
instance.reload!
|
29
|
+
end
|
30
|
+
|
31
|
+
def reload!
|
32
|
+
@data = nil
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def data
|
38
|
+
@data ||= begin
|
39
|
+
flatten(yaml)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def yaml
|
44
|
+
yaml = {}
|
45
|
+
self.class.load_path.each do |path|
|
46
|
+
from_file = YAML.safe_load(File.open(path))[TOP_KEY]
|
47
|
+
yaml.deep_merge!(from_file) if from_file
|
48
|
+
end
|
49
|
+
yaml
|
50
|
+
end
|
51
|
+
|
52
|
+
# Given a deeply nested hash, return a single hash
|
53
|
+
def flatten(hash)
|
54
|
+
hash.each_with_object({}) do |(key, value), h|
|
55
|
+
if value.instance_of?(Hash)
|
56
|
+
value.map do |k, v|
|
57
|
+
# We could add recursion here if we ever had more than 2 levels
|
58
|
+
h["#{key}.#{k}"] = v
|
59
|
+
end
|
60
|
+
else
|
61
|
+
h[key] = value
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -16,8 +16,7 @@ module Hyrax
|
|
16
16
|
# @param [String] id identifier of the resource type
|
17
17
|
def self.microdata_type(id)
|
18
18
|
return Hyrax.config.microdata_default_type if id.nil?
|
19
|
-
|
20
|
-
default: Hyrax.config.microdata_default_type)
|
19
|
+
Microdata.fetch("resource_type.#{id}", default: Hyrax.config.microdata_default_type)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
data/config/locales/hyrax.en.yml
CHANGED
@@ -493,52 +493,6 @@ en:
|
|
493
493
|
subject: "Batch upload complete"
|
494
494
|
title: "Files uploaded successfully"
|
495
495
|
passive_consent_to_agreement: "By saving this work I agree to the"
|
496
|
-
schema_org:
|
497
|
-
based_near:
|
498
|
-
property: contentLocation
|
499
|
-
type: "http://schema.org/Place"
|
500
|
-
value: name
|
501
|
-
contributor:
|
502
|
-
property: contributor
|
503
|
-
# used as the itemprop value for itemscoped attributes
|
504
|
-
type: "http://schema.org/Person"
|
505
|
-
value: name
|
506
|
-
creator:
|
507
|
-
property: creator
|
508
|
-
type: "http://schema.org/Person"
|
509
|
-
value: name
|
510
|
-
date_created:
|
511
|
-
property: dateCreated
|
512
|
-
description:
|
513
|
-
property: description
|
514
|
-
keyword:
|
515
|
-
property: keywords
|
516
|
-
language:
|
517
|
-
property: inLanguage
|
518
|
-
publisher:
|
519
|
-
property: publisher
|
520
|
-
type: "http://schema.org/Organization"
|
521
|
-
value: name
|
522
|
-
resource_type:
|
523
|
-
Article: "http://schema.org/Article"
|
524
|
-
Audio: "http://schema.org/AudioObject"
|
525
|
-
Book: "http://schema.org/Book"
|
526
|
-
Conference Proceeding: "http://schema.org/ScholarlyArticle"
|
527
|
-
Dataset: "http://schema.org/Dataset"
|
528
|
-
Dissertation: "http://schema.org/ScholarlyArticle"
|
529
|
-
Image: "http://schema.org/ImageObject"
|
530
|
-
Map or Cartographic Material: "http://schema.org/Map"
|
531
|
-
Masters Thesis: "http://schema.org/ScholarlyArticle"
|
532
|
-
Part of Book: "http://schema.org/Book"
|
533
|
-
Research Paper: "http://schema.org/ScholarlyArticle"
|
534
|
-
Software or Program Code: "http://schema.org/Code"
|
535
|
-
Video: "http://schema.org/VideoObject"
|
536
|
-
subject:
|
537
|
-
property: about
|
538
|
-
type: "http://schema.org/Thing"
|
539
|
-
value: name
|
540
|
-
title:
|
541
|
-
property: name
|
542
496
|
search:
|
543
497
|
button:
|
544
498
|
html: '<span class="glyphicon glyphicon-search"></span> Go'
|
data/config/locales/hyrax.es.yml
CHANGED
@@ -492,52 +492,6 @@ es:
|
|
492
492
|
subject: "Carga en lote completa"
|
493
493
|
title: "Archivos cargados satisfactoriamente"
|
494
494
|
passive_consent_to_agreement: "Al salvar este trabajo yo acepto a"
|
495
|
-
schema_org:
|
496
|
-
based_near:
|
497
|
-
property: contentLocation
|
498
|
-
type: "http://schema.org/Place"
|
499
|
-
value: name
|
500
|
-
contributor:
|
501
|
-
property: contributor
|
502
|
-
# used as the itemprop value for itemscoped attributes
|
503
|
-
type: "http://schema.org/Person"
|
504
|
-
value: name
|
505
|
-
creator:
|
506
|
-
property: creator
|
507
|
-
type: "http://schema.org/Person"
|
508
|
-
value: name
|
509
|
-
date_created:
|
510
|
-
property: dateCreated
|
511
|
-
description:
|
512
|
-
property: description
|
513
|
-
keyword:
|
514
|
-
property: keywords
|
515
|
-
language:
|
516
|
-
property: inLanguage
|
517
|
-
publisher:
|
518
|
-
property: publisher
|
519
|
-
type: "http://schema.org/Organization"
|
520
|
-
value: name
|
521
|
-
resource_type:
|
522
|
-
Article: "http://schema.org/Article"
|
523
|
-
Audio: "http://schema.org/AudioObject"
|
524
|
-
Book: "http://schema.org/Book"
|
525
|
-
Conference Proceeding: "http://schema.org/ScholarlyArticle"
|
526
|
-
Dataset: "http://schema.org/Dataset"
|
527
|
-
Dissertation: "http://schema.org/ScholarlyArticle"
|
528
|
-
Image: "http://schema.org/ImageObject"
|
529
|
-
Map or Cartographic Material: "http://schema.org/Map"
|
530
|
-
Masters Thesis: "http://schema.org/ScholarlyArticle"
|
531
|
-
Part of Book: "http://schema.org/Book"
|
532
|
-
Research Paper: "http://schema.org/ScholarlyArticle"
|
533
|
-
Software or Program Code: "http://schema.org/Code"
|
534
|
-
Video: "http://schema.org/VideoObject"
|
535
|
-
subject:
|
536
|
-
property: about
|
537
|
-
type: "http://schema.org/Thing"
|
538
|
-
value: name
|
539
|
-
title:
|
540
|
-
property: name
|
541
495
|
search:
|
542
496
|
button:
|
543
497
|
html: '<span class="glyphicon glyphicon-search"></span> Ir'
|
@@ -0,0 +1,46 @@
|
|
1
|
+
schema_org:
|
2
|
+
based_near:
|
3
|
+
property: contentLocation
|
4
|
+
type: "http://schema.org/Place"
|
5
|
+
value: name
|
6
|
+
contributor:
|
7
|
+
property: contributor
|
8
|
+
# used as the itemprop value for itemscoped attributes
|
9
|
+
type: "http://schema.org/Person"
|
10
|
+
value: name
|
11
|
+
creator:
|
12
|
+
property: creator
|
13
|
+
type: "http://schema.org/Person"
|
14
|
+
value: name
|
15
|
+
date_created:
|
16
|
+
property: dateCreated
|
17
|
+
description:
|
18
|
+
property: description
|
19
|
+
keyword:
|
20
|
+
property: keywords
|
21
|
+
language:
|
22
|
+
property: inLanguage
|
23
|
+
publisher:
|
24
|
+
property: publisher
|
25
|
+
type: "http://schema.org/Organization"
|
26
|
+
value: name
|
27
|
+
resource_type:
|
28
|
+
Article: "http://schema.org/Article"
|
29
|
+
Audio: "http://schema.org/AudioObject"
|
30
|
+
Book: "http://schema.org/Book"
|
31
|
+
Conference Proceeding: "http://schema.org/ScholarlyArticle"
|
32
|
+
Dataset: "http://schema.org/Dataset"
|
33
|
+
Dissertation: "http://schema.org/ScholarlyArticle"
|
34
|
+
Image: "http://schema.org/ImageObject"
|
35
|
+
Map or Cartographic Material: "http://schema.org/Map"
|
36
|
+
Masters Thesis: "http://schema.org/ScholarlyArticle"
|
37
|
+
Part of Book: "http://schema.org/Book"
|
38
|
+
Research Paper: "http://schema.org/ScholarlyArticle"
|
39
|
+
Software or Program Code: "http://schema.org/Code"
|
40
|
+
Video: "http://schema.org/VideoObject"
|
41
|
+
subject:
|
42
|
+
property: about
|
43
|
+
type: "http://schema.org/Thing"
|
44
|
+
value: name
|
45
|
+
title:
|
46
|
+
property: name
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class ChangeAuditLogGenericFileIdToFileSetId < ActiveRecord::Migration
|
1
|
+
class ChangeAuditLogGenericFileIdToFileSetId < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
rename_column :checksum_audit_logs, :generic_file_id, :file_set_id unless ChecksumAuditLog.column_names.include?('file_set_id')
|
4
4
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class ChangeProxyDepositRequestGenericFileIdToWorkId < ActiveRecord::Migration
|
1
|
+
class ChangeProxyDepositRequestGenericFileIdToWorkId < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
rename_column :proxy_deposit_requests, :generic_file_id, :generic_id if ProxyDepositRequest.column_names.include?('generic_file_id')
|
4
4
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class ChangeFeaturedWorkGenericFileIdToWorkId < ActiveRecord::Migration
|
1
|
+
class ChangeFeaturedWorkGenericFileIdToWorkId < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
return unless column_exists?(:featured_works, :generic_file_id)
|
4
4
|
rename_column :featured_works, :generic_file_id, :work_id
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class AddPermissionTemplateToSipityWorkflow < ActiveRecord::Migration
|
1
|
+
class AddPermissionTemplateToSipityWorkflow < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
add_column :sipity_workflows, :permission_template_id, :integer, index: true
|
4
4
|
remove_index :sipity_workflows, :name
|
data/hyrax.gemspec
CHANGED
@@ -56,7 +56,7 @@ Gem::Specification.new do |spec|
|
|
56
56
|
spec.add_dependency 'dry-validation', '~> 0.9'
|
57
57
|
spec.add_dependency 'dry-equalizer', '~> 0.2'
|
58
58
|
spec.add_dependency 'dry-struct', '~> 0.1'
|
59
|
-
spec.add_dependency 'active_attr', '~> 0.9
|
59
|
+
spec.add_dependency 'active_attr', '~> 0.9'
|
60
60
|
spec.add_dependency 'redlock', '~> 0.1.2'
|
61
61
|
spec.add_dependency 'retriable', '>= 2.9', '< 4.0'
|
62
62
|
spec.add_dependency 'active-fedora', '>= 11.1.3'
|
@@ -23,7 +23,7 @@ module Hyrax
|
|
23
23
|
13. Installs hyrax assets
|
24
24
|
14. Updates simple_form to use browser validations
|
25
25
|
15. Installs Blacklight gallery (and removes it's scss)
|
26
|
-
16.
|
26
|
+
16. Install jquery-datatables
|
27
27
|
17. Initializes the active-fedora_noid database-backed minter
|
28
28
|
18. Adds configuration to config/application.rb to fix tinymce asset compiling
|
29
29
|
"""
|
@@ -143,7 +143,23 @@ module Hyrax
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def datatables
|
146
|
-
|
146
|
+
javascript_manifest = 'app/assets/javascripts/application.js'
|
147
|
+
# Generator is broken https://github.com/rweng/jquery-datatables-rails/issues/225
|
148
|
+
# generate 'jquery:datatables:install bootstrap3'
|
149
|
+
insert_into_file javascript_manifest, after: /jquery.?\n/ do
|
150
|
+
"//= require jquery_ujs\n" \
|
151
|
+
"//= require dataTables/jquery.dataTables\n" \
|
152
|
+
"//= require dataTables/bootstrap/3/jquery.dataTables.bootstrap\n"
|
153
|
+
end
|
154
|
+
|
155
|
+
# This is only necessary for Rails 5.1 and hopefully is temporary.
|
156
|
+
# There was some trouble getting the file-manager javascript (remote forms) to work well
|
157
|
+
# with rails-ujs. Note jquery_ujs was added to the block above (after jQuery)
|
158
|
+
gsub_file javascript_manifest, 'require rails-ujs', ''
|
159
|
+
|
160
|
+
insert_into_file 'app/assets/stylesheets/application.css', before: ' *= require_self' do
|
161
|
+
" *= require dataTables/bootstrap/3/jquery.dataTables.bootstrap\n"
|
162
|
+
end
|
147
163
|
end
|
148
164
|
|
149
165
|
def af_noid_database_minter_initialize
|
data/lib/hyrax/version.rb
CHANGED
@@ -9,9 +9,9 @@ describe Hyrax::CreateWithFilesActor do
|
|
9
9
|
Hyrax::Actors::ActorStack.new(work, ::Ability.new(user), [described_class])
|
10
10
|
end
|
11
11
|
let(:user) { create(:user) }
|
12
|
-
let(:uploaded_file1) { Hyrax::UploadedFile.create(user: user) }
|
13
|
-
let(:uploaded_file2) { Hyrax::UploadedFile.create(user: user) }
|
14
12
|
let(:work) { create(:generic_work, user: user) }
|
13
|
+
let(:uploaded_file1) { create(:uploaded_file, user: user) }
|
14
|
+
let(:uploaded_file2) { create(:uploaded_file, user: user) }
|
15
15
|
let(:uploaded_file_ids) { [uploaded_file1.id, uploaded_file2.id] }
|
16
16
|
let(:attributes) { { uploaded_files: uploaded_file_ids } }
|
17
17
|
|
@@ -38,7 +38,7 @@ describe Hyrax::CreateWithFilesActor do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
context "when uploaded_file_ids don't belong to me" do
|
41
|
-
let(:uploaded_file2) {
|
41
|
+
let(:uploaded_file2) { create(:uploaded_file) }
|
42
42
|
it "doesn't attach files" do
|
43
43
|
expect(AttachFilesToWorkJob).not_to receive(:perform_later)
|
44
44
|
expect(actor.public_send(mode, attributes)).to be false
|
@@ -113,18 +113,18 @@ describe CatalogController, type: :controller do
|
|
113
113
|
edit_access_person_ssim: [user.user_key] }
|
114
114
|
end
|
115
115
|
|
116
|
-
it "finds work and work that contains file with title" do
|
117
|
-
get :index, params: { q: 'find me' }
|
116
|
+
it "finds a work and a work that contains a file set with a matching title" do
|
117
|
+
get :index, params: { q: 'find me', search_field: 'all_fields' }
|
118
118
|
expect(assigns(:document_list).map(&:id)).to contain_exactly(work1[:id], work2[:id])
|
119
119
|
end
|
120
120
|
|
121
|
-
it "finds work that contains file with title" do
|
122
|
-
get :index, params: { q: 'other file' }
|
121
|
+
it "finds a work that contains a file set with a matching title" do
|
122
|
+
get :index, params: { q: 'other file', search_field: 'all_fields' }
|
123
123
|
expect(assigns(:document_list).map(&:id)).to contain_exactly(work1[:id])
|
124
124
|
end
|
125
125
|
|
126
|
-
it "finds work with title" do
|
127
|
-
get :index, params: { q: 'me too' }
|
126
|
+
it "finds a work with a matching title" do
|
127
|
+
get :index, params: { q: 'me too', search_field: 'all_fields' }
|
128
128
|
expect(assigns(:document_list).map(&:id)).to contain_exactly(work1[:id])
|
129
129
|
end
|
130
130
|
end
|
@@ -26,7 +26,7 @@ describe Hyrax::UploadsController do
|
|
26
26
|
|
27
27
|
describe "#destroy" do
|
28
28
|
let(:file) { File.open(fixture_path + '/world.png') }
|
29
|
-
let(:uploaded_file) {
|
29
|
+
let(:uploaded_file) { create(:uploaded_file, file: file, user: user) }
|
30
30
|
|
31
31
|
context "when signed in" do
|
32
32
|
before do
|
@@ -39,9 +39,12 @@ describe Hyrax::UploadsController do
|
|
39
39
|
expect(File.exist?(uploaded_file.file.file.file)).to be false
|
40
40
|
end
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
context "for a file that doesn't belong to me" do
|
43
|
+
let(:uploaded_file) { create(:uploaded_file, file: file) }
|
44
|
+
it "doesn't destroy" do
|
45
|
+
delete :destroy, params: { id: uploaded_file }
|
46
|
+
expect(response.status).to eq 401
|
47
|
+
end
|
45
48
|
end
|
46
49
|
end
|
47
50
|
|
@@ -3,13 +3,13 @@ require 'spec_helper'
|
|
3
3
|
RSpec.describe 'PowerConverter', no_clean: true do
|
4
4
|
context 'sipity_workflow_state' do
|
5
5
|
let(:workflow_state) { Sipity::WorkflowState.new(id: 1, name: 'hello') }
|
6
|
-
let(:workflow) {
|
6
|
+
let(:workflow) { create(:workflow) }
|
7
7
|
it 'will convert a Sipity::WorkflowState' do
|
8
8
|
expect(PowerConverter.convert(workflow_state, to: :sipity_workflow_state)).to eq(workflow_state)
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'will convert a string based on scope' do
|
12
|
-
|
12
|
+
create(:workflow_state, workflow_id: workflow.id, name: 'hello')
|
13
13
|
PowerConverter.convert('hello', scope: workflow, to: :sipity_workflow_state)
|
14
14
|
end
|
15
15
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
RSpec.feature 'Deleting a work', type: :feature do
|
2
|
+
let(:user) { create(:user) }
|
3
|
+
let(:work) { build(:work, user: user) }
|
4
|
+
let(:file_set) { create(:file_set, user: user, title: ['ABC123xyz']) }
|
5
|
+
let(:file) { File.open(fixture_path + '/world.png') }
|
6
|
+
|
7
|
+
before do
|
8
|
+
sign_in user
|
9
|
+
Hydra::Works::AddFileToFileSet.call(file_set, file, :original_file)
|
10
|
+
work.ordered_members << file_set
|
11
|
+
work.read_groups = []
|
12
|
+
work.save!
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'After deleting a work from the work show page' do
|
16
|
+
it 'redirects to my dashboard' do
|
17
|
+
visit hyrax_generic_work_path(work)
|
18
|
+
click_on('Delete', match: :first)
|
19
|
+
expect(page).to have_current_path(hyrax.dashboard_works_path, only_path: true)
|
20
|
+
expect(page).to have_content 'Deleted Test title'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -2,8 +2,8 @@ describe AttachFilesToWorkJob do
|
|
2
2
|
context "happy path" do
|
3
3
|
let(:file1) { File.open(fixture_path + '/world.png') }
|
4
4
|
let(:file2) { File.open(fixture_path + '/image.jp2') }
|
5
|
-
let(:uploaded_file1) {
|
6
|
-
let(:uploaded_file2) {
|
5
|
+
let(:uploaded_file1) { build(:uploaded_file, file: file1) }
|
6
|
+
let(:uploaded_file2) { build(:uploaded_file, file: file2) }
|
7
7
|
let(:generic_work) { create(:public_generic_work) }
|
8
8
|
|
9
9
|
context "with uploaded files on the filesystem" do
|
@@ -66,30 +66,31 @@ describe CreateDerivativesJob do
|
|
66
66
|
|
67
67
|
context "with a pdf file" do
|
68
68
|
let(:file_set) { create(:file_set) }
|
69
|
-
let(:params) { { qt: "search", q: "CutePDF", qf: "all_text_timv" } }
|
70
69
|
|
71
70
|
let(:file) do
|
72
|
-
Hydra::PCDM::File.new
|
73
|
-
f.content = File.open(File.join(fixture_path, "hyrax/hyrax_test4.pdf"))
|
71
|
+
Hydra::PCDM::File.new do |f|
|
72
|
+
f.content = File.open(File.join(fixture_path, "hyrax/hyrax_test4.pdf"))
|
74
73
|
f.original_name = 'test.pdf'
|
75
|
-
f.
|
74
|
+
f.mime_type = 'application/pdf'
|
76
75
|
end
|
77
76
|
end
|
78
77
|
|
79
|
-
let(:search_response) do
|
80
|
-
Blacklight::Solr::Response.new(
|
81
|
-
Blacklight.default_index.connection.get("select", params: params),
|
82
|
-
params
|
83
|
-
)
|
84
|
-
end
|
85
|
-
|
86
78
|
before do
|
87
|
-
|
88
|
-
|
79
|
+
file_set.original_file = file
|
80
|
+
file_set.save!
|
89
81
|
end
|
90
82
|
|
91
|
-
it "
|
92
|
-
expect(
|
83
|
+
it "runs a full text extract" do
|
84
|
+
expect(Hydra::Derivatives::PdfDerivatives).to receive(:create)
|
85
|
+
.with(/test\.pdf/, outputs: [{ label: :thumbnail,
|
86
|
+
format: 'jpg',
|
87
|
+
size: '338x493',
|
88
|
+
url: String }])
|
89
|
+
expect(Hydra::Derivatives::FullTextExtract).to receive(:create)
|
90
|
+
.with(/test\.pdf/, outputs: [{ url: RDF::URI,
|
91
|
+
container: "extracted_text" }])
|
92
|
+
|
93
|
+
described_class.perform_now(file_set, file.id)
|
93
94
|
end
|
94
95
|
end
|
95
96
|
end
|
@@ -18,8 +18,9 @@ module Sipity
|
|
18
18
|
|
19
19
|
describe '#proxy_for' do
|
20
20
|
let(:work) { FactoryGirl.create(:generic_work) }
|
21
|
+
let(:entity) { Sipity::Entity.new(proxy_for_global_id: work.to_global_id) }
|
22
|
+
|
21
23
|
it 'will retrieve based on a GlobalID of the object' do
|
22
|
-
entity = Sipity::Entity.create!(proxy_for_global_id: work.to_global_id, workflow_state_id: 1, workflow_id: 2)
|
23
24
|
expect(entity.proxy_for).to eq(work)
|
24
25
|
end
|
25
26
|
end
|
@@ -5,8 +5,8 @@ module Sipity
|
|
5
5
|
its(:column_names) { is_expected.to include("name") }
|
6
6
|
|
7
7
|
describe "#entities" do
|
8
|
-
let(:workflow_state) {
|
9
|
-
let!(:entity) { Sipity::Entity.create(workflow_state: workflow_state, proxy_for_global_id: "abc123", workflow_id: workflow_state.workflow_id) }
|
8
|
+
let(:workflow_state) { create(:workflow_state, name: 'test') }
|
9
|
+
let!(:entity) { Sipity::Entity.create!(workflow_state: workflow_state, proxy_for_global_id: "abc123", workflow_id: workflow_state.workflow_id) }
|
10
10
|
it "has entites" do
|
11
11
|
expect(workflow_state.entities).to match_array([entity])
|
12
12
|
end
|
@@ -3,14 +3,14 @@ require 'spec_helper'
|
|
3
3
|
describe Hyrax::Renderers::AttributeRenderer do
|
4
4
|
let(:field) { :name }
|
5
5
|
let(:renderer) { described_class.new(field, ['Bob', 'Jessica']) }
|
6
|
-
let(:yml_path) { File.join(fixture_path, '
|
6
|
+
let(:yml_path) { File.join(fixture_path, 'config', 'schema_org.{yml}') }
|
7
7
|
before do
|
8
|
-
|
9
|
-
|
8
|
+
Hyrax::Microdata.load_path += Dir[yml_path]
|
9
|
+
Hyrax::Microdata.reload!
|
10
10
|
end
|
11
11
|
after do
|
12
|
-
|
13
|
-
|
12
|
+
Hyrax::Microdata.load_path -= Dir[yml_path]
|
13
|
+
Hyrax::Microdata.reload!
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "#attribute_to_html" do
|
@@ -2,7 +2,7 @@ describe Hyrax::CatalogSearchBuilder do
|
|
2
2
|
let(:context) { double }
|
3
3
|
let(:builder) { described_class.new(context).with(blacklight_params) }
|
4
4
|
let(:solr_params) { Blacklight::Solr::Request.new }
|
5
|
-
let(:blacklight_params) { { q: user_query } }
|
5
|
+
let(:blacklight_params) { { q: user_query, search_field: 'all_fields' } }
|
6
6
|
let(:user_query) { "find me" }
|
7
7
|
|
8
8
|
describe "#show_works_or_works_that_contain_files" do
|
@@ -8,9 +8,9 @@ RSpec.describe Hyrax::Workflow::ActionTakenService do
|
|
8
8
|
|
9
9
|
let(:triggered_methods) { [instance_double(Sipity::Method, service_name: 'FooBar')] }
|
10
10
|
let(:triggered_methods_rel) do
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
double('Sipity::Method::ActiveRecord_Relation',
|
12
|
+
order: triggered_methods,
|
13
|
+
any?: true)
|
14
14
|
end
|
15
15
|
let(:work) { instance_double(GenericWork, id: '9999') }
|
16
16
|
let(:action) { instance_double(Sipity::WorkflowAction, triggered_methods: triggered_methods_rel) }
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
module Hyrax
|
3
3
|
module Workflow
|
4
4
|
RSpec.describe NotificationGenerator, no_clean: true do
|
5
|
-
let(:workflow) {
|
5
|
+
let(:workflow) { create(:workflow) }
|
6
6
|
let(:recipients) { { to: 'creating_user', cc: 'advising', bcc: "data_observing" } }
|
7
7
|
|
8
8
|
context '#call' do
|
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: 1.0.
|
4
|
+
version: 1.0.2
|
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-
|
17
|
+
date: 2017-06-30 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: hydra-head
|
@@ -566,14 +566,14 @@ dependencies:
|
|
566
566
|
requirements:
|
567
567
|
- - "~>"
|
568
568
|
- !ruby/object:Gem::Version
|
569
|
-
version: 0.9
|
569
|
+
version: '0.9'
|
570
570
|
type: :runtime
|
571
571
|
prerelease: false
|
572
572
|
version_requirements: !ruby/object:Gem::Requirement
|
573
573
|
requirements:
|
574
574
|
- - "~>"
|
575
575
|
- !ruby/object:Gem::Version
|
576
|
-
version: 0.9
|
576
|
+
version: '0.9'
|
577
577
|
- !ruby/object:Gem::Dependency
|
578
578
|
name: redlock
|
579
579
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1442,6 +1442,7 @@ files:
|
|
1442
1442
|
- app/services/hyrax/lock_manager.rb
|
1443
1443
|
- app/services/hyrax/lockable.rb
|
1444
1444
|
- app/services/hyrax/message_user_service.rb
|
1445
|
+
- app/services/hyrax/microdata.rb
|
1445
1446
|
- app/services/hyrax/noid.rb
|
1446
1447
|
- app/services/hyrax/parent_service.rb
|
1447
1448
|
- app/services/hyrax/persist_derivatives.rb
|
@@ -1829,6 +1830,7 @@ files:
|
|
1829
1830
|
- config/locales/hyrax.zh.yml
|
1830
1831
|
- config/locales/simple_form.en.yml
|
1831
1832
|
- config/routes.rb
|
1833
|
+
- config/schema_org.yml
|
1832
1834
|
- db/migrate/20160328222152_create_version_committers.rb
|
1833
1835
|
- db/migrate/20160328222153_create_checksum_audit_logs.rb
|
1834
1836
|
- db/migrate/20160328222154_create_single_use_links.rb
|
@@ -2081,6 +2083,7 @@ files:
|
|
2081
2083
|
- spec/factories/proxy_deposit_requests.rb
|
2082
2084
|
- spec/factories/single_use_links.rb
|
2083
2085
|
- spec/factories/sipity_entities.rb
|
2086
|
+
- spec/factories/uploaded_files.rb
|
2084
2087
|
- spec/factories/users.rb
|
2085
2088
|
- spec/factories/workflow_actions.rb
|
2086
2089
|
- spec/factories/workflow_states.rb
|
@@ -2097,6 +2100,7 @@ files:
|
|
2097
2100
|
- spec/features/contact_form_spec.rb
|
2098
2101
|
- spec/features/create_child_work_spec.rb
|
2099
2102
|
- spec/features/create_work_spec.rb
|
2103
|
+
- spec/features/delete_work_spec.rb
|
2100
2104
|
- spec/features/display_dashboard_spec.rb
|
2101
2105
|
- spec/features/edit_file_spec.rb
|
2102
2106
|
- spec/features/edit_work_spec.rb
|
@@ -2117,6 +2121,7 @@ files:
|
|
2117
2121
|
- spec/fixtures/Example.ogg
|
2118
2122
|
- spec/fixtures/authorities/licenses.yml
|
2119
2123
|
- spec/fixtures/charter.docx
|
2124
|
+
- spec/fixtures/config/schema_org.yml
|
2120
2125
|
- spec/fixtures/countdown.avi
|
2121
2126
|
- spec/fixtures/docx_fits.xml
|
2122
2127
|
- spec/fixtures/dublin_core_rdf_descMetadata.nt
|
@@ -2130,7 +2135,6 @@ files:
|
|
2130
2135
|
- spec/fixtures/image.png
|
2131
2136
|
- spec/fixtures/jp2_fits.xml
|
2132
2137
|
- spec/fixtures/jpg_fits.xml
|
2133
|
-
- spec/fixtures/locales/renderer.en.yml
|
2134
2138
|
- spec/fixtures/mp3_fits.xml
|
2135
2139
|
- spec/fixtures/pdf_fits.xml
|
2136
2140
|
- spec/fixtures/piano_note.wav
|
@@ -2559,7 +2563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2559
2563
|
version: '0'
|
2560
2564
|
requirements: []
|
2561
2565
|
rubyforge_project:
|
2562
|
-
rubygems_version: 2.6.
|
2566
|
+
rubygems_version: 2.6.8
|
2563
2567
|
signing_key:
|
2564
2568
|
specification_version: 4
|
2565
2569
|
summary: Hyrax is a front-end based on the robust Hydra framework, providing a user
|
@@ -2668,6 +2672,7 @@ test_files:
|
|
2668
2672
|
- spec/factories/proxy_deposit_requests.rb
|
2669
2673
|
- spec/factories/single_use_links.rb
|
2670
2674
|
- spec/factories/sipity_entities.rb
|
2675
|
+
- spec/factories/uploaded_files.rb
|
2671
2676
|
- spec/factories/users.rb
|
2672
2677
|
- spec/factories/workflow_actions.rb
|
2673
2678
|
- spec/factories/workflow_states.rb
|
@@ -2684,6 +2689,7 @@ test_files:
|
|
2684
2689
|
- spec/features/contact_form_spec.rb
|
2685
2690
|
- spec/features/create_child_work_spec.rb
|
2686
2691
|
- spec/features/create_work_spec.rb
|
2692
|
+
- spec/features/delete_work_spec.rb
|
2687
2693
|
- spec/features/display_dashboard_spec.rb
|
2688
2694
|
- spec/features/edit_file_spec.rb
|
2689
2695
|
- spec/features/edit_work_spec.rb
|
@@ -2704,6 +2710,7 @@ test_files:
|
|
2704
2710
|
- spec/fixtures/Example.ogg
|
2705
2711
|
- spec/fixtures/authorities/licenses.yml
|
2706
2712
|
- spec/fixtures/charter.docx
|
2713
|
+
- spec/fixtures/config/schema_org.yml
|
2707
2714
|
- spec/fixtures/countdown.avi
|
2708
2715
|
- spec/fixtures/docx_fits.xml
|
2709
2716
|
- spec/fixtures/dublin_core_rdf_descMetadata.nt
|
@@ -2717,7 +2724,6 @@ test_files:
|
|
2717
2724
|
- spec/fixtures/image.png
|
2718
2725
|
- spec/fixtures/jp2_fits.xml
|
2719
2726
|
- spec/fixtures/jpg_fits.xml
|
2720
|
-
- spec/fixtures/locales/renderer.en.yml
|
2721
2727
|
- spec/fixtures/mp3_fits.xml
|
2722
2728
|
- spec/fixtures/pdf_fits.xml
|
2723
2729
|
- spec/fixtures/piano_note.wav
|