From ba4b1a91e10ca2482175e55f6aa59e727cd956d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 25 Feb 2021 17:19:51 +0100 Subject: [PATCH] Allow using a different URL on widget card forms --- app/components/admin/widget/cards/edit_component.html.erb | 2 +- app/components/admin/widget/cards/edit_component.rb | 5 +++-- app/components/admin/widget/cards/new_component.html.erb | 2 +- app/components/admin/widget/cards/new_component.rb | 5 +++-- app/controllers/concerns/admin/widget/cards_actions.rb | 8 ++++++++ app/views/admin/widget/cards/_form.html.erb | 2 +- app/views/admin/widget/cards/edit.html.erb | 2 +- app/views/admin/widget/cards/new.html.erb | 2 +- 8 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/components/admin/widget/cards/edit_component.html.erb b/app/components/admin/widget/cards/edit_component.html.erb index 745988b90..62fa5d2dd 100644 --- a/app/components/admin/widget/cards/edit_component.html.erb +++ b/app/components/admin/widget/cards/edit_component.html.erb @@ -1,3 +1,3 @@ <%= back_link_to index_path %> <%= header %> -<%= render "admin/widget/cards/form", card: card %> +<%= render "admin/widget/cards/form", card: card, url: form_path %> diff --git a/app/components/admin/widget/cards/edit_component.rb b/app/components/admin/widget/cards/edit_component.rb index 8dd728ffe..5a5734f0a 100644 --- a/app/components/admin/widget/cards/edit_component.rb +++ b/app/components/admin/widget/cards/edit_component.rb @@ -1,10 +1,11 @@ class Admin::Widget::Cards::EditComponent < ApplicationComponent include Header - attr_reader :card, :index_path + attr_reader :card, :index_path, :form_path - def initialize(card, index_path:) + def initialize(card, index_path:, form_path: nil) @card = card @index_path = index_path + @form_path = form_path end private diff --git a/app/components/admin/widget/cards/new_component.html.erb b/app/components/admin/widget/cards/new_component.html.erb index 745988b90..62fa5d2dd 100644 --- a/app/components/admin/widget/cards/new_component.html.erb +++ b/app/components/admin/widget/cards/new_component.html.erb @@ -1,3 +1,3 @@ <%= back_link_to index_path %> <%= header %> -<%= render "admin/widget/cards/form", card: card %> +<%= render "admin/widget/cards/form", card: card, url: form_path %> diff --git a/app/components/admin/widget/cards/new_component.rb b/app/components/admin/widget/cards/new_component.rb index 810ade51a..5e195f9d4 100644 --- a/app/components/admin/widget/cards/new_component.rb +++ b/app/components/admin/widget/cards/new_component.rb @@ -1,10 +1,11 @@ class Admin::Widget::Cards::NewComponent < ApplicationComponent include Header - attr_reader :card, :index_path + attr_reader :card, :index_path, :form_path - def initialize(card, index_path:) + def initialize(card, index_path:, form_path: nil) @card = card @index_path = index_path + @form_path = form_path end private diff --git a/app/controllers/concerns/admin/widget/cards_actions.rb b/app/controllers/concerns/admin/widget/cards_actions.rb index b089ca1a0..bcd39cf7e 100644 --- a/app/controllers/concerns/admin/widget/cards_actions.rb +++ b/app/controllers/concerns/admin/widget/cards_actions.rb @@ -3,6 +3,10 @@ module Admin::Widget::CardsActions include Translatable include ImageAttributes + included do + helper_method :form_path + end + def new @card.header = header_card? render template: "#{cards_view_path}/new" @@ -56,4 +60,8 @@ module Admin::Widget::CardsActions def cards_view_path "admin/widget/cards" end + + def form_path + nil + end end diff --git a/app/views/admin/widget/cards/_form.html.erb b/app/views/admin/widget/cards/_form.html.erb index a2bf520a5..1faf4c3ee 100644 --- a/app/views/admin/widget/cards/_form.html.erb +++ b/app/views/admin/widget/cards/_form.html.erb @@ -1,6 +1,6 @@ <%= render "shared/globalize_locales", resource: card %> -<%= translatable_form_for [namespace, card.cardable, card] do |f| %> +<%= translatable_form_for [namespace, card.cardable, card], url: local_assigns[:url] do |f| %> <%= render "shared/errors", resource: card %>
diff --git a/app/views/admin/widget/cards/edit.html.erb b/app/views/admin/widget/cards/edit.html.erb index c95b6fb7d..e26773ee2 100644 --- a/app/views/admin/widget/cards/edit.html.erb +++ b/app/views/admin/widget/cards/edit.html.erb @@ -1 +1 @@ -<%= render Admin::Widget::Cards::EditComponent.new(@card, index_path: index_path) %> +<%= render Admin::Widget::Cards::EditComponent.new(@card, index_path: index_path, form_path: form_path) %> diff --git a/app/views/admin/widget/cards/new.html.erb b/app/views/admin/widget/cards/new.html.erb index d25857cef..7e1b8b5d2 100644 --- a/app/views/admin/widget/cards/new.html.erb +++ b/app/views/admin/widget/cards/new.html.erb @@ -1 +1 @@ -<%= render Admin::Widget::Cards::NewComponent.new(@card, index_path: index_path) %> +<%= render Admin::Widget::Cards::NewComponent.new(@card, index_path: index_path, form_path: form_path) %>