From cb91a7421db64b9d7e9c169f6b0e23788d3aaa4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sen=C3=A9n=20Rodero=20Rodr=C3=ADguez?= <15726+Senen@users.noreply.github.com> Date: Mon, 27 Nov 2023 11:54:15 +0100 Subject: [PATCH] Fix upload settings redirection --- .../settings/content_types_form_component.html.erb | 1 + .../admin/settings/content_types_form_component.rb | 5 +++-- .../admin/settings/table_component.html.erb | 2 +- app/controllers/admin/settings_controller.rb | 2 +- .../settings/_images_and_documents_tab.html.erb | 2 +- spec/system/admin/settings_spec.rb | 12 ++++++++++++ 6 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/components/admin/settings/content_types_form_component.html.erb b/app/components/admin/settings/content_types_form_component.html.erb index 458f9d8e8..c838a1658 100644 --- a/app/components/admin/settings/content_types_form_component.html.erb +++ b/app/components/admin/settings/content_types_form_component.html.erb @@ -1,5 +1,6 @@ <%= form_tag admin_update_content_types_path, method: :put, id: "edit_#{dom_id(setting)}" do %> <%= hidden_field_tag "id", setting.id, id: dom_id(setting, :id) %> + <%= hidden_field_tag :tab, tab if tab %>
<% group = setting.content_type_group %> diff --git a/app/components/admin/settings/content_types_form_component.rb b/app/components/admin/settings/content_types_form_component.rb index e38302856..264d679b0 100644 --- a/app/components/admin/settings/content_types_form_component.rb +++ b/app/components/admin/settings/content_types_form_component.rb @@ -1,8 +1,9 @@ class Admin::Settings::ContentTypesFormComponent < ApplicationComponent - attr_reader :setting + attr_reader :setting, :tab delegate :dom_id, to: :helpers - def initialize(setting) + def initialize(setting, tab: nil) @setting = setting + @tab = tab end end diff --git a/app/components/admin/settings/table_component.html.erb b/app/components/admin/settings/table_component.html.erb index b3b088d43..40ead146c 100644 --- a/app/components/admin/settings/table_component.html.erb +++ b/app/components/admin/settings/table_component.html.erb @@ -17,7 +17,7 @@ <% if setting.content_type? %> - <%= render Admin::Settings::ContentTypesFormComponent.new(setting) %> + <%= render Admin::Settings::ContentTypesFormComponent.new(setting, tab: tab) %> <% elsif setting.feature? %> <%= render Admin::Settings::FeaturedSettingsFormComponent.new(setting, tab: tab) %> <% else %> diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index d9a2d6690..13496e212 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -37,7 +37,7 @@ class Admin::SettingsController < Admin::BaseController Setting.mime_types[group][content_type] end setting.update! value: mime_type_values.join(" ") - redirect_to admin_settings_path, notice: t("admin.settings.flash.updated") + redirect_to request_referer, notice: t("admin.settings.flash.updated") end private diff --git a/app/views/admin/settings/_images_and_documents_tab.html.erb b/app/views/admin/settings/_images_and_documents_tab.html.erb index adbf4159a..0b059aa6a 100644 --- a/app/views/admin/settings/_images_and_documents_tab.html.erb +++ b/app/views/admin/settings/_images_and_documents_tab.html.erb @@ -1,3 +1,3 @@

<%= t("admin.settings.index.images_and_documents") %>

-<%= render Admin::Settings::TableComponent.new(settings: @uploads_settings, setting_name: "setting") %> +<%= render Admin::Settings::TableComponent.new(settings: @uploads_settings, setting_name: "setting", tab: "#tab-images-and-documents") %> diff --git a/spec/system/admin/settings_spec.rb b/spec/system/admin/settings_spec.rb index 8639a1820..035752740 100644 --- a/spec/system/admin/settings_spec.rb +++ b/spec/system/admin/settings_spec.rb @@ -277,6 +277,18 @@ describe "Admin settings", :admin do expect(page).to have_current_path(admin_settings_path) expect(page).to have_css("h2", exact_text: "SDG configuration") end + + scenario "On #tab-images-and-documents" do + Setting["feature.sdg"] = true + visit admin_settings_path(anchor: "tab-images-and-documents") + within("tr", text: "Maximum number of documents") do + fill_in "Maximum number of documents", with: 5 + click_button "Update" + end + + expect(page).to have_current_path(admin_settings_path) + expect(page).to have_field("Maximum number of documents", with: 5) + end end describe "Skip verification" do