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
|