%
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 %>