Allow redirect to remote census configuration tab
Currently after each update of any Settings is redirected to the first tab by default. As this new tab remote_census_configuation has a lot of fields to fill in it is a bit uncomfortable to have to go back to the tab after each update. - Add hidden field :tag to set current tag value - After update add tag value to request.referer - To avoid errors when partial call has not param :tag, add the "define?" method on hidden_field value.
This commit is contained in:
@@ -23,7 +23,7 @@ class Admin::SettingsController < Admin::BaseController
|
||||
def update
|
||||
@setting = Setting.find(params[:id])
|
||||
@setting.update(settings_params)
|
||||
redirect_to request.referer, notice: t("admin.settings.flash.updated")
|
||||
redirect_to request_referer, notice: t("admin.settings.flash.updated")
|
||||
end
|
||||
|
||||
def update_map
|
||||
@@ -53,4 +53,8 @@ class Admin::SettingsController < Admin::BaseController
|
||||
params.permit(:jpg, :png, :gif, :pdf, :doc, :docx, :xls, :xlsx, :csv, :zip)
|
||||
end
|
||||
|
||||
def request_referer
|
||||
return request.referer + params[:setting][:tab] if params[:setting][:tab]
|
||||
request.referer
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<% if feature?(:remote_census) %>
|
||||
<h2><%= t("admin.settings.index.remote_census.title") %></h2>
|
||||
|
||||
<%= render "settings_table", settings: @remote_census_general_settings, setting_name: "remote_census_general_name" %>
|
||||
<%= render "settings_table", settings: @remote_census_request_settings, setting_name: "remote_census_request_name" %>
|
||||
<%= render "settings_table", settings: @remote_census_response_settings, setting_name: "remote_census_response_name" %>
|
||||
<%= render "settings_table", settings: @remote_census_general_settings, setting_name: "remote_census_general_name", tab: "#tab-remote-census-configuration" %>
|
||||
<%= render "settings_table", settings: @remote_census_request_settings, setting_name: "remote_census_request_name", tab: "#tab-remote-census-configuration" %>
|
||||
<%= render "settings_table", settings: @remote_census_response_settings, setting_name: "remote_census_response_name", tab: "#tab-remote-census-configuration" %>
|
||||
<% else %>
|
||||
<div class="callout primary">
|
||||
<%= t("admin.settings.index.remote_census.how_to_enable") %>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<%= form_for(setting, url: admin_setting_path(setting), html: { id: "edit_#{dom_id(setting)}"}) do |f| %>
|
||||
<%= f.hidden_field :tab, value: tab if defined?(tab) %>
|
||||
<div class="small-12 medium-6 large-8 column">
|
||||
<%= f.text_area :value, label: false, id: dom_id(setting), lines: 1 %>
|
||||
</div>
|
||||
|
||||
@@ -18,9 +18,13 @@
|
||||
<td class="small-6">
|
||||
<% if setting.content_type? %>
|
||||
<%= render "admin/settings/content_types_settings_form", setting: setting %>
|
||||
<% else %>
|
||||
<% if defined?(tab) %>
|
||||
<%= render "admin/settings/settings_form", setting: setting, tab: tab %>
|
||||
<% else %>
|
||||
<%= render "admin/settings/settings_form", setting: setting %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
|
||||
@@ -162,6 +162,39 @@ describe "Admin settings" do
|
||||
Setting["feature.remote_census"] = nil
|
||||
end
|
||||
|
||||
scenario "Should redirect to #tab-remote-census-configuration after update any remote census setting", :js do
|
||||
setting_remote_census = create(:setting, key: "remote_census.general.any_remote_census_general_setting")
|
||||
Setting["feature.remote_census"] = true
|
||||
admin = create(:administrator).user
|
||||
login_as(admin)
|
||||
visit admin_settings_path
|
||||
find("#remote-census-tab").click
|
||||
|
||||
within("#edit_setting_#{setting_remote_census.id}") do
|
||||
fill_in "setting_#{setting_remote_census.id}", with: "New value"
|
||||
click_button "Update"
|
||||
end
|
||||
|
||||
expect(page).to have_current_path(admin_settings_path)
|
||||
expect(page).to have_css("div#tab-remote-census-configuration.is-active")
|
||||
Setting["feature.remote_census"] = nil
|
||||
end
|
||||
|
||||
scenario "Should not redirect to #tab-remote-census-configuration after do not update any remote census setting", :js do
|
||||
admin = create(:administrator).user
|
||||
login_as(admin)
|
||||
visit admin_settings_path
|
||||
|
||||
within("#edit_setting_#{@setting1.id}") do
|
||||
fill_in "setting_#{@setting1.id}", with: "New value"
|
||||
click_button "Update"
|
||||
end
|
||||
|
||||
expect(page).to have_current_path(admin_settings_path)
|
||||
expect(page).to have_css("div#tab-configuration.is-active")
|
||||
expect(page).not_to have_css("div#tab-remote-census-configuration.is-active")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "Skip verification" do
|
||||
|
||||
Reference in New Issue
Block a user