<% content_name = f.object.class.content_name field_id = "#{content_name}_#{field.name}" value = nil if f.object.respond_to?(field.name.to_sym) value = f.object.send(field.name.to_sym) else value = field.attribute_values.find_by( user: f.object.user, entity_type: f.object.class.name, entity_id: f.object.id ) end %>
<% unless defined?(show_label) && !show_label %> <%= f.label field do %> <%= field.label.present? ? field.label : ' ' %> <% if defined?(autocomplete) && autocomplete %> offline_bolt <% end %> <% end %> <% end %> <% placeholder = I18n.translate "attributes.#{content_name}.#{field.name}", scope: :serendipitous_questions, name: f.object.send('name') || "this #{content_name}", default: 'Write as little or as much as you want!' %> <%= hidden_field_tag "#{content_name}[custom_attribute_values][][name]", field.name %> <%= text_area_tag "#{content_name}[custom_attribute_values][][value]", value && value.value, class: "js-can-mention-pages materialize-textarea #{defined?(autocomplete) && autocomplete ? ('autocomplete ' + 'js-autocomplete-' + field.id.to_s) : ''}", placeholder: placeholder %>
<% if defined?(autocomplete) && autocomplete %> <%= content_for :javascript do %> $(function() { // This setTimeout is an unfortunate hack to ensure this runs after initializing materialize setTimeout(function() { console.log("Initializing autocomplete for #<%= "#{content_name}_#{field.label}" %>"); $('.js-autocomplete-<%= field.id.to_s %>').autocomplete({ limit: 5, data: { <% autocomplete.each do |autocomplete_option| %> "<%= autocomplete_option %>": null, <% end %> } }); }, 1000); }); <% end %> <% end %>