From 1e7517d1f6b6de586b80759deb7cc3b823e6c766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 7 Jan 2021 20:38:44 +0100 Subject: [PATCH] Extract components to edit and add cards This way we'll be able to reuse it in the SDG Management section while reusing the `title` method to set the page title. --- .../widget/cards/edit_component.html.erb | 3 +++ .../admin/widget/cards/edit_component.rb | 19 +++++++++++++++++++ .../admin/widget/cards/new_component.html.erb | 3 +++ .../admin/widget/cards/new_component.rb | 19 +++++++++++++++++++ app/components/application_component.rb | 1 + app/components/sdg/goals/show_component.rb | 1 - .../local_targets/form_component.rb | 1 - app/views/admin/widget/cards/_form.html.erb | 14 +++++++------- app/views/admin/widget/cards/edit.html.erb | 12 +----------- app/views/admin/widget/cards/new.html.erb | 12 +----------- 10 files changed, 54 insertions(+), 31 deletions(-) create mode 100644 app/components/admin/widget/cards/edit_component.html.erb create mode 100644 app/components/admin/widget/cards/edit_component.rb create mode 100644 app/components/admin/widget/cards/new_component.html.erb create mode 100644 app/components/admin/widget/cards/new_component.rb diff --git a/app/components/admin/widget/cards/edit_component.html.erb b/app/components/admin/widget/cards/edit_component.html.erb new file mode 100644 index 000000000..745988b90 --- /dev/null +++ b/app/components/admin/widget/cards/edit_component.html.erb @@ -0,0 +1,3 @@ +<%= back_link_to index_path %> +<%= header %> +<%= render "admin/widget/cards/form", card: card %> diff --git a/app/components/admin/widget/cards/edit_component.rb b/app/components/admin/widget/cards/edit_component.rb new file mode 100644 index 000000000..8dd728ffe --- /dev/null +++ b/app/components/admin/widget/cards/edit_component.rb @@ -0,0 +1,19 @@ +class Admin::Widget::Cards::EditComponent < ApplicationComponent + include Header + attr_reader :card, :index_path + + def initialize(card, index_path:) + @card = card + @index_path = index_path + end + + private + + def title + if card.header? + t("admin.homepage.edit.header_title") + else + t("admin.homepage.edit.card_title") + end + end +end diff --git a/app/components/admin/widget/cards/new_component.html.erb b/app/components/admin/widget/cards/new_component.html.erb new file mode 100644 index 000000000..745988b90 --- /dev/null +++ b/app/components/admin/widget/cards/new_component.html.erb @@ -0,0 +1,3 @@ +<%= back_link_to index_path %> +<%= header %> +<%= render "admin/widget/cards/form", card: card %> diff --git a/app/components/admin/widget/cards/new_component.rb b/app/components/admin/widget/cards/new_component.rb new file mode 100644 index 000000000..810ade51a --- /dev/null +++ b/app/components/admin/widget/cards/new_component.rb @@ -0,0 +1,19 @@ +class Admin::Widget::Cards::NewComponent < ApplicationComponent + include Header + attr_reader :card, :index_path + + def initialize(card, index_path:) + @card = card + @index_path = index_path + end + + private + + def title + if card.header? + t("admin.homepage.new.header_title") + else + t("admin.homepage.new.card_title") + end + end +end diff --git a/app/components/application_component.rb b/app/components/application_component.rb index 3c5f3e47a..25c553243 100644 --- a/app/components/application_component.rb +++ b/app/components/application_component.rb @@ -1,3 +1,4 @@ class ApplicationComponent < ViewComponent::Base include SettingsHelper + delegate :back_link_to, to: :helpers end diff --git a/app/components/sdg/goals/show_component.rb b/app/components/sdg/goals/show_component.rb index 410c0e76c..1ba874a59 100644 --- a/app/components/sdg/goals/show_component.rb +++ b/app/components/sdg/goals/show_component.rb @@ -1,6 +1,5 @@ class SDG::Goals::ShowComponent < ApplicationComponent attr_reader :goal - delegate :back_link_to, to: :helpers def initialize(goal) @goal = goal diff --git a/app/components/sdg_management/local_targets/form_component.rb b/app/components/sdg_management/local_targets/form_component.rb index 6deadbb6e..23b6aff46 100644 --- a/app/components/sdg_management/local_targets/form_component.rb +++ b/app/components/sdg_management/local_targets/form_component.rb @@ -1,5 +1,4 @@ class SDGManagement::LocalTargets::FormComponent < ApplicationComponent - delegate :back_link_to, to: :helpers include Header include TranslatableFormHelper include GlobalizeHelper diff --git a/app/views/admin/widget/cards/_form.html.erb b/app/views/admin/widget/cards/_form.html.erb index 9b0ef8c34..a2bf520a5 100644 --- a/app/views/admin/widget/cards/_form.html.erb +++ b/app/views/admin/widget/cards/_form.html.erb @@ -1,7 +1,7 @@ -<%= render "shared/globalize_locales", resource: @card %> +<%= render "shared/globalize_locales", resource: card %> -<%= translatable_form_for [:admin, @page, @card] do |f| %> - <%= render "shared/errors", resource: @card %> +<%= translatable_form_for [namespace, card.cardable, card] do |f| %> + <%= render "shared/errors", resource: card %>
<%= f.translatable_fields do |translations_form| %> @@ -30,7 +30,7 @@
- <% unless @card.header? %> + <% unless card.header? %>
<%= f.label :columns %>

<%= t("admin.site_customization.pages.cards.columns_help") %>

@@ -41,16 +41,16 @@ <% end %>
- <%= f.hidden_field :header, value: @card.header? %> + <%= f.hidden_field :header, value: card.header? %>
- <%= render "images/nested_image", imageable: @card, f: f %> + <%= render "images/nested_image", imageable: card, f: f %>
<%= f.submit( - t("admin.homepage.#{admin_submit_action(@card)}.#{@card.header? ? "submit_header" : "submit_card"}"), + t("admin.homepage.#{admin_submit_action(card)}.#{card.header? ? "submit_header" : "submit_card"}"), class: "button success" ) %>
diff --git a/app/views/admin/widget/cards/edit.html.erb b/app/views/admin/widget/cards/edit.html.erb index f4f751fd1..c95b6fb7d 100644 --- a/app/views/admin/widget/cards/edit.html.erb +++ b/app/views/admin/widget/cards/edit.html.erb @@ -1,11 +1 @@ -<%= back_link_to index_path %> - -

- <% if @card.header? %> - <%= t("admin.homepage.edit.header_title") %> - <% else %> - <%= t("admin.homepage.edit.card_title") %> - <% end %> -

- -<%= render "admin/widget/cards/form" %> +<%= render Admin::Widget::Cards::EditComponent.new(@card, index_path: index_path) %> diff --git a/app/views/admin/widget/cards/new.html.erb b/app/views/admin/widget/cards/new.html.erb index f15f0172e..d25857cef 100644 --- a/app/views/admin/widget/cards/new.html.erb +++ b/app/views/admin/widget/cards/new.html.erb @@ -1,11 +1 @@ -<%= back_link_to index_path %> - -

- <% if @card.header? %> - <%= t("admin.homepage.new.header_title") %> - <% else %> - <%= t("admin.homepage.new.card_title") %> - <% end %> -

- -<%= render "admin/widget/cards/form" %> +<%= render Admin::Widget::Cards::NewComponent.new(@card, index_path: index_path) %>