aboutsummaryrefslogtreecommitdiffstats
path: root/app/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/exports_helper.rb37
1 files changed, 31 insertions, 6 deletions
diff --git a/app/helpers/exports_helper.rb b/app/helpers/exports_helper.rb
index 4de539b73..cc6fc3046 100644
--- a/app/helpers/exports_helper.rb
+++ b/app/helpers/exports_helper.rb
@@ -4,12 +4,37 @@ module ExportsHelper
import_status status
end
- def export_option_input form, export, attr, option_def, type
- opts = { required: option_def[:required], input_html: {value: export.try(attr) || option_def[:default_value]}, as: option_def[:type], selected: export.try(attr) || option_def[:default_value]}
- opts[:collection] = option_def[:collection] if option_def.has_key?(:collection)
- opts[:collection] = export.instance_exec(&option_def[:collection]) if option_def[:collection].is_a?(Proc)
- opts[:label] = t "activerecord.attributes.export.#{type.name.demodulize.underscore}.#{attr}"
- form.input attr, opts
+ def export_option_input form, export, attr, option_def, type, referentials
+ if !!option_def[:depends_on_referential]
+ out = ""
+ referentials.each do |referential|
+ out += content_tag :div, class: "slave", data: {master: "[name='export[referential_id]']", value: referential.id} do
+ _opts = {depends_on_referential: false, collection: option_def[:collection].call(referential)}.reverse_update(option_def)
+ export_option_input form, export, attr, _opts, type, referentials
+ end
+ end
+ out.html_safe
+ else
+ opts = { required: option_def[:required], input_html: {value: export.try(attr) || option_def[:default_value]}, as: option_def[:type], selected: export.try(attr) || option_def[:default_value]}
+
+ if option_def.has_key?(:collection)
+ if option_def[:collection].is_a?(Array) && !option_def[:collection].first.is_a?(Array)
+ opts[:collection] = option_def[:collection].map{|k| [export.class.tmf("#{type.name.demodulize.underscore}.#{attr}_collection.#{k}"), k]}
+ else
+ opts[:collection] = option_def[:collection]
+ end
+ opts[:collection] = export.instance_exec(&option_def[:collection]) if option_def[:collection].is_a?(Proc)
+ end
+ opts[:label] = export.class.tmf("#{type.name.demodulize.underscore}.#{attr}")
+ opts[:input_html]['data-select2ed'] = true if opts[:collection]
+ out = form.input attr, opts
+ if option_def[:depends]
+ out = content_tag :div, class: "slave", data: {master: "[name='export[#{option_def[:depends][:option]}]']", value: option_def[:depends][:value]} do
+ out
+ end.html_safe
+ end
+ out
+ end
end
def export_message_content message