Move question form view to component
This commit is contained in:
40
app/components/admin/poll/questions/form_component.html.erb
Normal file
40
app/components/admin/poll/questions/form_component.html.erb
Normal 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 %>
|
||||||
11
app/components/admin/poll/questions/form_component.rb
Normal file
11
app/components/admin/poll/questions/form_component.rb
Normal 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
|
||||||
@@ -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 %>
|
|
||||||
|
|||||||
Reference in New Issue
Block a user