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.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -1
  3. data/.rubocop_todo.yml +1 -2
  4. data/.travis.yml +1 -0
  5. data/Gemfile +18 -9
  6. data/README.md +23 -3
  7. data/app/assets/javascripts/sufia.js +4 -1
  8. data/app/assets/javascripts/sufia/app.js +15 -3
  9. data/app/assets/javascripts/sufia/autocomplete.es6 +51 -0
  10. data/app/assets/javascripts/sufia/autocomplete/language.es6 +25 -0
  11. data/app/assets/javascripts/sufia/autocomplete/location.es6 +24 -0
  12. data/app/assets/javascripts/sufia/autocomplete/subject.es6 +26 -0
  13. data/app/assets/javascripts/sufia/batch_edit.js +8 -5
  14. data/app/assets/javascripts/sufia/permissions/control.es6 +7 -3
  15. data/app/assets/javascripts/sufia/save_work/required_fields.es6 +10 -4
  16. data/app/assets/javascripts/sufia/save_work/save_work_control.es6 +14 -4
  17. data/app/assets/stylesheets/sufia/_fixedsticky.scss +23 -21
  18. data/app/assets/stylesheets/sufia/_form-progress.scss +16 -7
  19. data/app/assets/stylesheets/sufia/_header.scss +2 -1
  20. data/app/assets/stylesheets/sufia/_settings.scss +4 -0
  21. data/app/controllers/api/items_controller.rb +2 -2
  22. data/app/controllers/api/zotero_controller.rb +1 -1
  23. data/app/controllers/citations_controller.rb +0 -2
  24. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +7 -7
  25. data/app/controllers/concerns/sufia/batch_uploads_controller_behavior.rb +9 -3
  26. data/app/controllers/concerns/sufia/singular_subresource_controller.rb +6 -1
  27. data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +1 -1
  28. data/app/controllers/concerns/sufia/users_controller_behavior.rb +3 -3
  29. data/app/controllers/concerns/sufia/works_controller_behavior.rb +11 -4
  30. data/app/controllers/my/highlights_controller.rb +1 -1
  31. data/app/forms/sufia/forms/batch_edit_form.rb +10 -6
  32. data/app/forms/sufia/forms/batch_upload_form.rb +2 -2
  33. data/app/forms/sufia/forms/collection_form.rb +4 -0
  34. data/app/forms/sufia/forms/work_form.rb +4 -0
  35. data/app/helpers/sufia/blacklight_override.rb +0 -20
  36. data/app/helpers/sufia/collections_helper.rb +12 -0
  37. data/app/helpers/sufia/sufia_helper_behavior.rb +84 -56
  38. data/app/jobs/batch_create_job.rb +18 -2
  39. data/app/jobs/content_depositor_change_event_job.rb +13 -6
  40. data/app/jobs/create_work_job.rb +6 -2
  41. data/app/models/batch_upload_item.rb +15 -0
  42. data/app/models/concerns/sufia/ability.rb +7 -4
  43. data/app/models/concerns/sufia/user.rb +0 -11
  44. data/app/models/concerns/sufia/work_behavior.rb +1 -0
  45. data/app/models/concerns/sufia/works/featured.rb +23 -0
  46. data/app/models/file_download_stat.rb +9 -12
  47. data/app/models/file_view_stat.rb +5 -15
  48. data/app/models/proxy_deposit_request.rb +11 -7
  49. data/app/models/sufia/statistic.rb +65 -0
  50. data/app/models/work_view_stat.rb +5 -16
  51. data/app/presenters/file_usage.rb +3 -4
  52. data/app/presenters/sufia/file_set_presenter.rb +1 -3
  53. data/app/presenters/sufia/trophy_presenter.rb +28 -0
  54. data/app/presenters/sufia/user_profile_presenter.rb +1 -1
  55. data/app/presenters/work_usage.rb +5 -4
  56. data/app/search_builders/deposit_search_builder.rb +4 -3
  57. data/app/search_builders/parent_collection_search_builder.rb +1 -1
  58. data/app/services/sufia/collection_member_service.rb +1 -1
  59. data/app/services/sufia/user_stat_importer.rb +11 -6
  60. data/app/views/_controls.html.erb +11 -9
  61. data/app/views/batch_edits/edit.html.erb +8 -2
  62. data/app/views/catalog/_index_list_default.html.erb +2 -1
  63. data/app/views/curation_concerns/base/_form_metadata.html.erb +1 -1
  64. data/app/views/curation_concerns/base/_form_progress.html.erb +1 -1
  65. data/app/views/curation_concerns/base/_form_relationships.html.erb +1 -1
  66. data/app/views/curation_concerns/base/_guts4form.html.erb +6 -2
  67. data/app/views/curation_concerns/base/_items.html.erb +1 -1
  68. data/app/views/curation_concerns/base/edit.html.erb +1 -1
  69. data/app/views/curation_concerns/base/new.html.erb +1 -1
  70. data/app/views/curation_concerns/file_sets/_permission.html.erb +5 -1
  71. data/app/views/curation_concerns/file_sets/media_display/_default.html.erb +1 -1
  72. data/app/views/curation_concerns/file_sets/show.html.erb +1 -1
  73. data/app/views/dashboard/_index_partials/_heading_actions.html.erb +1 -1
  74. data/app/views/{error → errors}/404.html.erb +0 -0
  75. data/app/views/records/edit_fields/_based_near.html.erb +8 -0
  76. data/app/views/records/edit_fields/_language.html.erb +8 -0
  77. data/app/views/records/edit_fields/_subject.html.erb +8 -0
  78. data/app/views/stats/work.html.erb +1 -1
  79. data/app/views/sufia/batch_uploads/_form.html.erb +1 -1
  80. data/app/views/sufia/homepage/_home_header.html.erb +1 -1
  81. data/app/views/sufia/homepage/_sortable_featured.html.erb +1 -1
  82. data/app/views/transfers/new.html.erb +3 -1
  83. data/app/views/users/_contributions.html.erb +1 -1
  84. data/config/locales/sufia.en.yml +3 -2
  85. data/config/routes.rb +0 -7
  86. data/lib/generators/sufia/install_generator.rb +0 -24
  87. data/lib/generators/sufia/templates/catalog_controller.rb +4 -3
  88. data/lib/generators/sufia/templates/config/sufia.rb +4 -2
  89. data/lib/generators/sufia/upgrade700_generator.rb +7 -9
  90. data/lib/generators/sufia/work_generator.rb +56 -0
  91. data/lib/sufia.rb +4 -1
  92. data/lib/sufia/arkivo/actor.rb +1 -1
  93. data/lib/sufia/configuration.rb +15 -3
  94. data/lib/sufia/engine.rb +1 -10
  95. data/lib/sufia/version.rb +1 -1
  96. data/spec/controllers/api/items_controller_spec.rb +20 -7
  97. data/spec/controllers/sufia/batch_uploads_controller_spec.rb +4 -3
  98. data/spec/controllers/transfers_controller_spec.rb +3 -11
  99. data/spec/controllers/users_controller_spec.rb +2 -1
  100. data/spec/features/batch_edit_spec.rb +17 -2
  101. data/spec/forms/sufia/forms/batch_edit_form_spec.rb +2 -0
  102. data/spec/forms/sufia/forms/batch_upload_form_spec.rb +1 -1
  103. data/spec/helpers/blacklight_helper_spec.rb +36 -26
  104. data/spec/helpers/{generic_work_helper_spec.rb → sufia/collections_helper_spec.rb} +1 -1
  105. data/spec/helpers/sufia_helper_spec.rb +70 -32
  106. data/spec/javascripts/autocomplete_spec.js.coffee +7 -7
  107. data/spec/javascripts/save_work_spec.js +20 -20
  108. data/spec/lib/sufia/configuration_spec.rb +30 -0
  109. data/spec/lib/sufia/user_stat_importer_spec.rb +21 -36
  110. data/spec/models/file_download_stat_spec.rb +8 -8
  111. data/spec/models/file_view_stat_spec.rb +8 -8
  112. data/spec/models/generic_work_spec.rb +24 -0
  113. data/spec/models/proxy_deposit_request_spec.rb +2 -4
  114. data/spec/models/sufia/ability_spec.rb +7 -13
  115. data/spec/models/user_spec.rb +0 -14
  116. data/spec/models/work_view_stat_spec.rb +22 -8
  117. data/spec/presenters/sufia/file_usage_spec.rb +0 -4
  118. data/spec/presenters/sufia/trophy_presenter_spec.rb +46 -0
  119. data/spec/presenters/sufia/user_profile_presenter_spec.rb +4 -1
  120. data/spec/presenters/sufia/work_usage_spec.rb +8 -17
  121. data/spec/routing/route_spec.rb +0 -6
  122. data/spec/spec_helper.rb +8 -2
  123. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -0
  124. data/spec/views/batch_edits/edit.html.erb_spec.rb +8 -2
  125. data/spec/views/catalog/_index_list_default.html.erb_spec.rb +8 -6
  126. data/spec/views/curation_concerns/base/_form.html.erb_spec.rb +3 -0
  127. data/spec/views/curation_concerns/file_sets/_permission.html.erb_spec.rb +16 -0
  128. data/spec/views/curation_concerns/file_sets/show.html.erb_spec.rb +0 -2
  129. data/spec/views/records/edit_fields/_based_near.html.erb_spec.rb +20 -0
  130. data/spec/views/records/edit_fields/_language.html.erb_spec.rb +20 -0
  131. data/spec/views/records/edit_fields/_subject.html.erb_spec.rb +20 -0
  132. data/spec/views/{homepage → sufia/homepage}/_announcement.html.erb_spec.rb +0 -0
  133. data/spec/views/{homepage → sufia/homepage}/_featured_works.html.erb_spec.rb +0 -0
  134. data/spec/views/{homepage → sufia/homepage}/_home_header.html.erb_spec.rb +0 -0
  135. data/spec/views/sufia/homepage/_sortable_featured.html.erb_spec.rb +21 -0
  136. data/spec/views/users/edit.html.erb_spec.rb +5 -5
  137. data/spec/views/users/show.html.erb_spec.rb +5 -3
  138. data/sufia.gemspec +4 -3
  139. data/tasks/noid.rake +2 -2
  140. data/tasks/sufia-dev.rake +1 -1
  141. metadata +73 -68
  142. data/app/assets/javascripts/sufia/edit_metadata.js +0 -87
  143. data/app/controllers/authorities_controller.rb +0 -19
  144. data/app/helpers/generic_work_helper.rb +0 -10
  145. data/app/helpers/sufia_url_helper.rb +0 -14
  146. data/app/models/concerns/sufia/file_stat_utils.rb +0 -33
  147. data/app/models/concerns/sufia/work_stat_utils.rb +0 -33
  148. data/app/models/geo_names_resource.rb +0 -18
  149. data/app/models/local_authority.rb +0 -101
  150. data/app/models/local_authority_entry.rb +0 -3
  151. data/app/models/subject_local_authority_entry.rb +0 -2
  152. data/app/views/curation_concerns/generic_works/_generic_work.html.erb +0 -3
  153. data/app/views/error/401.html.erb +0 -18
  154. data/app/views/error/500.html.erb +0 -9
  155. data/app/views/error/single_use_error.html.erb +0 -19
  156. data/lib/generators/sufia/geonames_username_config_generator.rb +0 -20
  157. data/spec/controllers/authorities_controller_spec.rb +0 -18
  158. data/spec/fixtures/cities15000.tsv +0 -149
  159. data/spec/fixtures/genreForms.nt +0 -471
  160. data/spec/fixtures/lexvo.rdf +0 -3108
  161. data/spec/helpers/sufia_url_helper_spec.rb +0 -18
  162. data/spec/models/geo_names_resource_spec.rb +0 -30
  163. data/spec/models/local_authority_spec.rb +0 -108
  164. 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, :path, :pageviews
6
+ attr_accessor :id, :created, :pageviews, :work
7
7
 
8
8
  def initialize(id)
9
- work = ::GenericWork.find(id)
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(id, created, user_id)
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
- # use caution when combining this with other searches as it sets the rows to zero to just get the facet information
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 file information
14
- solr_parameters[:fq] = "has_model_ssim:GenericWork"
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
@@ -1,4 +1,4 @@
1
- # Given the id of a GenericWork, finds its parent collections
1
+ # Given the id of a work, find the collections it is a member of
2
2
  class ParentCollectionSearchBuilder < CurationConcerns::CollectionSearchBuilder
3
3
  delegate :item, to: :scope
4
4
 
@@ -8,7 +8,7 @@ module Sufia
8
8
 
9
9
  copy_blacklight_config_from(CatalogController)
10
10
 
11
- # @param [SolrDocument] item represents a GenericWork
11
+ # @param [SolrDocument] item represents a work
12
12
  def self.run(item)
13
13
  new(item).list_collections
14
14
  end
@@ -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
- @verbose = options[:verbose]
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
- view_stats = rescue_and_retry("Retried FileViewStat on #{user} for file #{file_id} too many times.") { FileViewStat.statistics(file_id, start_date, user.id) }
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(file_id, start_date, user.id) }
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
- work_stats = rescue_and_retry("Retried WorkViewStat on #{user} for work #{work_id} too many times.") { WorkViewStat.statistics(work_id, start_date, user.id) }
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
- ::GenericWork.search_in_batches("#{depositor_field}:\"#{user.user_key}\"", fl: "id") do |group|
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
- <ul class="nav navbar-nav col-sm-5 col-md-6">
4
- <li <%= 'class=active' if current_page?(sufia.root_path) %>><%= link_to 'Home', sufia.root_path, :'data-no-turbolink'=>"true" %></li>
5
- <li <%= 'class=active' if current_page?(sufia.about_path) %>><%= link_to 'About', sufia.about_path, :'data-no-turbolink'=>"true" %></li>
6
- <li <%= 'class=active' if action_name == "help" %>><a href="<%= sufia.static_path('help') %>">Help</a></li>
7
- <li <%= 'class=active' if current_page?(sufia.contact_path) %>><a href="<%= sufia.contact_path %>">Contact</a></li>
8
- </ul><!-- /.nav -->
9
- <div class="navbar-right row col-sm-7 col-md-6">
10
- <%= render partial: 'catalog/search_form' %>
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, url: batch_edits_path, method: :put, remote: true,
20
- builder: Sufia::FormBuilder, html: { id: "form_#{term.to_s}", class: "ajax-form"} do |f| %>
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><%= render_index_field_value document, field: field_name %></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.generic_works.edit.additional_fields'),
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.#{controller_name}.progress.header") %></h2>
4
+ <h2><%= t("sufia.works.progress.header") %></h2>
5
5
  </div>
6
6
  <div class="list-group">
7
7
  <div class="list-group-item">
@@ -1,4 +1,4 @@
1
- <h3><%= t("sufia.#{controller_name}.#{action_name}.in_collections") %></h3>
1
+ <h3><%= t("sufia.works.#{action_name}.in_collections") %></h3>
2
2
  <div id="collection-widget">
3
3
  <%= f.input :collection_ids, as: :select,
4
4
  collection: available_collections(nil),
@@ -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.generic_works.edit.tab.#{tab}") %>
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
- <p class="text-center"><em><%= t('.empty', type: presenter.human_readable_type) %></em></p>
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.#{controller_name}.#{action_name}.header") %></h1>
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.#{controller_name}.#{action_name}.header") %></h1>
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], html: { multipart: true, id: 'permission' } do |f| %>
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">
@@ -1,3 +1,3 @@
1
1
  <div class="no-preview">
2
- <%= t('sufia.generic_works.show.no_preview') %>
2
+ <%= t('sufia.works.show.no_preview') %>
3
3
  </div>
@@ -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, parent: parent %>
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, GenericWork) %>
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
@@ -0,0 +1,8 @@
1
+ <%= f.input key,
2
+ as: :multi_value,
3
+ input_html: {
4
+ class: 'form-control',
5
+ data: { 'autocomplete-url' => "/authorities/search/geonames",
6
+ 'autocomplete' => key }
7
+ },
8
+ required: f.object.required?(key) %>
@@ -0,0 +1,8 @@
1
+ <%= f.input key,
2
+ as: :multi_value,
3
+ input_html: {
4
+ class: 'form-control',
5
+ data: { 'autocomplete-url' => "/authorities/search/local/languages",
6
+ 'autocomplete' => key }
7
+ },
8
+ required: f.object.required?(key) %>
@@ -0,0 +1,8 @@
1
+ <%= f.input key,
2
+ as: :multi_value,
3
+ input_html: {
4
+ class: 'form-control',
5
+ data: { 'autocomplete-url' => "/authorities/search/local/subjects",
6
+ 'autocomplete' => key }
7
+ },
8
+ required: f.object.required?(key) %>
@@ -3,7 +3,7 @@
3
3
  var stats = <%= @stats.to_flot.to_json.html_safe %>;
4
4
  <% end %>
5
5
 
6
- <%= content_tag :h1, @generic_work, class: "lower" %>
6
+ <%= content_tag :h1, @stats, class: "lower" %>
7
7
 
8
8
  <div class="row">
9
9
  <div class="col-sm-12">
@@ -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", new_curation_concerns_generic_work_path %></p>
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 new_curation_concerns_generic_work_path, class: "btn btn-primary btn-lg btn-block", id: "contribute_link" do %>
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 :drag %></div>
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, url: sufia.work_transfers_path(@generic_work), html: {class: 'form-horizontal', id: 'new_transfer'} do |f| %>
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' %>
@@ -5,7 +5,7 @@
5
5
  <tr id="trophyrow_<%= t.id %>">
6
6
  <td>
7
7
  <%= link_to t do %>
8
- <%= image_tag t.indexing_service.thumbnail_path, { width: 90 } %>
8
+ <%= image_tag t.thumbnail_path, width: 90 %>
9
9
  <% end %>
10
10
  </td>
11
11
  <td>
@@ -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
- generic_works:
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. You can add one using the \"Attach a File\" button below."
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:
@@ -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