From d561a295e74063b035c1e40bf0b23b91ff0acd23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 15 Sep 2022 15:24:21 +0200 Subject: [PATCH] Move question form view to component --- .../poll/questions/form_component.html.erb | 40 ++++++++++++++++++ .../admin/poll/questions/form_component.rb | 11 +++++ app/views/admin/poll/questions/_form.html.erb | 41 +------------------ 3 files changed, 52 insertions(+), 40 deletions(-) create mode 100644 app/components/admin/poll/questions/form_component.html.erb create mode 100644 app/components/admin/poll/questions/form_component.rb diff --git a/app/components/admin/poll/questions/form_component.html.erb b/app/components/admin/poll/questions/form_component.html.erb new file mode 100644 index 000000000..09c9ba9ad --- /dev/null +++ b/app/components/admin/poll/questions/form_component.html.erb @@ -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 %> + +
+
+ <% 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 %> +
+ <% 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") %> +
+ <% end %> +
+
+ +
+ <%= f.translatable_fields do |translations_form| %> +
+ <%= translations_form.text_field :title %> +
+ <% end %> +
+ +
+
+ <%= f.submit(class: "button success expanded", value: t("shared.save")) %> +
+
+ +<% end %> diff --git a/app/components/admin/poll/questions/form_component.rb b/app/components/admin/poll/questions/form_component.rb new file mode 100644 index 000000000..25507c284 --- /dev/null +++ b/app/components/admin/poll/questions/form_component.rb @@ -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 diff --git a/app/views/admin/poll/questions/_form.html.erb b/app/views/admin/poll/questions/_form.html.erb index 5679830e4..fb792c3de 100644 --- a/app/views/admin/poll/questions/_form.html.erb +++ b/app/views/admin/poll/questions/_form.html.erb @@ -1,40 +1 @@ -<%= render "shared/globalize_locales", resource: @question %> - -<%= translatable_form_for(@question, url: form_url) do |f| %> - - <%= render "shared/errors", resource: @question %> - - <%= f.hidden_field :proposal_id %> - -
-
- <% 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 %> -
- <% 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") %> -
- <% end %> -
-
- -
- <%= f.translatable_fields do |translations_form| %> -
- <%= translations_form.text_field :title %> -
- <% end %> -
- -
-
- <%= f.submit(class: "button success expanded", value: t("shared.save")) %> -
-
- -<% end %> +<%= render Admin::Poll::Questions::FormComponent.new(@poll, @question, url: form_url) %>