sufia 7.3.0.rc1 → 7.3.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/README.md +11 -7
- data/app/actors/sufia/default_admin_set_actor.rb +9 -2
- data/app/assets/javascripts/sufia/batch_select_all.js +1 -1
- data/app/assets/stylesheets/sufia/_dashboard.scss +1 -1
- data/app/assets/stylesheets/sufia/_file-listing.scss +8 -1
- data/app/assets/stylesheets/sufia/_file_upload.scss +2 -0
- data/app/controllers/concerns/sufia/contact_form_controller_behavior.rb +1 -0
- data/app/controllers/pages_controller.rb +2 -0
- data/app/controllers/sufia/admin/features_controller.rb +6 -0
- data/app/services/sufia/workflow/complete_notification.rb +2 -17
- data/app/services/sufia/workflow/deposited_notification.rb +22 -0
- data/app/uploaders/sufia/uploaded_file_uploader.rb +8 -0
- data/app/views/batch_edits/_check_all.html.erb +1 -1
- data/app/views/catalog/_search_form.html.erb +1 -0
- data/app/views/curation_concerns/base/_attribute_rows.html.erb +0 -1
- data/app/views/curation_concerns/base/_relationships_parent_rows.html.erb +2 -0
- data/app/views/my/_batch_edits_actions.html.erb +6 -2
- data/app/views/my/_index_partials/_default_group.html.erb +1 -1
- data/app/views/sufia/admin/_sidebar.html.erb +1 -1
- data/app/views/sufia/admin/features/index.html.erb +13 -1
- data/app/views/users/_vitals.html.erb +2 -2
- data/config/locales/sufia.en.yml +5 -2
- data/lib/generators/sufia/templates/catalog_controller.rb +4 -0
- data/lib/generators/sufia/templates/config/locales/sufia.en.yml +1 -1
- data/lib/generators/sufia/templates/config/sufia.rb +2 -1
- data/lib/generators/sufia/templates/workflow.json.erb +9 -3
- data/lib/sufia/configuration.rb +5 -1
- data/lib/sufia/engine.rb +2 -2
- data/lib/sufia/version.rb +1 -1
- data/lib/tasks/migrate.rake +18 -0
- data/spec/actors/sufia/default_admin_set_actor_spec.rb +4 -2
- data/spec/controllers/curation_concerns/generic_works_controller_spec.rb +2 -2
- data/spec/features/batch_edit_spec.rb +1 -1
- data/spec/helpers/batch_edits_helper_spec.rb +12 -5
- data/spec/lib/sufia/configuration_spec.rb +1 -0
- data/spec/services/sufia/workflow/complete_notification_spec.rb +5 -27
- data/spec/services/sufia/workflow/deposited_notification_spec.rb +32 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/test_app_templates/Gemfile.extra +0 -1
- data/spec/views/catalog/_search_form.html.erb_spec.rb +18 -0
- data/spec/views/curation_concerns/base/_relationships.html.erb_spec.rb +9 -1
- data/spec/views/sufia/admin/features/index.html.erb_spec.rb +14 -0
- data/sufia.gemspec +3 -3
- data/template.rb +1 -2
- metadata +17 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '009b9b30b853cbfba6072849c4ac71f9a0523b4d'
|
4
|
+
data.tar.gz: 0cc820c3c594a6cfb415f072eda5f00f7f59af51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e745682238c01ef3eb98b1642ced091da5ea8e39ba4fc22a437efe835dedd02cdeedbd662abdb66c9b4f3c28318951d19bf7824347f9958b528066d213c180b
|
7
|
+
data.tar.gz: 269da7a4d986f1f38963333ae3b3c8b541e20bcb3b9ad744fe57d622bcb21cf3f290f2ad1854e23504306418c759704ad66a9bf297a77fd5b8a437bbde727cf3
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -26,9 +26,9 @@ Jump in: [![Slack Status](http://slack.projecthydra.org/badge.svg)](http://slack
|
|
26
26
|
* [Derivatives](#derivatives)
|
27
27
|
* [Environments](#environments)
|
28
28
|
* [Ruby](#ruby)
|
29
|
-
* [Creating a Sufia\-based app](#creating-a-sufia-based-app)
|
30
29
|
* [Redis](#redis)
|
31
30
|
* [Rails](#rails)
|
31
|
+
* [Creating a Sufia\-based app](#creating-a-sufia-based-app)
|
32
32
|
* [Generate a primary work type](#generate-a-primary-work-type)
|
33
33
|
* [Start servers](#start-servers)
|
34
34
|
* [Managing a Sufia\-based app](#managing-a-sufia-based-app)
|
@@ -55,7 +55,7 @@ If you have questions or need help, please email [the Hydra community tech list]
|
|
55
55
|
# Getting started
|
56
56
|
|
57
57
|
This document contains instructions specific to setting up an app with __Sufia
|
58
|
-
v7.
|
58
|
+
v7.3.0__. If you are looking for instructions on installing a different
|
59
59
|
version, be sure to select the appropriate branch or tag from the drop-down
|
60
60
|
menu above.
|
61
61
|
|
@@ -105,8 +105,6 @@ First, you'll need a working Ruby installation. You can install this via your op
|
|
105
105
|
|
106
106
|
We recommend either Ruby 2.3 or the latest 2.2 version.
|
107
107
|
|
108
|
-
# Creating a Sufia-based app
|
109
|
-
|
110
108
|
## Redis
|
111
109
|
|
112
110
|
[Redis](http://redis.io/) is a key-value store that Sufia uses to provide activity streams on repository objects and users, and to prevent race conditions as a global mutex when modifying order-persisting objects.
|
@@ -114,12 +112,18 @@ We recommend either Ruby 2.3 or the latest 2.2 version.
|
|
114
112
|
Starting up Redis will depend on your operating system, and may in fact already be started on your system. You may want to consult the [Redis documentation](http://redis.io/documentation) for help doing this.
|
115
113
|
|
116
114
|
## Rails
|
117
|
-
|
118
|
-
Generate a new Rails application. We recommend the latest Rails 5.0 or 4.2 release.
|
115
|
+
We recommend the latest Rails 5.0 release.
|
119
116
|
|
120
117
|
```
|
121
118
|
# If you don't already have Rails at your disposal...
|
122
|
-
gem install rails -v 5.0.
|
119
|
+
gem install rails -v 5.0.1
|
120
|
+
```
|
121
|
+
|
122
|
+
# Creating a Sufia-based app
|
123
|
+
|
124
|
+
Generate a new Rails application using the template.
|
125
|
+
|
126
|
+
```
|
123
127
|
rails new my_app -m https://raw.githubusercontent.com/projecthydra/sufia/master/template.rb
|
124
128
|
```
|
125
129
|
|
@@ -17,8 +17,15 @@ module Sufia
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def ensure_admin_set_attribute!(attributes)
|
20
|
-
|
21
|
-
|
20
|
+
if attributes[:admin_set_id].present?
|
21
|
+
ensure_permission_template!(admin_set_id: attributes[:admin_set_id])
|
22
|
+
else
|
23
|
+
attributes[:admin_set_id] = default_admin_set_id
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def ensure_permission_template!(admin_set_id:)
|
28
|
+
Sufia::PermissionTemplate.find_or_create_by!(admin_set_id: admin_set_id)
|
22
29
|
end
|
23
30
|
|
24
31
|
DEFAULT_ID = 'admin_set/default'.freeze
|
@@ -113,7 +113,14 @@ input.batch_document_selector {
|
|
113
113
|
|
114
114
|
input#check_all {
|
115
115
|
padding: 0;
|
116
|
-
margin: 3px
|
116
|
+
margin: 3px 0 3px 10px;
|
117
|
+
}
|
118
|
+
|
119
|
+
.check-all {
|
120
|
+
white-space: nowrap;
|
121
|
+
.caret {
|
122
|
+
margin-left: 0;
|
123
|
+
}
|
117
124
|
}
|
118
125
|
|
119
126
|
.constraints-container {
|
@@ -2,11 +2,17 @@ module Sufia
|
|
2
2
|
module Admin
|
3
3
|
class FeaturesController < Flipflop::FeaturesController
|
4
4
|
layout 'admin'
|
5
|
+
|
5
6
|
before_action do
|
6
7
|
authorize! :manage, Sufia::Feature
|
8
|
+
end
|
9
|
+
|
10
|
+
# overriding so we can have a layout https://github.com/voormedia/flipflop/issues/18
|
11
|
+
def index
|
7
12
|
add_breadcrumb t(:'sufia.controls.home'), root_path
|
8
13
|
add_breadcrumb t(:'sufia.toolbar.admin.menu'), sufia.admin_path
|
9
14
|
add_breadcrumb t(:'sufia.admin.sidebar.settings'), sufia.admin_features_path
|
15
|
+
super
|
10
16
|
end
|
11
17
|
end
|
12
18
|
end
|
@@ -1,22 +1,7 @@
|
|
1
1
|
module Sufia
|
2
2
|
module Workflow
|
3
|
-
class CompleteNotification <
|
4
|
-
|
5
|
-
|
6
|
-
def subject
|
7
|
-
'Deposit has been approved'
|
8
|
-
end
|
9
|
-
|
10
|
-
def message
|
11
|
-
"#{title} (#{work_id}) was approved by #{user.user_key}. #{comment}"
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def users_to_notify
|
17
|
-
user_key = ActiveFedora::Base.find(work_id).depositor
|
18
|
-
super << ::User.find_by(email: user_key)
|
19
|
-
end
|
3
|
+
class CompleteNotification < DepositedNotification
|
4
|
+
deprecation_deprecate initialize: "use DepositedNotification.initialize instead"
|
20
5
|
end
|
21
6
|
end
|
22
7
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Sufia
|
2
|
+
module Workflow
|
3
|
+
class DepositedNotification < AbstractNotification
|
4
|
+
protected
|
5
|
+
|
6
|
+
def subject
|
7
|
+
'Deposit has been approved'
|
8
|
+
end
|
9
|
+
|
10
|
+
def message
|
11
|
+
"#{title} (#{work_id}) was approved by #{user.user_key}. #{comment}"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def users_to_notify
|
17
|
+
user_key = ActiveFedora::Base.find(work_id).depositor
|
18
|
+
super << ::User.find_by(email: user_key)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -6,10 +6,18 @@ module Sufia
|
|
6
6
|
base_path + "#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
7
7
|
end
|
8
8
|
|
9
|
+
def cache_dir
|
10
|
+
cache_path + "#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
11
|
+
end
|
12
|
+
|
9
13
|
private
|
10
14
|
|
11
15
|
def base_path
|
12
16
|
Sufia.config.upload_path.call
|
13
17
|
end
|
18
|
+
|
19
|
+
def cache_path
|
20
|
+
Sufia.config.cache_path.call
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="dropdown batch_document_selector_all" >
|
2
2
|
<%= check_box_tag 'check_all', 'yes', @all_checked, disabled: @disable_select_all %>
|
3
3
|
<% if !@disable_select_all %>
|
4
|
-
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="sr-only">Select to access selection options</span><span class="
|
4
|
+
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="sr-only">Select to access selection options</span><span class="caret"></span></a>
|
5
5
|
<ul class="dropdown-menu">
|
6
6
|
<%= render "batch_edits_actions" %>
|
7
7
|
</ul>
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<%= form_tag search_form_action, method: :get, id: "search-form-header", role: "search" do %>
|
2
2
|
<%= render_hash_as_hidden_fields(search_state.params_for_search.except(:q, :search_field, :qt, :page, :utf8)) %>
|
3
|
+
<%= hidden_field_tag :search_field, 'all_fields' %>
|
3
4
|
<div class="input-group">
|
4
5
|
|
5
6
|
<label class="sr-only" for="search-field-header"><%= t("sufia.search.form.q.label") %></label>
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<%= presenter.attribute_to_html(:creator, render_as: :faceted) %>
|
2
2
|
<%= presenter.attribute_to_html(:contributor, render_as: :faceted) %>
|
3
|
-
<%= presenter.attribute_to_html(:admin_set, render_as: :faceted) %>
|
4
3
|
<%= presenter.attribute_to_html(:subject, render_as: :faceted) %>
|
5
4
|
<%= presenter.attribute_to_html(:publisher, render_as: :faceted) %>
|
6
5
|
<%= presenter.attribute_to_html(:language, render_as: :faceted) %>
|
@@ -1,2 +1,6 @@
|
|
1
|
-
<li data-behavior="batch-edit-select-
|
2
|
-
<
|
1
|
+
<li data-behavior="batch-edit-select-page" data-state="off">
|
2
|
+
<a href="#"><%= t("sufia.dashboard.my.action.select_all") %></a>
|
3
|
+
</li>
|
4
|
+
<li data-behavior="batch-edit-select-none" data-state="on">
|
5
|
+
<a href="#"><%= t("sufia.dashboard.my.action.select_none") %></a>
|
6
|
+
</li>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<% unless params[:display_type] == 'list' %>
|
4
4
|
<thead>
|
5
5
|
<tr>
|
6
|
-
<th><label for="check_all" class="sr-only"><%= t("sufia.dashboard.my.sr.check_all_label") %></label><%= render_check_all %></th>
|
6
|
+
<th class="check-all"><label for="check_all" class="sr-only"><%= t("sufia.dashboard.my.sr.check_all_label") %></label><%= render_check_all %></th>
|
7
7
|
<th><%= t("sufia.dashboard.my.heading.title") %></th>
|
8
8
|
<th class="sorts-dash"><i id="<%= CatalogController.uploaded_field %>" class="<%= params[:sort] == "#{CatalogController.uploaded_field} desc" ? 'caret' : params[:sort] == "#{CatalogController.uploaded_field} asc" ? 'caret up' : ''%>"></i><%= t("sufia.dashboard.my.heading.date_uploaded") %></th>
|
9
9
|
<th><%= t("sufia.dashboard.my.heading.visibility") %></th>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<ul class="nav nav-pills nav-stacked">
|
1
|
+
<ul class="admin-sidebar nav nav-pills nav-stacked">
|
2
2
|
<li class="<%= 'active' if current_page? sufia.admin_stats_path %>">
|
3
3
|
<%= link_to sufia.admin_stats_path do %>
|
4
4
|
<span class="fa fa-bar-chart"></span> <%= t('sufia.admin.sidebar.statistics') %>
|
@@ -16,7 +16,18 @@
|
|
16
16
|
</tr>
|
17
17
|
</thead>
|
18
18
|
<tbody>
|
19
|
-
<% @feature_set.
|
19
|
+
<% @feature_set.grouped_features.each do |group, features| -%>
|
20
|
+
<% if @feature_set.grouped? -%>
|
21
|
+
<tr class="group">
|
22
|
+
<td></td>
|
23
|
+
<td class="name" colspan="<%= 2 + @feature_set.strategies.size -%>">
|
24
|
+
<h2>
|
25
|
+
<%= t(group ? group.name : :default, scope: [:flipflop, :groups], default: group ? group.title : nil) -%>
|
26
|
+
</h2>
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
<% end -%>
|
30
|
+
<% features.each do |feature| %>
|
20
31
|
<tr data-feature="<%= feature.name.dasherize.parameterize %>">
|
21
32
|
<td class="status">
|
22
33
|
<span class="<%= @feature_set.status(feature) -%>"><%= @feature_set.status(feature) -%></span>
|
@@ -47,6 +58,7 @@
|
|
47
58
|
</td>
|
48
59
|
<% end -%>
|
49
60
|
</tr>
|
61
|
+
<% end -%>
|
50
62
|
<% end -%>
|
51
63
|
</tbody>
|
52
64
|
</table>
|
@@ -4,12 +4,12 @@
|
|
4
4
|
|
5
5
|
<div class="list-group-item">
|
6
6
|
<span class="badge"><%= number_of_collections(user) %></span>
|
7
|
-
<span class="glyphicon glyphicon-folder-open"></span> <%= link_to_field('depositor', user.to_s, t("sufia.dashboard.stats.collections"),
|
7
|
+
<span class="glyphicon glyphicon-folder-open"></span> <%= link_to_field('depositor', user.to_s, t("sufia.dashboard.stats.collections"), generic_type: "Collection") %>
|
8
8
|
</div>
|
9
9
|
|
10
10
|
<div class="list-group-item">
|
11
11
|
<span class="badge"><%= number_of_works(user) %></span>
|
12
|
-
<span class="glyphicon glyphicon-upload"></span> <%= link_to_field('depositor', user.to_s, t("sufia.dashboard.stats.works"),
|
12
|
+
<span class="glyphicon glyphicon-upload"></span> <%= link_to_field('depositor', user.to_s, t("sufia.dashboard.stats.works"), generic_type: "Work") %>
|
13
13
|
|
14
14
|
<ul class="views-downloads-dashboard list-unstyled">
|
15
15
|
<li><span class="badge badge-optional"><%= user.total_file_views %></span> <%= t("sufia.dashboard.stats.file_views").pluralize(user.total_file_views) %></li>
|
data/config/locales/sufia.en.yml
CHANGED
@@ -197,6 +197,8 @@ en:
|
|
197
197
|
transfer: "Transfer Ownership of Work"
|
198
198
|
work_confirmation: "Deleting a work from %{application_name} is permanent. Click OK to delete this work from %{application_name}, or Cancel to cancel this operation"
|
199
199
|
collection_confirmation: "Deleting a collection from %{application_name} is permanent. Click OK to delete this collection from %{application_name}, or Cancel to cancel this operation"
|
200
|
+
select_all: "Select Current Page"
|
201
|
+
select_none: "Select None"
|
200
202
|
|
201
203
|
messages:
|
202
204
|
success:
|
@@ -240,7 +242,7 @@ en:
|
|
240
242
|
works:
|
241
243
|
create:
|
242
244
|
header: "Add New %{type}"
|
243
|
-
after_create_html: "Your files are being processed by %{application_name} in the background. The metadata and access controls you specified are being applied.
|
245
|
+
after_create_html: "Your files are being processed by %{application_name} in the background. The metadata and access controls you specified are being applied. You may need to refresh this page to see these updates."
|
244
246
|
edit:
|
245
247
|
breadcrumb: 'Edit'
|
246
248
|
form:
|
@@ -311,7 +313,7 @@ en:
|
|
311
313
|
show:
|
312
314
|
download: "Download the file"
|
313
315
|
footer:
|
314
|
-
copyright_html: "<strong>Copyright ©
|
316
|
+
copyright_html: "<strong>Copyright © 2017 Project Hydra</strong> Licensed under the Apache License, Version 2.0"
|
315
317
|
admin:
|
316
318
|
admin_sets:
|
317
319
|
edit:
|
@@ -504,6 +506,7 @@ en:
|
|
504
506
|
search:
|
505
507
|
fields:
|
506
508
|
show:
|
509
|
+
admin_set: "In Admin Set:"
|
507
510
|
based_near: Location
|
508
511
|
contributor: Contributors
|
509
512
|
keyword: Keyword
|
@@ -46,6 +46,10 @@ class CatalogController < ApplicationController
|
|
46
46
|
config.add_facet_field solr_name("publisher", :facetable), label: "Publisher", limit: 5
|
47
47
|
config.add_facet_field solr_name("file_format", :facetable), label: "File Format", limit: 5
|
48
48
|
|
49
|
+
# The generic_type isn't displayed on the facet list
|
50
|
+
# It's used to give a label to the filter that comes from the user profile
|
51
|
+
config.add_facet_field solr_name("generic_type", :facetable), label: "Type", if: false
|
52
|
+
|
49
53
|
# Have BL send all facet field names to Solr, which has been the default
|
50
54
|
# previously. Simply remove these lines if you'd rather use Solr request
|
51
55
|
# handler defaults, or have no facets.
|
@@ -8,4 +8,4 @@ en:
|
|
8
8
|
directory:
|
9
9
|
suffix: "@example.org"
|
10
10
|
footer:
|
11
|
-
copyright_html: "<strong>Copyright ©
|
11
|
+
copyright_html: "<strong>Copyright © 2017 Project Hydra</strong> Licensed under the Apache License, Version 2.0"
|
@@ -93,8 +93,9 @@ Sufia.config do |config|
|
|
93
93
|
# config.banner_image = 'https://cloud.githubusercontent.com/assets/92044/18370978/88ecac20-75f6-11e6-8399-6536640ef695.jpg'
|
94
94
|
|
95
95
|
# Temporary path to hold uploads before they are ingested into FCrepo.
|
96
|
-
#
|
96
|
+
# These must be lambdas that return a Pathname. Can be configured separately
|
97
97
|
# config.upload_path = ->() { Rails.root + 'tmp' + 'uploads' }
|
98
|
+
# config.cache_path = ->() { Rails.root + 'tmp' + 'uploads' + 'cache' }
|
98
99
|
|
99
100
|
# Location on local file system where derivatives will be stored.
|
100
101
|
# If you use a multi-server architecture, this MUST be a shared volume.
|
@@ -21,7 +21,7 @@
|
|
21
21
|
]
|
22
22
|
}, {
|
23
23
|
"name": "request_changes",
|
24
|
-
"from_states": [{"names": ["
|
24
|
+
"from_states": [{"names": ["deposited", "pending_review"], "roles": ["approving"]}],
|
25
25
|
"transition_to": "changes_required",
|
26
26
|
"notifications": [
|
27
27
|
{
|
@@ -36,11 +36,11 @@
|
|
36
36
|
}, {
|
37
37
|
"name": "approve",
|
38
38
|
"from_states": [{"names": ["pending_review"], "roles": ["approving"]}],
|
39
|
-
"transition_to": "
|
39
|
+
"transition_to": "deposited",
|
40
40
|
"notifications": [
|
41
41
|
{
|
42
42
|
"notification_type": "email",
|
43
|
-
"name": "Sufia::Workflow::
|
43
|
+
"name": "Sufia::Workflow::DepositedNotification",
|
44
44
|
"to": ["approving"]
|
45
45
|
}
|
46
46
|
],
|
@@ -58,6 +58,12 @@
|
|
58
58
|
"to": ["approving"]
|
59
59
|
}
|
60
60
|
]
|
61
|
+
}, {
|
62
|
+
"name": "comment_only",
|
63
|
+
"from_states": [
|
64
|
+
{ "names": ["pending_review", "deposited"], "roles": ["approving"] },
|
65
|
+
{ "names": ["changes_required"], "roles": ["depositing"] }
|
66
|
+
]
|
61
67
|
}
|
62
68
|
]
|
63
69
|
}
|
data/lib/sufia/configuration.rb
CHANGED
@@ -84,12 +84,16 @@ module Sufia
|
|
84
84
|
@audit_user_key ||= 'audituser@example.com'
|
85
85
|
end
|
86
86
|
|
87
|
-
# TODO: this is called working_path in curation_concerns
|
88
87
|
attr_writer :upload_path
|
89
88
|
def upload_path
|
90
89
|
@upload_path ||= ->() { Rails.root + 'tmp' + 'uploads' }
|
91
90
|
end
|
92
91
|
|
92
|
+
attr_writer :cache_path
|
93
|
+
def cache_path
|
94
|
+
@cache_path ||= ->() { Rails.root + 'tmp' + 'uploads' + 'cache' }
|
95
|
+
end
|
96
|
+
|
93
97
|
# Should a button with "Share my work" show on the front page to all users (even those not logged in)?
|
94
98
|
attr_writer :always_display_share_button
|
95
99
|
def always_display_share_button
|
data/lib/sufia/engine.rb
CHANGED
@@ -35,8 +35,8 @@ module Sufia
|
|
35
35
|
end
|
36
36
|
|
37
37
|
initializer 'configure' do
|
38
|
-
#
|
39
|
-
Flipflop::
|
38
|
+
# Allow flipflop to load config/features.rb from the Hyrax gem:
|
39
|
+
Flipflop::FeatureLoader.current.append(self)
|
40
40
|
|
41
41
|
Sufia.config.tap do |c|
|
42
42
|
Hydra::Derivatives.ffmpeg_path = c.ffmpeg_path
|
data/lib/sufia/version.rb
CHANGED
data/lib/tasks/migrate.rake
CHANGED
@@ -4,5 +4,23 @@ namespace :sufia do
|
|
4
4
|
require 'sufia/move_all_works_to_admin_set'
|
5
5
|
MoveAllWorksToAdminSet.run(AdminSet.find(Sufia::DefaultAdminSetActor::DEFAULT_ID))
|
6
6
|
end
|
7
|
+
|
8
|
+
desc "Migrate data from 7.2.x to 7.3.0"
|
9
|
+
task from_7_2_x_to_7_3_0_release: :environment do
|
10
|
+
logger = Logger.new(STDOUT)
|
11
|
+
logger.level = Logger::DEBUG
|
12
|
+
logger.info(%(Starting migration to Sufia 7.3.0 in preparation for Hyrax 1.0.0))
|
13
|
+
Sipity::Workflow.transaction do
|
14
|
+
logger.info(%(Migrating "complete" state to "deposited" state for all "one_step_mediated_deposit" workflows. See https://github.com/projecthydra/sufia/commit/711bb49892aa54fe190a45434f6b2d0364d69c7a for changes))
|
15
|
+
Sipity::Workflow.where(name: 'one_step_mediated_deposit').each do |workflow|
|
16
|
+
workflow.workflow_states.where(name: 'complete').each do |state|
|
17
|
+
logger.info(%(Updating name for #{state.class} ID=#{state.id} from 'complete' to 'deposited'))
|
18
|
+
state.update!(name: 'deposited')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
logger.info(%(Completed migration to Sufia 7.3.0))
|
24
|
+
end
|
7
25
|
end
|
8
26
|
end
|
@@ -34,9 +34,11 @@ RSpec.describe Sufia::DefaultAdminSetActor do
|
|
34
34
|
context "when admin_set_id is provided" do
|
35
35
|
let(:attributes) { { admin_set_id: admin_set.id } }
|
36
36
|
|
37
|
-
it "uses the provided id and returns true" do
|
37
|
+
it "uses the provided id, ensures a permission template, and returns true" do
|
38
38
|
expect(next_actor).to receive(:create).with(attributes).and_return(true)
|
39
|
-
expect
|
39
|
+
expect do
|
40
|
+
expect(actor.create(attributes)).to be true
|
41
|
+
end.to change { Sufia::PermissionTemplate.count }.by(1)
|
40
42
|
end
|
41
43
|
end
|
42
44
|
end
|
@@ -122,7 +122,7 @@ describe CurationConcerns::GenericWorksController do
|
|
122
122
|
},
|
123
123
|
uploaded_files: ['777', '888']
|
124
124
|
}
|
125
|
-
expect(flash[:notice]).to eq "Your files are being processed by Sufia in the background. The metadata and access controls you specified are being applied.
|
125
|
+
expect(flash[:notice]).to eq "Your files are being processed by Sufia in the background. The metadata and access controls you specified are being applied. You may need to refresh this page to see these updates."
|
126
126
|
expect(response).to redirect_to main_app.curation_concerns_generic_work_path(work)
|
127
127
|
end
|
128
128
|
|
@@ -182,7 +182,7 @@ describe CurationConcerns::GenericWorksController do
|
|
182
182
|
parent_id: work.id,
|
183
183
|
generic_work: { title: ['First title'] }
|
184
184
|
}
|
185
|
-
expect(flash[:notice]).to eq "Your files are being processed by Sufia in the background. The metadata and access controls you specified are being applied.
|
185
|
+
expect(flash[:notice]).to eq "Your files are being processed by Sufia in the background. The metadata and access controls you specified are being applied. You may need to refresh this page to see these updates."
|
186
186
|
expect(response).to redirect_to main_app.curation_concerns_generic_work_path(work)
|
187
187
|
end
|
188
188
|
end
|
@@ -120,7 +120,7 @@ describe 'Batch management of works', type: :feature do
|
|
120
120
|
|
121
121
|
def fill_in_field_wait(id)
|
122
122
|
within "#form_#{id}" do
|
123
|
-
expect(page).to have_content 'Changes Saved', wait: Capybara.default_max_wait_time *
|
123
|
+
expect(page).to have_content 'Changes Saved', wait: Capybara.default_max_wait_time * 5
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
describe BatchEditsHelper, type: :helper do
|
2
2
|
describe "#render_check_all" do
|
3
|
+
subject { helper.render_check_all }
|
3
4
|
before do
|
4
5
|
view.lookup_context.prefixes = ['my']
|
5
6
|
end
|
@@ -7,28 +8,34 @@ describe BatchEditsHelper, type: :helper do
|
|
7
8
|
context "with my works" do
|
8
9
|
it "shows the check all dropdown" do
|
9
10
|
allow(controller).to receive(:params).and_return(controller: "my/works")
|
10
|
-
expect(
|
11
|
+
expect(subject).to have_css("span.caret")
|
12
|
+
expect(subject).to have_content t("sufia.dashboard.my.action.select_all")
|
13
|
+
expect(subject).to have_content t("sufia.dashboard.my.action.select_none")
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
14
17
|
context "with my shares" do
|
15
18
|
it "shows the check all dropdown" do
|
16
19
|
allow(controller).to receive(:params).and_return(controller: "my/shares")
|
17
|
-
expect(
|
20
|
+
expect(subject).to have_css("span.caret")
|
21
|
+
expect(subject).to have_content t("sufia.dashboard.my.action.select_all")
|
22
|
+
expect(subject).to have_content t("sufia.dashboard.my.action.select_none")
|
18
23
|
end
|
19
24
|
end
|
20
25
|
|
21
26
|
context "with my highlights" do
|
22
27
|
it "shows the check all dropdown" do
|
23
28
|
allow(controller).to receive(:params).and_return(controller: "my/shares")
|
24
|
-
expect(
|
29
|
+
expect(subject).to have_css("span.caret")
|
30
|
+
expect(subject).to have_content t("sufia.dashboard.my.action.select_all")
|
31
|
+
expect(subject).to have_content t("sufia.dashboard.my.action.select_none")
|
25
32
|
end
|
26
33
|
end
|
27
34
|
|
28
35
|
context "with my collections" do
|
29
36
|
it "does not show the check all dropdown" do
|
30
37
|
allow(controller).to receive(:params).and_return(controller: "my/collections")
|
31
|
-
expect(
|
38
|
+
expect(subject).to be_nil
|
32
39
|
end
|
33
40
|
end
|
34
41
|
|
@@ -36,7 +43,7 @@ describe BatchEditsHelper, type: :helper do
|
|
36
43
|
it "does not show the check all dropdown" do
|
37
44
|
allow(helper).to receive(:params).and_return(controller: "foo")
|
38
45
|
assign(:disable_select_all, true)
|
39
|
-
expect(
|
46
|
+
expect(subject).to have_css("input[disabled=disabled]")
|
40
47
|
end
|
41
48
|
end
|
42
49
|
end
|
@@ -16,6 +16,7 @@ describe Sufia::Configuration do
|
|
16
16
|
it { is_expected.to respond_to(:batch_user_key) }
|
17
17
|
it { is_expected.to respond_to(:audit_user_key) }
|
18
18
|
it { is_expected.to respond_to(:upload_path) }
|
19
|
+
it { is_expected.to respond_to(:cache_path) }
|
19
20
|
it { is_expected.to respond_to(:always_display_share_button) }
|
20
21
|
it { is_expected.to respond_to(:google_analytics_id) }
|
21
22
|
it { is_expected.to respond_to(:analytic_start_date) }
|
@@ -1,32 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe Sufia::Workflow::CompleteNotification do
|
4
|
-
let(:
|
5
|
-
let(:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
let(:entity) { create(:sipity_entity, proxy_for_global_id: work.to_global_id.to_s) }
|
10
|
-
let(:comment) { double("comment", comment: 'A pleasant read') }
|
11
|
-
let(:recipients) { { 'to' => [to_user], 'cc' => [cc_user] } }
|
12
|
-
|
13
|
-
describe ".send_notification" do
|
14
|
-
it 'sends a message to all users' do
|
15
|
-
expect(approver).to receive(:send_message).once.and_call_original
|
16
|
-
|
17
|
-
expect { described_class.send_notification(entity: entity, user: approver, comment: comment, recipients: recipients) }
|
18
|
-
.to change { depositor.mailbox.inbox.count }.by(1)
|
19
|
-
.and change { to_user.mailbox.inbox.count }.by(1)
|
20
|
-
.and change { cc_user.mailbox.inbox.count }.by(1)
|
21
|
-
end
|
22
|
-
context 'without carbon-copied users' do
|
23
|
-
let(:recipients) { { 'to' => [to_user] } }
|
24
|
-
it 'sends a message to the to user(s)' do
|
25
|
-
expect(approver).to receive(:send_message).once.and_call_original
|
26
|
-
expect { described_class.send_notification(entity: entity, user: approver, comment: comment, recipients: recipients) }
|
27
|
-
.to change { depositor.mailbox.inbox.count }.by(1)
|
28
|
-
.and change { to_user.mailbox.inbox.count }.by(1)
|
29
|
-
end
|
30
|
-
end
|
4
|
+
let(:entity) { double(:sipity_entity, proxy_for_global_id: '1234', proxy_for: double(title: 'title')) }
|
5
|
+
let(:comment) { nil }
|
6
|
+
it 'is deprecated' do
|
7
|
+
expect(Deprecation).to receive(:warn).with(described_class, /^initialize is deprecated/, kind_of(Array))
|
8
|
+
described_class.new(entity, nil, double, {})
|
31
9
|
end
|
32
10
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Sufia::Workflow::DepositedNotification do
|
4
|
+
let(:approver) { create(:user) }
|
5
|
+
let(:depositor) { create(:user) }
|
6
|
+
let(:to_user) { create(:user) }
|
7
|
+
let(:cc_user) { create(:user) }
|
8
|
+
let(:work) { create(:generic_work, user: depositor) }
|
9
|
+
let(:entity) { create(:sipity_entity, proxy_for_global_id: work.to_global_id.to_s) }
|
10
|
+
let(:comment) { double("comment", comment: 'A pleasant read') }
|
11
|
+
let(:recipients) { { 'to' => [to_user], 'cc' => [cc_user] } }
|
12
|
+
|
13
|
+
describe ".send_notification" do
|
14
|
+
it 'sends a message to all users' do
|
15
|
+
expect(approver).to receive(:send_message).once.and_call_original
|
16
|
+
|
17
|
+
expect { described_class.send_notification(entity: entity, user: approver, comment: comment, recipients: recipients) }
|
18
|
+
.to change { depositor.mailbox.inbox.count }.by(1)
|
19
|
+
.and change { to_user.mailbox.inbox.count }.by(1)
|
20
|
+
.and change { cc_user.mailbox.inbox.count }.by(1)
|
21
|
+
end
|
22
|
+
context 'without carbon-copied users' do
|
23
|
+
let(:recipients) { { 'to' => [to_user] } }
|
24
|
+
it 'sends a message to the to user(s)' do
|
25
|
+
expect(approver).to receive(:send_message).once.and_call_original
|
26
|
+
expect { described_class.send_notification(entity: entity, user: approver, comment: comment, recipients: recipients) }
|
27
|
+
.to change { depositor.mailbox.inbox.count }.by(1)
|
28
|
+
.and change { to_user.mailbox.inbox.count }.by(1)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -52,7 +52,7 @@ Capybara.default_max_wait_time = ENV['TRAVIS'] ? 30 : 15
|
|
52
52
|
# Found in this thread: https://github.com/teampoltergeist/poltergeist/issues/375
|
53
53
|
poltergeist_options = {
|
54
54
|
js_errors: true,
|
55
|
-
timeout:
|
55
|
+
timeout: 60,
|
56
56
|
logger: nil,
|
57
57
|
phantomjs_logger: StringIO.new,
|
58
58
|
phantomjs_options: [
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'catalog/_search_form.html.erb', type: :view do
|
4
|
+
before do
|
5
|
+
allow(view).to receive(:search_form_action).and_return("/catalog")
|
6
|
+
allow(view).to receive(:search_state).and_return(search_state)
|
7
|
+
allow(view).to receive(:current_search_parameters).and_return(nil)
|
8
|
+
allow(view).to receive(:current_user).and_return(nil)
|
9
|
+
|
10
|
+
render
|
11
|
+
end
|
12
|
+
let(:search_state) { double('SearchState', params_for_search: {}) }
|
13
|
+
let(:page) { Capybara::Node::Simple.new(rendered) }
|
14
|
+
|
15
|
+
it "has a hidden search_field input" do
|
16
|
+
expect(page).to have_selector("[name='search_field'][value='all_fields']", visible: false)
|
17
|
+
end
|
18
|
+
end
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'curation_concerns/base/relationships', type: :view do
|
4
4
|
let(:ability) { double }
|
5
|
-
let(:solr_doc) { double(id: '123', human_readable_type: 'Work') }
|
5
|
+
let(:solr_doc) { double(id: '123', human_readable_type: 'Work', admin_set: nil) }
|
6
6
|
let(:presenter) { Sufia::WorkShowPresenter.new(solr_doc, ability) }
|
7
7
|
let(:generic_work) { GenericWork.new(id: '456', title: ['Containing work']) }
|
8
8
|
let(:collection) { Collection.new(id: '345', title: ['Containing collection']) }
|
@@ -86,4 +86,12 @@ describe 'curation_concerns/base/relationships', type: :view do
|
|
86
86
|
expect(page).not_to have_content "There are no Generic work relationships."
|
87
87
|
end
|
88
88
|
end
|
89
|
+
|
90
|
+
context 'with admin sets' do
|
91
|
+
it 'renders using attribute_to_html' do
|
92
|
+
allow(solr_doc).to receive(:member_of_collection_ids).and_return([])
|
93
|
+
expect(presenter).to receive(:attribute_to_html).with(:admin_set, render_as: :faceted)
|
94
|
+
render 'curation_concerns/base/relationships', presenter: presenter
|
95
|
+
end
|
96
|
+
end
|
89
97
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
describe "sufia/admin/features/index.html.erb", type: :view do
|
2
|
+
let(:ability) { instance_double("Ability") }
|
3
|
+
let(:feature_set) do
|
4
|
+
Flipflop::FeaturesController::FeaturesPresenter.new(Flipflop::FeatureSet.current)
|
5
|
+
end
|
6
|
+
before do
|
7
|
+
allow(controller).to receive(:current_ability).and_return(ability)
|
8
|
+
assign(:feature_set, feature_set)
|
9
|
+
end
|
10
|
+
it "shows list of features" do
|
11
|
+
render
|
12
|
+
expect(rendered).to have_content('enabled')
|
13
|
+
end
|
14
|
+
end
|
data/sufia.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'sufia/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.authors = ["Justin Coyne", 'Michael J. Giarlo', "Carolyn Cole", "Matt Zumwalt", 'Jeremy Friesen']
|
8
8
|
spec.email = ["justin@curationexperts.com", 'leftwing@alumni.rutgers.edu', "jeremy.n.friesen@gmail.com"]
|
9
|
-
spec.description = 'Sufia extends the robust Hydra framework to provide a user interface around common repository features and social features. Sufia offers self-deposit
|
9
|
+
spec.description = 'Sufia extends the robust Hydra framework to provide a user interface around common repository features and social features. Sufia offers self-deposit, proxy deposit, and configurable mediated deposit workflows. Sufia delivers its rich and growing set of features via a modern, responsive UI'
|
10
10
|
spec.summary = "Sufia was originally extracted from ScholarSphere developed by Penn State University. It's now used and maintained by an active community of adopters."
|
11
11
|
spec.homepage = "http://sufia.io/"
|
12
12
|
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.version = Sufia::VERSION
|
19
19
|
spec.license = 'Apache2'
|
20
20
|
|
21
|
-
spec.add_dependency 'curation_concerns', '~> 1.7.
|
21
|
+
spec.add_dependency 'curation_concerns', '~> 1.7.5'
|
22
22
|
spec.add_dependency 'hydra-head', '>= 10.4.0'
|
23
23
|
spec.add_dependency 'hydra-batch-edit', '~> 2.0'
|
24
24
|
spec.add_dependency 'browse-everything', '>= 0.10.3'
|
@@ -44,7 +44,7 @@ Gem::Specification.new do |spec|
|
|
44
44
|
spec.add_dependency 'flot-rails', '~> 0.0.6'
|
45
45
|
spec.add_dependency 'almond-rails', '~> 0.0.1'
|
46
46
|
spec.add_dependency 'qa', '~> 0.8' # questioning_authority
|
47
|
-
spec.add_dependency 'flipflop', '~> 2.
|
47
|
+
spec.add_dependency 'flipflop', '~> 2.3'
|
48
48
|
spec.add_dependency 'jquery-datatables-rails', '~> 3.4.0'
|
49
49
|
spec.add_dependency 'rdf-rdfxml'
|
50
50
|
|
data/template.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sufia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.3.0.
|
4
|
+
version: 7.3.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-02
|
15
|
+
date: 2017-03-02 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: curation_concerns
|
@@ -20,14 +20,14 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.7.
|
23
|
+
version: 1.7.5
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - "~>"
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 1.7.
|
30
|
+
version: 1.7.5
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: hydra-head
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -384,14 +384,14 @@ dependencies:
|
|
384
384
|
requirements:
|
385
385
|
- - "~>"
|
386
386
|
- !ruby/object:Gem::Version
|
387
|
-
version: '2.
|
387
|
+
version: '2.3'
|
388
388
|
type: :runtime
|
389
389
|
prerelease: false
|
390
390
|
version_requirements: !ruby/object:Gem::Requirement
|
391
391
|
requirements:
|
392
392
|
- - "~>"
|
393
393
|
- !ruby/object:Gem::Version
|
394
|
-
version: '2.
|
394
|
+
version: '2.3'
|
395
395
|
- !ruby/object:Gem::Dependency
|
396
396
|
name: jquery-datatables-rails
|
397
397
|
requirement: !ruby/object:Gem::Requirement
|
@@ -665,10 +665,9 @@ dependencies:
|
|
665
665
|
- !ruby/object:Gem::Version
|
666
666
|
version: '0'
|
667
667
|
description: Sufia extends the robust Hydra framework to provide a user interface
|
668
|
-
around common repository features and social features. Sufia offers self-deposit
|
669
|
-
|
670
|
-
|
671
|
-
UI
|
668
|
+
around common repository features and social features. Sufia offers self-deposit,
|
669
|
+
proxy deposit, and configurable mediated deposit workflows. Sufia delivers its rich
|
670
|
+
and growing set of features via a modern, responsive UI
|
672
671
|
email:
|
673
672
|
- justin@curationexperts.com
|
674
673
|
- leftwing@alumni.rutgers.edu
|
@@ -1005,6 +1004,7 @@ files:
|
|
1005
1004
|
- app/services/sufia/workflow/abstract_notification.rb
|
1006
1005
|
- app/services/sufia/workflow/changes_required_notification.rb
|
1007
1006
|
- app/services/sufia/workflow/complete_notification.rb
|
1007
|
+
- app/services/sufia/workflow/deposited_notification.rb
|
1008
1008
|
- app/services/sufia/workflow/pending_review_notification.rb
|
1009
1009
|
- app/services/sufia/workflow/workflow_by_admin_set_strategy.rb
|
1010
1010
|
- app/uploaders/sufia/avatar_uploader.rb
|
@@ -1600,6 +1600,7 @@ files:
|
|
1600
1600
|
- spec/services/sufia/user_stat_importer_spec.rb
|
1601
1601
|
- spec/services/sufia/workflow/changes_required_notification_spec.rb
|
1602
1602
|
- spec/services/sufia/workflow/complete_notification_spec.rb
|
1603
|
+
- spec/services/sufia/workflow/deposited_notification_spec.rb
|
1603
1604
|
- spec/services/sufia/workflow/pending_review_notification_spec.rb
|
1604
1605
|
- spec/services/sufia/workflow/workflow_by_admin_set_strategy_spec.rb
|
1605
1606
|
- spec/spec_helper.rb
|
@@ -1619,6 +1620,7 @@ files:
|
|
1619
1620
|
- spec/views/batch_edits/check_all_spec.rb
|
1620
1621
|
- spec/views/batch_edits/edit.html.erb_spec.rb
|
1621
1622
|
- spec/views/catalog/_index_list_default.html.erb_spec.rb
|
1623
|
+
- spec/views/catalog/_search_form.html.erb_spec.rb
|
1622
1624
|
- spec/views/catalog/_thumbnail_list_collection.html.erb_spec.rb
|
1623
1625
|
- spec/views/catalog/index.html.erb_spec.rb
|
1624
1626
|
- spec/views/citations/work.html.erb_spec.rb
|
@@ -1671,6 +1673,7 @@ files:
|
|
1671
1673
|
- spec/views/sufia/admin/admin_sets/_form_participants.html.erb_spec.rb
|
1672
1674
|
- spec/views/sufia/admin/admin_sets/_form_visibility.html.erb_spec.rb
|
1673
1675
|
- spec/views/sufia/admin/admin_sets/index.html.erb_spec.rb
|
1676
|
+
- spec/views/sufia/admin/features/index.html.erb_spec.rb
|
1674
1677
|
- spec/views/sufia/admin/stats/show.html.erb_spec.rb
|
1675
1678
|
- spec/views/sufia/batch_uploads/_form.html.erb_spec.rb
|
1676
1679
|
- spec/views/sufia/homepage/_announcement.html.erb_spec.rb
|
@@ -1723,7 +1726,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1723
1726
|
version: 1.3.1
|
1724
1727
|
requirements: []
|
1725
1728
|
rubyforge_project:
|
1726
|
-
rubygems_version: 2.6.
|
1729
|
+
rubygems_version: 2.6.10
|
1727
1730
|
signing_key:
|
1728
1731
|
specification_version: 4
|
1729
1732
|
summary: Sufia was originally extracted from ScholarSphere developed by Penn State
|
@@ -1972,6 +1975,7 @@ test_files:
|
|
1972
1975
|
- spec/services/sufia/user_stat_importer_spec.rb
|
1973
1976
|
- spec/services/sufia/workflow/changes_required_notification_spec.rb
|
1974
1977
|
- spec/services/sufia/workflow/complete_notification_spec.rb
|
1978
|
+
- spec/services/sufia/workflow/deposited_notification_spec.rb
|
1975
1979
|
- spec/services/sufia/workflow/pending_review_notification_spec.rb
|
1976
1980
|
- spec/services/sufia/workflow/workflow_by_admin_set_strategy_spec.rb
|
1977
1981
|
- spec/spec_helper.rb
|
@@ -1991,6 +1995,7 @@ test_files:
|
|
1991
1995
|
- spec/views/batch_edits/check_all_spec.rb
|
1992
1996
|
- spec/views/batch_edits/edit.html.erb_spec.rb
|
1993
1997
|
- spec/views/catalog/_index_list_default.html.erb_spec.rb
|
1998
|
+
- spec/views/catalog/_search_form.html.erb_spec.rb
|
1994
1999
|
- spec/views/catalog/_thumbnail_list_collection.html.erb_spec.rb
|
1995
2000
|
- spec/views/catalog/index.html.erb_spec.rb
|
1996
2001
|
- spec/views/citations/work.html.erb_spec.rb
|
@@ -2043,6 +2048,7 @@ test_files:
|
|
2043
2048
|
- spec/views/sufia/admin/admin_sets/_form_participants.html.erb_spec.rb
|
2044
2049
|
- spec/views/sufia/admin/admin_sets/_form_visibility.html.erb_spec.rb
|
2045
2050
|
- spec/views/sufia/admin/admin_sets/index.html.erb_spec.rb
|
2051
|
+
- spec/views/sufia/admin/features/index.html.erb_spec.rb
|
2046
2052
|
- spec/views/sufia/admin/stats/show.html.erb_spec.rb
|
2047
2053
|
- spec/views/sufia/batch_uploads/_form.html.erb_spec.rb
|
2048
2054
|
- spec/views/sufia/homepage/_announcement.html.erb_spec.rb
|