app/views/formstrap/repeater/_row.html.erb in formstrap-0.2.1 vs app/views/formstrap/repeater/_row.html.erb in formstrap-0.3.0

- old
+ new

@@ -1,20 +1,28 @@ <% # admin/fields/repeater/row # accepts block: yes # parameters: # form: Form object + # repeater_id: ID of the repeater + # index: Index of the row in the repeater # pass_thru: (string) Pass thru for add button if needed + # preview_url: (string) URL for previews + repeater_id = local_assigns[:repeater_id] + pass_thru = local_assigns[:pass_thru] draggable = form.object.respond_to?(:position) destroyable = form.object.respond_to?(:destroy) - error_class = form.object.errors.present? ? "border border-danger" : "" - class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : "formstrap-repeater-row list-group-item" + error_class = form.object&.errors&.present? ? "border border-danger" : "" + preview_url = local_assigns.has_key?(:preview_url) ? local_assigns[:preview_url] : nil + preview = preview_url.present? + preview_url = "#{preview_url}?id=#{form.object.id}&name=#{local_assigns[:template_name] || form.object.name}&pp=disabled" + class_names = local_assigns.has_key?(:class) ? local_assigns[:class] : "formstrap-repeater-row list-group-item #{'p-0' if preview}" %> <div class="<%= class_names %> <%= error_class %>" data-repeater-target="row" - data-row-index="<%= form.options[:child_index] %>" + data-row-index="<%= index %>" data-new-record="<%= form.object.new_record? %>" > <%= form.hidden_field :id %> <%= form.hidden_field :_destroy if destroyable %> @@ -47,7 +55,15 @@ data-action="click->repeater#removeRow" > <%= bootstrap_icon("dash-circle") %> </div> - <%= yield %> + <% if preview %> + <!-- Wrap row in preview layout --> + <%= render layout: "formstrap/shared/nested_preview", locals: { form: form, url: preview_url } do %> + <%= yield %> + <% end %> + <% else %> + <!-- Just render row content --> + <%= yield %> + <% end %> </div>