curation_concerns 1.0.0.beta4 → 1.0.0.beta5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -3
  3. data/app/assets/stylesheets/curation_concerns/modules/forms.scss +16 -2
  4. data/app/controllers/concerns/curation_concerns/catalog_controller.rb +0 -5
  5. data/app/controllers/concerns/curation_concerns/curation_concern_controller.rb +0 -5
  6. data/app/helpers/curation_concerns/main_app_helpers.rb +1 -0
  7. data/app/helpers/curation_concerns/permissions_helper.rb +2 -4
  8. data/app/helpers/curation_concerns/rights_helper.rb +9 -0
  9. data/app/inputs/multi_value_select_input.rb +45 -0
  10. data/app/models/concerns/curation_concerns/collection.rb +0 -1
  11. data/app/presenters/curation_concerns/file_set_presenter.rb +4 -4
  12. data/app/presenters/curation_concerns/presents_attributes.rb +28 -2
  13. data/app/presenters/curation_concerns/work_show_presenter.rb +1 -8
  14. data/app/renderers/curation_concerns/renderers/attribute_renderer.rb +2 -33
  15. data/app/renderers/curation_concerns/renderers/faceted_attribute_renderer.rb +19 -0
  16. data/app/renderers/curation_concerns/renderers/linked_attribute_renderer.rb +20 -0
  17. data/app/renderers/curation_concerns/renderers/rights_attribute_renderer.rb +27 -0
  18. data/app/services/curation_concerns/actors/actor_factory.rb +1 -2
  19. data/app/services/rights_service.rb +11 -1
  20. data/app/views/curation_concerns/base/_attribute_rows.html.erb +3 -3
  21. data/app/views/curation_concerns/base/_attributes.html.erb +1 -1
  22. data/app/views/curation_concerns/base/_form_permission.html.erb +1 -1
  23. data/app/views/curation_concerns/base/_form_rights.html.erb +4 -2
  24. data/app/views/records/edit_fields/_default.html.erb +1 -1
  25. data/config/locales/curation_concerns.en.yml +2 -0
  26. data/curation_concerns.gemspec +1 -1
  27. data/lib/curation_concerns/configuration.rb +0 -1
  28. data/lib/curation_concerns/version.rb +1 -1
  29. data/lib/generators/curation_concerns/install_generator.rb +6 -3
  30. data/lib/generators/curation_concerns/templates/config/initializers/simple_form.rb +170 -0
  31. data/lib/generators/curation_concerns/templates/config/initializers/simple_form_bootstrap.rb +150 -0
  32. data/spec/inputs/multi_value_with_help_input_spec.rb +0 -15
  33. data/spec/presenters/curation_concerns/file_set_presenter_spec.rb +15 -1
  34. data/spec/presenters/curation_concerns/work_show_presenter_spec.rb +0 -11
  35. data/spec/renderers/curation_concerns/renderers/faceted_attribute_renderer_spec.rb +21 -0
  36. data/spec/renderers/curation_concerns/renderers/linked_attribute_renderer_spec.rb +21 -0
  37. data/spec/renderers/curation_concerns/renderers/rights_attribute_renderer_spec.rb +21 -0
  38. data/spec/services/rights_service_spec.rb +9 -3
  39. data/spec/views/curation_concerns/base/_form_rights_spec.rb +41 -0
  40. data/spec/views/curation_concerns/base/file_manager.html.erb_spec.rb +1 -1
  41. metadata +19 -20
  42. data/app/actors/concerns/curation_concerns/manages_embargoes_actor.rb +0 -28
  43. data/app/actors/curation_concerns/actors/assign_identifier_actor.rb +0 -9
  44. data/app/actors/curation_concerns/actors/work_actor_behavior.rb +0 -12
  45. data/app/inputs/multi_value_with_help_input.rb +0 -8
  46. data/app/inputs/select_with_help_input.rb +0 -3
  47. data/app/inputs/select_with_modal_help_input.rb +0 -36
  48. data/app/inputs/with_help_icon.rb +0 -34
  49. data/app/search_builders/curation_concerns/search_builder.rb +0 -10
  50. data/spec/helpers/curation_concerns/permissions_helper_spec.rb +0 -12
  51. data/spec/inputs/select_with_help_input_spec.rb +0 -43
  52. data/spec/inputs/select_with_modal_help_input_spec.rb +0 -21
  53. data/spec/search_builders/curation_concerns/search_builder_spec.rb +0 -53
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4308100446011564275bcdedd4c7481463a38e5c
4
- data.tar.gz: 7b81af4f3ea2ed2c2d576532ad300325447ea269
3
+ metadata.gz: 3516c66d4ff6b39953a066d649baa15417442b33
4
+ data.tar.gz: 540d110fcf876cdaf08346246317fc7d4ae109ee
5
5
  SHA512:
6
- metadata.gz: 80590935c92b01803e6112748622e8932907900449355710af1bdb7162e9b8ff2b5e2d2a7f4fa02279e607aac1fe614b2eca92eb5e9fe77011b5f64bedeb1173
7
- data.tar.gz: 2beb2613b9ec9627081d40d0177e678f31a9a10802528ae1d75be089b4d1bca4d1c570445ecf86efca6225d84069f46adb4a254093c02d3a3bf9d14696b6ffb3
6
+ metadata.gz: ec704704bbb9085b8e42d3d8b53d6e87a68fd6f51d24ab80639dc59edc6b2fce718b188194eb8c4c2fe1dbbd3a3a66f9b97226fa609b40f38e20a2a4d3e3ca81
7
+ data.tar.gz: 6c545fae4b20c118a42ba34cb4e9cd1e73401c3d3936e1adc7028c41af7aaf7db604e8554307b0d0898ec7db95f3f6e27a6c28b1a835344b67160e0291381091
data/README.md CHANGED
@@ -2,12 +2,11 @@
2
2
 
3
3
  [![Version](https://badge.fury.io/rb/curation_concerns.png)](http://badge.fury.io/rb/curation_concerns)
4
4
  [![Build Status](https://travis-ci.org/projecthydra/curation_concerns.svg?branch=master)](https://travis-ci.org/projecthydra/curation_concerns)
5
- [![Coverage Status](https://coveralls.io/repos/projecthydra-labs/curation_concerns/badge.svg?branch=master)](https://coveralls.io/r/projecthydra-labs/curation_concerns?branch=master)
6
- [![Code Climate](https://codeclimate.com/github/projecthydra-labs/curation_concerns/badges/gpa.svg)](https://codeclimate.com/github/projecthydra-labs/curation_concerns)
5
+ [![Coverage Status](https://coveralls.io/repos/projecthydra/curation_concerns/badge.svg?branch=master)](https://coveralls.io/r/projecthydra/curation_concerns?branch=master)
6
+ [![Code Climate](https://codeclimate.com/github/projecthydra/curation_concerns/badges/gpa.svg)](https://codeclimate.com/github/projecthydra/curation_concerns)
7
7
  [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE.txt)
8
8
  [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
9
9
  [![API Docs](http://img.shields.io/badge/API-docs-blue.svg)](http://rubydoc.info/gems/curation_concerns)
10
- [![Stories in Ready](https://badge.waffle.io/projecthydra-labs/sufia-core.png?source=projecthydra-labs%2Fcuration_concerns&label=ready&title=Ready)](https://waffle.io/projecthydra-labs/sufia-core?source=projecthydra-labs%2Fcuration_concerns)
11
10
 
12
11
  A Hydra-based Rails Engine that extends an application, adding the ability to Create, Read, Update and Destroy (CRUD) objects (based on [Hydra::Works](http://github.com/projecthydra/hydra-works)) and providing a generator for defining object types with custom workflows, views, access controls, etc.
13
12
 
@@ -25,6 +25,8 @@ legend small {
25
25
  padding-left:1.2em;
26
26
  }
27
27
 
28
+ .form-group { margin-bottom: 2em; }
29
+
28
30
  .form-group.has-error input,
29
31
  .form-group.has-error option,
30
32
  .form-group.has-error textarea {
@@ -35,8 +37,16 @@ legend small {
35
37
  margin-top: 1em;
36
38
  }
37
39
 
38
- form label.optional { font-weight: normal; }
39
- form label.required { font-weight: bold; }
40
+ form {
41
+ label { font-weight: bold; }
42
+
43
+ label { margin-bottom: 7px; }
44
+
45
+ .help-block {
46
+ margin-top: 0;
47
+ margin-bottom: 10px;
48
+ }
49
+ }
40
50
 
41
51
  .set-access-controls {
42
52
  label { font-weight: normal; }
@@ -68,3 +78,7 @@ form label.required { font-weight: bold; }
68
78
  form.button-to {
69
79
  margin:0 .3em;
70
80
  }
81
+
82
+ .required-tag {
83
+ vertical-align: super;
84
+ }
@@ -22,10 +22,5 @@ module CurationConcerns::CatalogController
22
22
  def modified_field
23
23
  solr_name('date_modified', :stored_sortable, type: :date)
24
24
  end
25
-
26
- def search_config
27
- ActiveSupport::Deprecation.warn("#{self.class}.search_config is deprecated and will be removed in CurationConcerns 1.0")
28
- { 'qf' => %w(title_tesim name_tesim), 'qt' => 'search', 'rows' => 10 }
29
- end
30
25
  end
31
26
  end
@@ -16,11 +16,6 @@ module CurationConcerns::CurationConcernController
16
16
  end
17
17
 
18
18
  module ClassMethods
19
- def set_curation_concern_type(curation_concern_type)
20
- Deprecation.warn self, "set_curation_concern_type is deprecated and will be removed in curation_concerns 1.0. Use self.curation_concern_type = #{curation_concern_type} instead."
21
- self.curation_concern_type = curation_concern_type
22
- end
23
-
24
19
  def curation_concern_type=(curation_concern_type)
25
20
  load_and_authorize_resource class: curation_concern_type, instance_name: :curation_concern, except: [:show, :file_manager]
26
21
  self._curation_concern_type = curation_concern_type
@@ -9,4 +9,5 @@ module CurationConcerns::MainAppHelpers
9
9
  include CurationConcerns::LeaseHelper
10
10
  include CurationConcerns::CollectionsHelper
11
11
  include CurationConcerns::PermissionsHelper
12
+ include CurationConcerns::RightsHelper
12
13
  end
@@ -1,9 +1,7 @@
1
1
  module CurationConcerns
2
2
  module PermissionsHelper
3
- def help_link(file, title, aria_label)
4
- link_to help_icon, '#',
5
- data: { toggle: 'popover', content: capture_content(file), 'original-title' => title },
6
- 'aria-label' => aria_label
3
+ def help_text(file)
4
+ capture_content(file)
7
5
  end
8
6
 
9
7
  private
@@ -0,0 +1,9 @@
1
+ module CurationConcerns::RightsHelper
2
+ def include_current_value(value, _index, render_options, html_options)
3
+ unless value.blank? || RightsService.active?(value)
4
+ html_options[:class] << ' force-select'
5
+ render_options += [[RightsService.label(value), value]]
6
+ end
7
+ [render_options, html_options]
8
+ end
9
+ end
@@ -0,0 +1,45 @@
1
+ class MultiValueSelectInput < MultiValueInput
2
+ def input_type
3
+ 'multi_value'.freeze
4
+ end
5
+
6
+ private
7
+
8
+ def select_options
9
+ @select_options ||= begin
10
+ collection = options.delete(:collection) || self.class.boolean_collection
11
+ collection.respond_to?(:call) ? collection.call : collection.to_a
12
+ end
13
+ end
14
+
15
+ def build_field_options(value)
16
+ field_options = input_html_options.dup
17
+
18
+ field_options[:value] = value
19
+ if @rendered_first_element
20
+ field_options[:id] = nil
21
+ field_options[:required] = nil
22
+ else
23
+ field_options[:id] ||= input_dom_id
24
+ end
25
+ field_options[:class] ||= []
26
+ field_options[:class] += ["#{input_dom_id} form-control multi-text-field"]
27
+ field_options[:'aria-labelledby'] = label_id
28
+ field_options.delete(:multiple)
29
+ field_options.delete(:item_helper)
30
+ field_options.merge!(options.slice(:include_blank))
31
+
32
+ @rendered_first_element = true
33
+
34
+ field_options
35
+ end
36
+
37
+ def build_field(value, index)
38
+ render_options = select_options
39
+ html_options = build_field_options(value)
40
+ if options[:item_helper]
41
+ (render_options, html_options) = options[:item_helper].call(value, index, render_options, html_options)
42
+ end
43
+ template.select_tag(attribute_name, template.options_for_select(render_options, value), html_options)
44
+ end
45
+ end
@@ -1,7 +1,6 @@
1
1
  module CurationConcerns
2
2
  module Collection
3
3
  extend ActiveSupport::Concern
4
- extend Deprecation
5
4
  include Hydra::WithDepositor # for access to apply_depositor_metadata
6
5
  include Hydra::AccessControls::Permissions
7
6
  include CurationConcerns::RequiredMetadata
@@ -21,17 +21,17 @@ module CurationConcerns
21
21
  delegate :has?, :first, :fetch, to: :solr_document
22
22
 
23
23
  # Metadata Methods
24
- delegate :title, :description, :creator, :contributor, :subject, :publisher,
25
- :language, :date_uploaded, :rights,
24
+ delegate :title, :label, :description, :creator, :contributor, :subject,
25
+ :publisher, :language, :date_uploaded, :rights,
26
26
  :embargo_release_date, :lease_expiration_date,
27
27
  :depositor, :keyword, :title_or_label, to: :solr_document
28
28
 
29
29
  def page_title
30
- Array.wrap(solr_document['label_tesim']).first
30
+ label
31
31
  end
32
32
 
33
33
  def link_name
34
- current_ability.can?(:read, id) ? Array.wrap(solr_document['label_tesim']).first : 'File'
34
+ current_ability.can?(:read, id) ? label : 'File'
35
35
  end
36
36
  end
37
37
  end
@@ -4,17 +4,20 @@ module CurationConcerns
4
4
  # Present the attribute as an HTML table row.
5
5
  #
6
6
  # @param [Hash] options
7
- # @option options [true, false] :catalog_search_link return a link to a catalog search for that text if true
7
+ # @option options [Symbol] :render_as use an alternate renderer
8
+ # (e.g., :linked or :linked_attribute to use LinkedAttributeRenderer)
8
9
  # @option options [String] :search_field If the method_name of the attribute is different than
9
10
  # how the attribute name should appear on the search URL,
10
11
  # you can explicitly set the URL's search field name
11
12
  # @option options [String] :label The default label for the field if no translation is found
13
+ # @option options [TrueClass, FalseClass] :include_empty should we display a row if there are no values?
12
14
  def attribute_to_html(field, options = {})
13
15
  unless respond_to?(field)
14
16
  Rails.logger.warn("#{self.class} attempted to render #{field}, but no method exists with that name.")
15
17
  return
16
18
  end
17
- CurationConcerns::Renderers::AttributeRenderer.new(field, send(field), options).render
19
+
20
+ renderer_for(field, options).new(field, send(field), options).render
18
21
  end
19
22
 
20
23
  def permission_badge
@@ -37,6 +40,29 @@ module CurationConcerns
37
40
 
38
41
  private
39
42
 
43
+ def find_renderer_class(name)
44
+ renderer = nil
45
+ ['Renderer', 'AttributeRenderer'].each do |suffix|
46
+ const_name = "#{name.to_s.camelize}#{suffix}".to_sym
47
+ renderer = begin
48
+ Renderers.const_get(const_name)
49
+ rescue NameError
50
+ nil
51
+ end
52
+ break unless renderer.nil?
53
+ end
54
+ raise NameError, "unknown renderer type `#{name}`" if renderer.nil?
55
+ renderer
56
+ end
57
+
58
+ def renderer_for(_field, options)
59
+ if options[:render_as]
60
+ find_renderer_class(options[:render_as])
61
+ else
62
+ Renderers::AttributeRenderer
63
+ end
64
+ end
65
+
40
66
  def microdata_type_key
41
67
  "curation_concerns.schema_org.resource_type.#{human_readable_type}"
42
68
  end
@@ -25,7 +25,7 @@ module CurationConcerns
25
25
  end
26
26
 
27
27
  def page_title
28
- solr_document.title.first
28
+ title.first
29
29
  end
30
30
 
31
31
  # CurationConcern methods
@@ -53,13 +53,6 @@ module CurationConcerns
53
53
  @work_presenters ||= member_presenters(ordered_ids - file_set_ids, work_presenter_class)
54
54
  end
55
55
 
56
- # @deprecated
57
- # @return [Array<FileSetPresenter>] presenters for the orderd_members that are FileSets
58
- def file_presenters
59
- Deprecation.warn WorkShowPresenter, "file_presenters is deprecated and will be removed in CurationConcerns 1.0. Use file_set_presenters or member_presenters instead."
60
- member_presenters
61
- end
62
-
63
56
  # @param [Array<String>] ids a list of ids to build presenters for
64
57
  # @param [Class] presenter_class the type of presenter to build
65
58
  # @return [Array<presenter_class>] presenters for the ordered_members (not filtered by class)
@@ -45,9 +45,7 @@ module CurationConcerns
45
45
  private
46
46
 
47
47
  def attribute_value_to_html(value)
48
- if field == :rights
49
- rights_attribute_to_html(value)
50
- elsif microdata_value_attributes(field).present?
48
+ if microdata_value_attributes(field).present?
51
49
  "<span#{html_attributes(microdata_value_attributes(field))}>#{li_value(value)}</span>"
52
50
  else
53
51
  li_value(value)
@@ -63,37 +61,8 @@ module CurationConcerns
63
61
  buffer
64
62
  end
65
63
 
66
- def search_field
67
- options.fetch(:search_field, field)
68
- end
69
-
70
64
  def li_value(value)
71
- if options[:catalog_search_link]
72
- link_to(ERB::Util.h(value), search_path(value))
73
- else
74
- auto_link(ERB::Util.h(value))
75
- end
76
- end
77
-
78
- def search_path(value)
79
- Rails.application.routes.url_helpers.search_catalog_path(
80
- search_field: search_field, q: ERB::Util.h(value))
81
- end
82
-
83
- ##
84
- # Special treatment for license/rights. A URL from the Sufia gem's config/sufia.rb is stored in the descMetadata of the
85
- # curation_concern. If that URL is valid in form, then it is used as a link. If it is not valid, it is used as plain text.
86
- def rights_attribute_to_html(value)
87
- begin
88
- parsed_uri = URI.parse(value)
89
- rescue
90
- nil
91
- end
92
- if parsed_uri.nil?
93
- ERB::Util.h(value)
94
- else
95
- %(<a href=#{ERB::Util.h(value)} target="_blank">#{RightsService.label(value)}</a>)
96
- end
65
+ auto_link(ERB::Util.h(value))
97
66
  end
98
67
  end
99
68
  end
@@ -0,0 +1,19 @@
1
+ module CurationConcerns
2
+ module Renderers
3
+ class FacetedAttributeRenderer < AttributeRenderer
4
+ private
5
+
6
+ def li_value(value)
7
+ link_to(ERB::Util.h(value), search_path(value))
8
+ end
9
+
10
+ def search_path(value)
11
+ Rails.application.routes.url_helpers.search_catalog_path(:"f[#{search_field}][]" => ERB::Util.h(value))
12
+ end
13
+
14
+ def search_field
15
+ ERB::Util.h(Solrizer.solr_name(options.fetch(:search_field, field), :facetable, type: :string))
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ module CurationConcerns
2
+ module Renderers
3
+ class LinkedAttributeRenderer < AttributeRenderer
4
+ private
5
+
6
+ def li_value(value)
7
+ link_to(ERB::Util.h(value), search_path(value))
8
+ end
9
+
10
+ def search_path(value)
11
+ Rails.application.routes.url_helpers.search_catalog_path(
12
+ search_field: search_field, q: ERB::Util.h(value))
13
+ end
14
+
15
+ def search_field
16
+ options.fetch(:search_field, field)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,27 @@
1
+ module CurationConcerns
2
+ module Renderers
3
+ class RightsAttributeRenderer < AttributeRenderer
4
+ private
5
+
6
+ def attribute_value_to_html(value)
7
+ rights_attribute_to_html(value)
8
+ end
9
+
10
+ ##
11
+ # Special treatment for license/rights. A URL from the Sufia gem's config/sufia.rb is stored in the descMetadata of the
12
+ # curation_concern. If that URL is valid in form, then it is used as a link. If it is not valid, it is used as plain text.
13
+ def rights_attribute_to_html(value)
14
+ begin
15
+ parsed_uri = URI.parse(value)
16
+ rescue
17
+ nil
18
+ end
19
+ if parsed_uri.nil?
20
+ ERB::Util.h(value)
21
+ else
22
+ %(<a href=#{ERB::Util.h(value)} target="_blank">#{RightsService.label(value)}</a>)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -13,8 +13,7 @@ module CurationConcerns
13
13
  AttachFilesActor,
14
14
  ApplyOrderActor,
15
15
  InterpretVisibilityActor,
16
- model_actor(curation_concern),
17
- AssignIdentifierActor]
16
+ model_actor(curation_concern)]
18
17
  end
19
18
 
20
19
  def self.model_actor(curation_concern)
@@ -2,10 +2,20 @@ module RightsService
2
2
  mattr_accessor :authority
3
3
  self.authority = Qa::Authorities::Local.subauthority_for('rights')
4
4
 
5
- def self.select_options
5
+ def self.select_all_options
6
+ authority.all.map do |element|
7
+ [element[:label], element[:id]]
8
+ end
9
+ end
10
+
11
+ def self.select_active_options
6
12
  active_elements.map { |e| [e[:label], e[:id]] }
7
13
  end
8
14
 
15
+ def self.active?(id)
16
+ authority.find(id).fetch('active')
17
+ end
18
+
9
19
  def self.label(id)
10
20
  authority.find(id).fetch('term')
11
21
  end
@@ -1,7 +1,7 @@
1
1
  <%= presenter.attribute_to_html(:description) %>
2
- <%= presenter.attribute_to_html(:creator, catalog_search_link: true ) %>
3
- <%= presenter.attribute_to_html(:contributor, label: 'Contributors', catalog_search_link: true) %>
4
- <%= presenter.attribute_to_html(:subject, catalog_search_link: true) %>
2
+ <%= presenter.attribute_to_html(:creator, render_as: :linked) %>
3
+ <%= presenter.attribute_to_html(:contributor, label: 'Contributors', render_as: :linked) %>
4
+ <%= presenter.attribute_to_html(:subject, render_as: :linked) %>
5
5
  <%= presenter.attribute_to_html(:publisher) %>
6
6
  <%= presenter.attribute_to_html(:language) %>
7
7
 
@@ -8,6 +8,6 @@
8
8
  <%= presenter.attribute_to_html(:permission_badge, label: 'Visibility') %>
9
9
  <%= presenter.attribute_to_html(:embargo_release_date) %>
10
10
  <%= presenter.attribute_to_html(:lease_expiration_date) %>
11
- <%= presenter.attribute_to_html(:rights) %>
11
+ <%= presenter.attribute_to_html(:rights, render_as: :rights) %>
12
12
  </tbody>
13
13
  </table>
@@ -9,7 +9,7 @@
9
9
  Visibility
10
10
  <small>Who should be able to view or download this content?</small>
11
11
  <span id="visibility_tooltip" class="h5">
12
- <%= help_link 'visibility', 'Visibility', 'Usage information for visibility' %>
12
+ <%= help_text 'visibility' %>
13
13
  </span>
14
14
  </legend>
15
15
 
@@ -9,8 +9,10 @@
9
9
  <a href="http://creativecommons.org/licenses/" target="_blank">Here's some help</a> if you don't know which license to choose.
10
10
  </p>
11
11
 
12
- <%= f.input :rights, as: :select,
13
- collection: RightsService.select_options,
12
+ <%= f.input :rights, as: :multi_value_select,
13
+ collection: RightsService.select_active_options,
14
+ include_blank: true,
15
+ item_helper: method(:include_current_value),
14
16
  input_html: { class: 'form-control' } %>
15
17
  </fieldset>
16
18
  </div>
@@ -1,5 +1,5 @@
1
1
  <% if f.object.class.multiple? key %>
2
- <%= f.input key, as: :multi_value_with_help, input_html: { class: 'form-control' }, required: f.object.required?(key) %>
2
+ <%= f.input key, as: :multi_value, input_html: { class: 'form-control' }, required: f.object.required?(key) %>
3
3
  <% else %>
4
4
  <%= f.input key, required: f.object.required?(key) %>
5
5
  <% end %>
@@ -159,6 +159,8 @@ en:
159
159
  file_manager:
160
160
  link_text: 'File Manager'
161
161
  simple_form:
162
+ required:
163
+ html: '<span class="label label-info required-tag">required</span>'
162
164
  hints:
163
165
  defaults:
164
166
  description: 'Please keep your description to 300 words or fewer.'
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency 'sprockets-es6'
30
30
  spec.add_dependency 'kaminari_route_prefix', '~> 0.0.1'
31
31
  spec.add_dependency 'active_attr'
32
- spec.add_dependency 'hydra-works', '>= 0.11.0'
32
+ spec.add_dependency 'hydra-works', '>= 0.12.0'
33
33
  spec.add_dependency 'active_fedora-noid', '~> 1.0'
34
34
  spec.add_dependency 'qa', '~> 0.5'
35
35
  spec.add_dependency 'redlock', '~> 0.1.2'
@@ -1,7 +1,6 @@
1
1
  require 'curation_concerns/callbacks'
2
2
 
3
3
  module CurationConcerns
4
- extend Deprecation
5
4
  class << self
6
5
  attr_accessor :config
7
6
  end
@@ -1,3 +1,3 @@
1
1
  module CurationConcerns
2
- VERSION = "1.0.0.beta4".freeze
2
+ VERSION = "1.0.0.beta5".freeze
3
3
  end
@@ -17,7 +17,7 @@ module CurationConcerns
17
17
  7. Adds CurationConcerns::SolrDocumentBehavior to app/models/solr_document.rb
18
18
  8. Adds config/authorities/rights.yml to the application
19
19
  9. Adds config/authorities/resource_types.yml to the application
20
- 10. Runs simple_form:install --bootstrap
20
+ 10. Copies modified simple_form initializers
21
21
  '
22
22
 
23
23
  def run_required_generators
@@ -101,8 +101,11 @@ module CurationConcerns
101
101
  copy_file "config/authorities/resource_types.yml", "config/authorities/resource_types.yml"
102
102
  end
103
103
 
104
- def simple_form_bootstrap
105
- generate 'simple_form:install --bootstrap'
104
+ def simple_form_initializers
105
+ copy_file 'config/initializers/simple_form.rb',
106
+ 'config/initializers/simple_form.rb'
107
+ copy_file 'config/initializers/simple_form_bootstrap.rb',
108
+ 'config/initializers/simple_form_bootstrap.rb'
106
109
  end
107
110
  end
108
111
  end