diff --git a/app/assets/images/pictograms/plus-circle-outline.svg b/app/assets/images/pictograms/plus-circle-outline.svg new file mode 100644 index 0000000..a4dcfdd --- /dev/null +++ b/app/assets/images/pictograms/plus-circle-outline.svg @@ -0,0 +1 @@ + diff --git a/app/assets/images/pictograms/update.svg b/app/assets/images/pictograms/update.svg new file mode 100644 index 0000000..9740fdb --- /dev/null +++ b/app/assets/images/pictograms/update.svg @@ -0,0 +1 @@ + diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c9f12ab..acc4022 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -55,11 +55,26 @@ module ApplicationHelper form_for(record, **options) { |f| f.form_for(&block) } end + class TabularFormBuilder < ActionView::Helpers::FormBuilder + private + + def submit_default_value + svg_name = object ? (object.persisted? ? 'update' : 'plus-circle-outline') : '' + @template.svg_tag("pictograms/#{svg_name}") + super + end + end + def tabular_fields_for(record_name, record_object = nil, options = {}, &block) + options.merge! builder: TabularFormBuilder render_errors(record_name) fields_for(record_name, record_object, **options, &block) end + def tabular_form_with(**options, &block) + options.merge! builder: TabularFormBuilder + form_with(**options, &block) + end + def svg_tag(source, options = {}) content_tag :svg, options do tag.use href: image_path(source + ".svg") + "#icon" diff --git a/app/views/units/_form.html.erb b/app/views/units/_form.html.erb index e2013a8..59cbff1 100644 --- a/app/views/units/_form.html.erb +++ b/app/views/units/_form.html.erb @@ -20,7 +20,7 @@