Move question form view to component

This commit is contained in:
Javi Martín
2022-09-15 15:24:21 +02:00
parent ecd22131f1
commit d561a295e7
3 changed files with 52 additions and 40 deletions

View File

@@ -0,0 +1,40 @@
<%= render "shared/globalize_locales", resource: question %>
<%= translatable_form_for(question, url: url) do |f| %>
<%= render "shared/errors", resource: question %>
<%= f.hidden_field :proposal_id %>
<div class="row">
<div class="small-12">
<% if poll.present? %>
<%= f.hidden_field :poll_id, value: poll.id %>
<% elsif question.poll.present? %>
<%= f.hidden_field :poll_id, value: question.poll.id %>
<% else %>
<div class="small-12 medium-6 large-4 column">
<% select_options = Poll.all.map { |p| [p.name, p.id] } %>
<%= f.select :poll_id,
options_for_select(select_options),
prompt: t("admin.questions.index.select_poll") %>
</div>
<% end %>
</div>
</div>
<div class="row">
<%= f.translatable_fields do |translations_form| %>
<div class="column">
<%= translations_form.text_field :title %>
</div>
<% end %>
</div>
<div class="row">
<div class="small-12 medium-4 large-2 margin-top column">
<%= f.submit(class: "button success expanded", value: t("shared.save")) %>
</div>
</div>
<% end %>

View File

@@ -0,0 +1,11 @@
class Admin::Poll::Questions::FormComponent < ApplicationComponent
include TranslatableFormHelper
include GlobalizeHelper
attr_reader :poll, :question, :url
def initialize(poll, question, url:)
@poll = poll
@question = question
@url = url
end
end

View File

@@ -1,40 +1 @@
<%= render "shared/globalize_locales", resource: @question %> <%= render Admin::Poll::Questions::FormComponent.new(@poll, @question, url: form_url) %>
<%= translatable_form_for(@question, url: form_url) do |f| %>
<%= render "shared/errors", resource: @question %>
<%= f.hidden_field :proposal_id %>
<div class="row">
<div class="small-12">
<% if @poll.present? %>
<%= f.hidden_field :poll_id, value: @poll.id %>
<% elsif @question.poll.present? %>
<%= f.hidden_field :poll_id, value: @question.poll.id %>
<% else %>
<div class="small-12 medium-6 large-4 column">
<% select_options = Poll.all.map { |p| [p.name, p.id] } %>
<%= f.select :poll_id,
options_for_select(select_options),
prompt: t("admin.questions.index.select_poll") %>
</div>
<% end %>
</div>
</div>
<div class="row">
<%= f.translatable_fields do |translations_form| %>
<div class="column">
<%= translations_form.text_field :title %>
</div>
<% end %>
</div>
<div class="row">
<div class="small-12 medium-4 large-2 margin-top column">
<%= f.submit(class: "button success expanded", value: t("shared.save")) %>
</div>
</div>
<% end %>