sufia 7.0.0.beta4 → 7.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -1
- data/.rubocop_todo.yml +1 -2
- data/.travis.yml +1 -0
- data/Gemfile +18 -9
- data/README.md +23 -3
- data/app/assets/javascripts/sufia.js +4 -1
- data/app/assets/javascripts/sufia/app.js +15 -3
- data/app/assets/javascripts/sufia/autocomplete.es6 +51 -0
- data/app/assets/javascripts/sufia/autocomplete/language.es6 +25 -0
- data/app/assets/javascripts/sufia/autocomplete/location.es6 +24 -0
- data/app/assets/javascripts/sufia/autocomplete/subject.es6 +26 -0
- data/app/assets/javascripts/sufia/batch_edit.js +8 -5
- data/app/assets/javascripts/sufia/permissions/control.es6 +7 -3
- data/app/assets/javascripts/sufia/save_work/required_fields.es6 +10 -4
- data/app/assets/javascripts/sufia/save_work/save_work_control.es6 +14 -4
- data/app/assets/stylesheets/sufia/_fixedsticky.scss +23 -21
- data/app/assets/stylesheets/sufia/_form-progress.scss +16 -7
- data/app/assets/stylesheets/sufia/_header.scss +2 -1
- data/app/assets/stylesheets/sufia/_settings.scss +4 -0
- data/app/controllers/api/items_controller.rb +2 -2
- data/app/controllers/api/zotero_controller.rb +1 -1
- data/app/controllers/citations_controller.rb +0 -2
- data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +7 -7
- data/app/controllers/concerns/sufia/batch_uploads_controller_behavior.rb +9 -3
- data/app/controllers/concerns/sufia/singular_subresource_controller.rb +6 -1
- data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +3 -3
- data/app/controllers/concerns/sufia/works_controller_behavior.rb +11 -4
- data/app/controllers/my/highlights_controller.rb +1 -1
- data/app/forms/sufia/forms/batch_edit_form.rb +10 -6
- data/app/forms/sufia/forms/batch_upload_form.rb +2 -2
- data/app/forms/sufia/forms/collection_form.rb +4 -0
- data/app/forms/sufia/forms/work_form.rb +4 -0
- data/app/helpers/sufia/blacklight_override.rb +0 -20
- data/app/helpers/sufia/collections_helper.rb +12 -0
- data/app/helpers/sufia/sufia_helper_behavior.rb +84 -56
- data/app/jobs/batch_create_job.rb +18 -2
- data/app/jobs/content_depositor_change_event_job.rb +13 -6
- data/app/jobs/create_work_job.rb +6 -2
- data/app/models/batch_upload_item.rb +15 -0
- data/app/models/concerns/sufia/ability.rb +7 -4
- data/app/models/concerns/sufia/user.rb +0 -11
- data/app/models/concerns/sufia/work_behavior.rb +1 -0
- data/app/models/concerns/sufia/works/featured.rb +23 -0
- data/app/models/file_download_stat.rb +9 -12
- data/app/models/file_view_stat.rb +5 -15
- data/app/models/proxy_deposit_request.rb +11 -7
- data/app/models/sufia/statistic.rb +65 -0
- data/app/models/work_view_stat.rb +5 -16
- data/app/presenters/file_usage.rb +3 -4
- data/app/presenters/sufia/file_set_presenter.rb +1 -3
- data/app/presenters/sufia/trophy_presenter.rb +28 -0
- data/app/presenters/sufia/user_profile_presenter.rb +1 -1
- data/app/presenters/work_usage.rb +5 -4
- data/app/search_builders/deposit_search_builder.rb +4 -3
- data/app/search_builders/parent_collection_search_builder.rb +1 -1
- data/app/services/sufia/collection_member_service.rb +1 -1
- data/app/services/sufia/user_stat_importer.rb +11 -6
- data/app/views/_controls.html.erb +11 -9
- data/app/views/batch_edits/edit.html.erb +8 -2
- data/app/views/catalog/_index_list_default.html.erb +2 -1
- data/app/views/curation_concerns/base/_form_metadata.html.erb +1 -1
- data/app/views/curation_concerns/base/_form_progress.html.erb +1 -1
- data/app/views/curation_concerns/base/_form_relationships.html.erb +1 -1
- data/app/views/curation_concerns/base/_guts4form.html.erb +6 -2
- data/app/views/curation_concerns/base/_items.html.erb +1 -1
- data/app/views/curation_concerns/base/edit.html.erb +1 -1
- data/app/views/curation_concerns/base/new.html.erb +1 -1
- data/app/views/curation_concerns/file_sets/_permission.html.erb +5 -1
- data/app/views/curation_concerns/file_sets/media_display/_default.html.erb +1 -1
- data/app/views/curation_concerns/file_sets/show.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_heading_actions.html.erb +1 -1
- data/app/views/{error → errors}/404.html.erb +0 -0
- data/app/views/records/edit_fields/_based_near.html.erb +8 -0
- data/app/views/records/edit_fields/_language.html.erb +8 -0
- data/app/views/records/edit_fields/_subject.html.erb +8 -0
- data/app/views/stats/work.html.erb +1 -1
- data/app/views/sufia/batch_uploads/_form.html.erb +1 -1
- data/app/views/sufia/homepage/_home_header.html.erb +1 -1
- data/app/views/sufia/homepage/_sortable_featured.html.erb +1 -1
- data/app/views/transfers/new.html.erb +3 -1
- data/app/views/users/_contributions.html.erb +1 -1
- data/config/locales/sufia.en.yml +3 -2
- data/config/routes.rb +0 -7
- data/lib/generators/sufia/install_generator.rb +0 -24
- data/lib/generators/sufia/templates/catalog_controller.rb +4 -3
- data/lib/generators/sufia/templates/config/sufia.rb +4 -2
- data/lib/generators/sufia/upgrade700_generator.rb +7 -9
- data/lib/generators/sufia/work_generator.rb +56 -0
- data/lib/sufia.rb +4 -1
- data/lib/sufia/arkivo/actor.rb +1 -1
- data/lib/sufia/configuration.rb +15 -3
- data/lib/sufia/engine.rb +1 -10
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/api/items_controller_spec.rb +20 -7
- data/spec/controllers/sufia/batch_uploads_controller_spec.rb +4 -3
- data/spec/controllers/transfers_controller_spec.rb +3 -11
- data/spec/controllers/users_controller_spec.rb +2 -1
- data/spec/features/batch_edit_spec.rb +17 -2
- data/spec/forms/sufia/forms/batch_edit_form_spec.rb +2 -0
- data/spec/forms/sufia/forms/batch_upload_form_spec.rb +1 -1
- data/spec/helpers/blacklight_helper_spec.rb +36 -26
- data/spec/helpers/{generic_work_helper_spec.rb → sufia/collections_helper_spec.rb} +1 -1
- data/spec/helpers/sufia_helper_spec.rb +70 -32
- data/spec/javascripts/autocomplete_spec.js.coffee +7 -7
- data/spec/javascripts/save_work_spec.js +20 -20
- data/spec/lib/sufia/configuration_spec.rb +30 -0
- data/spec/lib/sufia/user_stat_importer_spec.rb +21 -36
- data/spec/models/file_download_stat_spec.rb +8 -8
- data/spec/models/file_view_stat_spec.rb +8 -8
- data/spec/models/generic_work_spec.rb +24 -0
- data/spec/models/proxy_deposit_request_spec.rb +2 -4
- data/spec/models/sufia/ability_spec.rb +7 -13
- data/spec/models/user_spec.rb +0 -14
- data/spec/models/work_view_stat_spec.rb +22 -8
- data/spec/presenters/sufia/file_usage_spec.rb +0 -4
- data/spec/presenters/sufia/trophy_presenter_spec.rb +46 -0
- data/spec/presenters/sufia/user_profile_presenter_spec.rb +4 -1
- data/spec/presenters/sufia/work_usage_spec.rb +8 -17
- data/spec/routing/route_spec.rb +0 -6
- data/spec/spec_helper.rb +8 -2
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -0
- data/spec/views/batch_edits/edit.html.erb_spec.rb +8 -2
- data/spec/views/catalog/_index_list_default.html.erb_spec.rb +8 -6
- data/spec/views/curation_concerns/base/_form.html.erb_spec.rb +3 -0
- data/spec/views/curation_concerns/file_sets/_permission.html.erb_spec.rb +16 -0
- data/spec/views/curation_concerns/file_sets/show.html.erb_spec.rb +0 -2
- data/spec/views/records/edit_fields/_based_near.html.erb_spec.rb +20 -0
- data/spec/views/records/edit_fields/_language.html.erb_spec.rb +20 -0
- data/spec/views/records/edit_fields/_subject.html.erb_spec.rb +20 -0
- data/spec/views/{homepage → sufia/homepage}/_announcement.html.erb_spec.rb +0 -0
- data/spec/views/{homepage → sufia/homepage}/_featured_works.html.erb_spec.rb +0 -0
- data/spec/views/{homepage → sufia/homepage}/_home_header.html.erb_spec.rb +0 -0
- data/spec/views/sufia/homepage/_sortable_featured.html.erb_spec.rb +21 -0
- data/spec/views/users/edit.html.erb_spec.rb +5 -5
- data/spec/views/users/show.html.erb_spec.rb +5 -3
- data/sufia.gemspec +4 -3
- data/tasks/noid.rake +2 -2
- data/tasks/sufia-dev.rake +1 -1
- metadata +73 -68
- data/app/assets/javascripts/sufia/edit_metadata.js +0 -87
- data/app/controllers/authorities_controller.rb +0 -19
- data/app/helpers/generic_work_helper.rb +0 -10
- data/app/helpers/sufia_url_helper.rb +0 -14
- data/app/models/concerns/sufia/file_stat_utils.rb +0 -33
- data/app/models/concerns/sufia/work_stat_utils.rb +0 -33
- data/app/models/geo_names_resource.rb +0 -18
- data/app/models/local_authority.rb +0 -101
- data/app/models/local_authority_entry.rb +0 -3
- data/app/models/subject_local_authority_entry.rb +0 -2
- data/app/views/curation_concerns/generic_works/_generic_work.html.erb +0 -3
- data/app/views/error/401.html.erb +0 -18
- data/app/views/error/500.html.erb +0 -9
- data/app/views/error/single_use_error.html.erb +0 -19
- data/lib/generators/sufia/geonames_username_config_generator.rb +0 -20
- data/spec/controllers/authorities_controller_spec.rb +0 -18
- data/spec/fixtures/cities15000.tsv +0 -149
- data/spec/fixtures/genreForms.nt +0 -471
- data/spec/fixtures/lexvo.rdf +0 -3108
- data/spec/helpers/sufia_url_helper_spec.rb +0 -18
- data/spec/models/geo_names_resource_spec.rb +0 -30
- data/spec/models/local_authority_spec.rb +0 -108
- data/vendor/assets/javascripts/almond.js +0 -430
@@ -3,19 +3,20 @@
|
|
3
3
|
# and prepares it for visualization in /app/views/stats/work.html.erb
|
4
4
|
|
5
5
|
class WorkUsage
|
6
|
-
attr_accessor :id, :created, :
|
6
|
+
attr_accessor :id, :created, :pageviews, :work
|
7
7
|
|
8
8
|
def initialize(id)
|
9
|
-
work = ::
|
9
|
+
@work = CurationConcerns::WorkRelation.new.find(id)
|
10
10
|
user = User.find_by(email: work.depositor)
|
11
11
|
user_id = user ? user.id : nil
|
12
12
|
|
13
13
|
self.id = id
|
14
|
-
self.path = Rails.application.routes.url_helpers.curation_concerns_generic_work_path(id)
|
15
14
|
self.created = date_for_analytics(work)
|
16
|
-
self.pageviews = WorkViewStat.to_flots WorkViewStat.statistics(
|
15
|
+
self.pageviews = WorkViewStat.to_flots WorkViewStat.statistics(work, created, user_id)
|
17
16
|
end
|
18
17
|
|
18
|
+
delegate :to_s, to: :work
|
19
|
+
|
19
20
|
def total_pageviews
|
20
21
|
pageviews.reduce(0) { |total, result| total + result[1].to_i }
|
21
22
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class DepositSearchBuilder < ::SearchBuilder
|
2
2
|
# includes the depositor_facet to get information on deposits.
|
3
|
-
#
|
3
|
+
# use caution when combining this with other searches as it sets the rows to
|
4
|
+
# zero to just get the facet information
|
4
5
|
# @param solr_parameters the current solr parameters
|
5
6
|
def include_depositor_facet(solr_parameters)
|
6
7
|
solr_parameters[:"facet.field"].concat([DepositSearchBuilder.depositor_field])
|
@@ -10,8 +11,8 @@ class DepositSearchBuilder < ::SearchBuilder
|
|
10
11
|
# the number of users in the database
|
11
12
|
solr_parameters[:"facet.limit"] = ::User.count
|
12
13
|
|
13
|
-
# only get
|
14
|
-
solr_parameters[:fq] =
|
14
|
+
# only get work information
|
15
|
+
solr_parameters[:fq] = CurationConcerns::WorkRelation.new.search_model_clause
|
15
16
|
|
16
17
|
# we only want the facte counts not the actual data
|
17
18
|
solr_parameters[:rows] = 0
|
@@ -5,7 +5,11 @@ module Sufia
|
|
5
5
|
UserRecord = Struct.new("UserRecord", :id, :user_key, :last_stats_update)
|
6
6
|
|
7
7
|
def initialize(options = {})
|
8
|
-
|
8
|
+
if options[:verbose]
|
9
|
+
stdout_logger = Logger.new(Logger.new(STDOUT))
|
10
|
+
stdout_logger.level = Logger::INFO
|
11
|
+
Rails.logger.extend(ActiveSupport::Logger.broadcast(stdout_logger))
|
12
|
+
end
|
9
13
|
@logging = options[:logging]
|
10
14
|
@delay_secs = options[:delay_secs].to_f
|
11
15
|
@number_of_retries = options[:number_of_retries].to_i
|
@@ -44,10 +48,11 @@ module Sufia
|
|
44
48
|
|
45
49
|
def process_files(stats, user, start_date)
|
46
50
|
file_ids_for_user(user).each do |file_id|
|
47
|
-
|
51
|
+
file = FileSet.find(file_id)
|
52
|
+
view_stats = rescue_and_retry("Retried FileViewStat on #{user} for file #{file_id} too many times.") { FileViewStat.statistics(file, start_date, user.id) }
|
48
53
|
stats = tally_results(view_stats, :views, stats) unless view_stats.blank?
|
49
54
|
delay
|
50
|
-
dl_stats = rescue_and_retry("Retried FileDownloadStat on #{user} for file #{file_id} too many times.") { FileDownloadStat.statistics(
|
55
|
+
dl_stats = rescue_and_retry("Retried FileDownloadStat on #{user} for file #{file_id} too many times.") { FileDownloadStat.statistics(file, start_date, user.id) }
|
51
56
|
stats = tally_results(dl_stats, :downloads, stats) unless dl_stats.blank?
|
52
57
|
delay
|
53
58
|
end
|
@@ -55,7 +60,8 @@ module Sufia
|
|
55
60
|
|
56
61
|
def process_works(stats, user, start_date)
|
57
62
|
work_ids_for_user(user).each do |work_id|
|
58
|
-
|
63
|
+
work = CurationConcerns::WorkRelation.new.find(work_id)
|
64
|
+
work_stats = rescue_and_retry("Retried WorkViewStat on #{user} for work #{work_id} too many times.") { WorkViewStat.statistics(work, start_date, user.id) }
|
59
65
|
stats = tally_results(work_stats, :work_views, stats) unless work_stats.blank?
|
60
66
|
delay
|
61
67
|
end
|
@@ -101,7 +107,7 @@ module Sufia
|
|
101
107
|
|
102
108
|
def work_ids_for_user(user)
|
103
109
|
ids = []
|
104
|
-
::
|
110
|
+
CurationConcerns::WorkRelation.new.search_in_batches("#{depositor_field}:\"#{user.user_key}\"", fl: "id") do |group|
|
105
111
|
ids.concat group.map { |doc| doc["id"] }
|
106
112
|
end
|
107
113
|
ids
|
@@ -140,7 +146,6 @@ module Sufia
|
|
140
146
|
end
|
141
147
|
|
142
148
|
def log_message(message)
|
143
|
-
puts message if @verbose
|
144
149
|
Rails.logger.info "#{self.class}: #{message}" if @logging
|
145
150
|
end
|
146
151
|
end
|
@@ -1,13 +1,15 @@
|
|
1
1
|
<nav class="navbar navbar-default navbar-static-top" role="navigation">
|
2
2
|
<div class="container-fluid">
|
3
|
-
<
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
<div class="row">
|
4
|
+
<ul class="nav navbar-nav col-sm-5 col-md-6">
|
5
|
+
<li <%= 'class=active' if current_page?(sufia.root_path) %>><%= link_to 'Home', sufia.root_path, :'data-no-turbolink'=>"true" %></li>
|
6
|
+
<li <%= 'class=active' if current_page?(sufia.about_path) %>><%= link_to 'About', sufia.about_path, :'data-no-turbolink'=>"true" %></li>
|
7
|
+
<li <%= 'class=active' if action_name == "help" %>><a href="<%= sufia.static_path('help') %>">Help</a></li>
|
8
|
+
<li <%= 'class=active' if current_page?(sufia.contact_path) %>><a href="<%= sufia.contact_path %>">Contact</a></li>
|
9
|
+
</ul><!-- /.nav -->
|
10
|
+
<div class="navbar-right col-sm-7 col-md-6">
|
11
|
+
<%= render partial: 'catalog/search_form' %>
|
12
|
+
</div>
|
11
13
|
</div>
|
12
14
|
</div>
|
13
|
-
</nav><!-- /.navbar -->
|
15
|
+
</nav><!-- /.navbar -->
|
@@ -16,8 +16,14 @@
|
|
16
16
|
<div class="tab-pane active" id="descriptions_display">
|
17
17
|
<% @form.terms.each do |term| %>
|
18
18
|
<div class="row">
|
19
|
-
<%= simple_form_for @form.model,
|
20
|
-
|
19
|
+
<%= simple_form_for @form.model,
|
20
|
+
url: batch_edits_path,
|
21
|
+
method: :put,
|
22
|
+
remote: true,
|
23
|
+
builder: Sufia::FormBuilder,
|
24
|
+
html: { id: "form_#{term.to_s}",
|
25
|
+
class: "ajax-form" },
|
26
|
+
data: { model: @form.model_name.param_key } do |f| %>
|
21
27
|
<div class="col-xs-12 col-sm-4">
|
22
28
|
<a class="accordion-toggle grey glyphicon-chevron-right-helper collapsed" data-toggle="collapse" href="#collapse_<%= term %>" id="expand_link_<%=term.to_s%>">
|
23
29
|
<%= f.input_label term %> <span class="chevron"></span>
|
@@ -1,10 +1,11 @@
|
|
1
1
|
<div class="col-sm-9">
|
2
2
|
<table class="table">
|
3
|
+
<% doc_presenter = index_presenter(document) %>
|
3
4
|
<% index_fields(document).each do |field_name, field| -%>
|
4
5
|
<% if should_render_index_field? document, field %>
|
5
6
|
<tr>
|
6
7
|
<th><span class="attribute-label h4"><%= render_index_field_label document, field: field_name %></span></th>
|
7
|
-
<td><%=
|
8
|
+
<td><%= doc_presenter.field_value field_name %></td>
|
8
9
|
</tr>
|
9
10
|
<% end %>
|
10
11
|
<% end %>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<%= render_edit_field_partial(term, f: f) %>
|
8
8
|
<% end %>
|
9
9
|
</div>
|
10
|
-
<%= link_to t('sufia.
|
10
|
+
<%= link_to t('sufia.works.edit.additional_fields'),
|
11
11
|
'#extended-terms',
|
12
12
|
class: 'btn btn-default',
|
13
13
|
data: { toggle: 'collapse' },
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<aside id="form-progress" class="form-progress panel panel-default">
|
2
2
|
<div class="panel-heading">
|
3
3
|
|
4
|
-
<h2><%= t("sufia
|
4
|
+
<h2><%= t("sufia.works.progress.header") %></h2>
|
5
5
|
</div>
|
6
6
|
<div class="list-group">
|
7
7
|
<div class="list-group-item">
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<li role="presentation">
|
13
13
|
<% end %>
|
14
14
|
<a href="#<%= tab %>" aria-controls="<%= tab %>" role="tab" data-toggle="tab">
|
15
|
-
<%= t("sufia.
|
15
|
+
<%= t("sufia.works.edit.tab.#{tab}") %>
|
16
16
|
</a>
|
17
17
|
</li>
|
18
18
|
<% end %>
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
<!-- Tab panes -->
|
22
22
|
<div class="tab-content">
|
23
|
-
<% tabs.each_with_index do | tab, i | %>
|
23
|
+
<% (tabs - ['share']).each_with_index do | tab, i | %>
|
24
24
|
<% if i == 0 %>
|
25
25
|
<div role="tabpanel" class="tab-pane active" id="<%= tab %>">
|
26
26
|
<% else %>
|
@@ -30,6 +30,10 @@
|
|
30
30
|
<%= render "form_#{tab}", f: f %>
|
31
31
|
</div>
|
32
32
|
<% end %>
|
33
|
+
|
34
|
+
<div role="tabpanel" class="tab-pane" id="share" data-param-key="<%= f.object.model_name.param_key %>">
|
35
|
+
<%= render "form_share", f: f %>
|
36
|
+
</div>
|
33
37
|
</div>
|
34
38
|
</div>
|
35
39
|
|
@@ -15,5 +15,5 @@
|
|
15
15
|
</tbody>
|
16
16
|
</table>
|
17
17
|
<% elsif can? :edit, presenter.id %>
|
18
|
-
|
18
|
+
<div class="alert alert-warning" role="alert"><%= t('.empty', type: presenter.human_readable_type) %></div>
|
19
19
|
<% end %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% provide :page_title, curation_concern_page_title(curation_concern) %>
|
2
2
|
<% provide :page_header do %>
|
3
|
-
<h1><%= t("sufia.#{
|
3
|
+
<h1><%= t("sufia.works.#{action_name}.header") %></h1>
|
4
4
|
<% end %>
|
5
5
|
|
6
6
|
<%= render 'form' %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% provide :page_title, curation_concern_page_title(curation_concern) %>
|
2
2
|
<% provide :page_header do %>
|
3
|
-
<h1><%= t("sufia.#{
|
3
|
+
<h1><%= t("sufia.works.#{action_name}.header") %></h1>
|
4
4
|
<% end %>
|
5
5
|
|
6
6
|
<%= render 'form' %>
|
@@ -1,5 +1,9 @@
|
|
1
1
|
<div id="permissions_display" class="tab-pane">
|
2
|
-
<%= simple_form_for [main_app, file_set],
|
2
|
+
<%= simple_form_for [main_app, file_set],
|
3
|
+
html: { multipart: true,
|
4
|
+
id: 'permission',
|
5
|
+
data: { param_key: file_set.model_name.param_key }
|
6
|
+
} do |f| %>
|
3
7
|
<%= hidden_field_tag('redirect_tab', 'permissions') %>
|
4
8
|
<%= render "permission_form", f: f %>
|
5
9
|
<div id="permissions_submit">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<div class="row">
|
5
5
|
<div class="col-xs-12 col-sm-4">
|
6
6
|
<%= media_display @presenter %>
|
7
|
-
<%= render 'show_actions', presenter: @presenter
|
7
|
+
<%= render 'show_actions', presenter: @presenter %>
|
8
8
|
</div>
|
9
9
|
<div itemscope itemtype="<%= @presenter.itemtype %>" class="col-xs-12 col-sm-8">
|
10
10
|
<header>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="col-xs-12 heading-row">
|
2
|
-
<% if can?(:create,
|
2
|
+
<% if can?(:create, Sufia.primary_work_type) %>
|
3
3
|
<div class="col-xs-6 col-sm-2 heading-tile">
|
4
4
|
<% classification = CurationConcerns::QuickClassificationQuery.new(current_user) %>
|
5
5
|
<% classification.each do |concern| %>
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= simple_form_for [sufia, @form], html: { multipart: true } do |f| %>
|
2
2
|
<% content_for :files_tab do %>
|
3
|
-
<p class="switch-upload-type">To create a single work for all the files, go to <%= link_to "New Work",
|
3
|
+
<p class="switch-upload-type">To create a single work for all the files, go to <%= link_to "New Work", [:new, Sufia.primary_work_type.model_name.singular_route_key] %></p>
|
4
4
|
<p class="instructions"><%= t("sufia.batch_uploads.files.instructions") %></p>
|
5
5
|
<% end %>
|
6
6
|
<%= render 'curation_concerns/base/guts4form', f: f, tabs: %w[files metadata relationships share] do %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="home_call_action col-xs-12 col-sm-4 pull-right">
|
2
2
|
<% if @presenter.display_share_button? %>
|
3
3
|
<div class="home_share_work">
|
4
|
-
<%= link_to
|
4
|
+
<%= link_to [:new, Sufia.primary_work_type.model_name.singular_route_key], class: "btn btn-primary btn-lg btn-block", id: "contribute_link" do %>
|
5
5
|
<i class="glyphicon glyphicon-upload"></i> <%= t('sufia.share_button') %>
|
6
6
|
<% end %>
|
7
7
|
<p class="text-center"><a href="/terms/">Terms of Use</a></p>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% presenter = f.object.presenter %>
|
2
2
|
<li class="dd-item dd3-item featured-item" data-id="<%= presenter.id %>">
|
3
|
-
<div class="dd-handle dd3-handle"><%= t
|
3
|
+
<div class="dd-handle dd3-handle"><%= t 'sufia.homepage.featured_works.drag' %></div>
|
4
4
|
<div class="dd3-content panel panel-default">
|
5
5
|
<%= f.hidden_field :id %>
|
6
6
|
<%= f.hidden_field :order, data: { property: "order" } %>
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<h1>Transfer ownership of "<%= @proxy_deposit_request.to_s %>"</h1>
|
2
2
|
<span class="sr-only">Select a user to transfer <%= @proxy_deposit_request.to_s %> to, add optional comments and then press transfer.</span>
|
3
|
-
<%= form_for @proxy_deposit_request,
|
3
|
+
<%= form_for @proxy_deposit_request,
|
4
|
+
url: sufia.work_transfers_path(@work),
|
5
|
+
html: { class: 'form-horizontal', id: 'new_transfer' } do |f| %>
|
4
6
|
<%= error_messages_for(f.object) %>
|
5
7
|
<div class="control-group">
|
6
8
|
<%= f.label :transfer_to, "User", class: 'control-label' %>
|
data/config/locales/sufia.en.yml
CHANGED
@@ -68,6 +68,7 @@ en:
|
|
68
68
|
tab_label: 'Featured Works'
|
69
69
|
title: 'Featured Works'
|
70
70
|
no_works: 'No works have been featured'
|
71
|
+
drag: 'Drag'
|
71
72
|
recently_uploaded:
|
72
73
|
depositor: 'Depositor'
|
73
74
|
details: 'Details'
|
@@ -204,7 +205,7 @@ en:
|
|
204
205
|
help:
|
205
206
|
title: "Filename will be the default title. Please provide a more meaningful title, and filenames will still be preserved by the system."
|
206
207
|
resource_type: "You may select multiple types to apply to all files"
|
207
|
-
|
208
|
+
works:
|
208
209
|
new:
|
209
210
|
header: Add New Work
|
210
211
|
in_collections: This Work in Collections
|
@@ -346,7 +347,7 @@ en:
|
|
346
347
|
attribute_values_label: Values
|
347
348
|
items:
|
348
349
|
header: Items
|
349
|
-
empty: "This %{type} has no files associated with it.
|
350
|
+
empty: "This %{type} has no files associated with it. Click \"edit\" to add more files."
|
350
351
|
citations:
|
351
352
|
header: 'Citations:'
|
352
353
|
visibility:
|
data/config/routes.rb
CHANGED
@@ -118,9 +118,6 @@ Sufia::Engine.routes.draw do
|
|
118
118
|
# advanced routes for advanced search
|
119
119
|
get 'search' => 'advanced#index', as: :advanced
|
120
120
|
|
121
|
-
# Authority vocabulary queries route
|
122
|
-
get 'authorities/:model/:term' => 'authorities#query'
|
123
|
-
|
124
121
|
# Contact form routes
|
125
122
|
post 'contact' => 'contact_form#create', as: :contact_form_index
|
126
123
|
get 'contact' => 'contact_form#new'
|
@@ -161,10 +158,6 @@ Sufia::Engine.routes.draw do
|
|
161
158
|
# Static page routes (workaround)
|
162
159
|
get ':action' => 'static#:action', constraints: { action: /help|terms|zotero|mendeley|agreement|subject_libraries|versions/ }, as: :static
|
163
160
|
|
164
|
-
# Single use link errors
|
165
|
-
get 'single_use_link/not_found' => 'errors#single_use_error'
|
166
|
-
get 'single_use_link/expired' => 'errors#single_use_error'
|
167
|
-
|
168
161
|
# Catch-all (for routing errors)
|
169
162
|
unless Rails.env.development? || Rails.env.test?
|
170
163
|
match '*error' => 'errors#routing', via: [:get, :post]
|
@@ -30,11 +30,6 @@ module Sufia
|
|
30
30
|
generate "curation_concerns:install --skip-assets -f" unless options[:skip_curation_concerns]
|
31
31
|
end
|
32
32
|
|
33
|
-
def run_curation_concerns_work_generator
|
34
|
-
say_status("info", "GENERATING DEFAULT GENERICWORK MODEL", :blue)
|
35
|
-
generate 'curation_concerns:work GenericWork'
|
36
|
-
end
|
37
|
-
|
38
33
|
# Setup the database migrations
|
39
34
|
def copy_migrations
|
40
35
|
rake 'sufia:install:migrations'
|
@@ -57,13 +52,6 @@ module Sufia
|
|
57
52
|
end
|
58
53
|
end
|
59
54
|
|
60
|
-
def inject_sufia_work_behavior
|
61
|
-
insert_into_file 'app/models/generic_work.rb', after: 'include ::CurationConcerns::BasicMetadata' do
|
62
|
-
"\n include Sufia::WorkBehavior" \
|
63
|
-
"\n self.human_readable_type = 'Work'"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
55
|
def inject_sufia_file_set_behavior
|
68
56
|
insert_into_file 'app/models/file_set.rb', after: 'include ::CurationConcerns::FileSetBehavior' do
|
69
57
|
"\n include Sufia::FileSetBehavior"
|
@@ -157,18 +145,6 @@ module Sufia
|
|
157
145
|
end
|
158
146
|
end
|
159
147
|
|
160
|
-
def inject_sufia_form
|
161
|
-
file_path = "app/forms/curation_concerns/generic_work_form.rb"
|
162
|
-
if File.exist?(file_path)
|
163
|
-
gsub_file file_path, /CurationConcerns::Forms::WorkForm/, "Sufia::Forms::WorkForm"
|
164
|
-
inject_into_file file_path, after: /model_class = ::GenericWork/ do
|
165
|
-
"\n self.terms += [:resource_type]\n"
|
166
|
-
end
|
167
|
-
else
|
168
|
-
puts " \e[31mFailure\e[0m Sufia requires a GenericWorkForm object. This generator assumes that the model is defined in the file #{file_path}, which does not exist."
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
148
|
def install_sufia_700
|
173
149
|
generate "sufia:upgrade700"
|
174
150
|
end
|