Extract settings table partial to a component
This commit is contained in:
committed by
Javi Martín
parent
8a3bd04a9a
commit
57c257e91c
18
app/components/admin/settings/table_component.rb
Normal file
18
app/components/admin/settings/table_component.rb
Normal file
@@ -0,0 +1,18 @@
|
||||
class Admin::Settings::TableComponent < ApplicationComponent
|
||||
attr_reader :settings, :setting_name, :tab
|
||||
delegate :dom_id, to: :helpers
|
||||
|
||||
def initialize(settings:, setting_name:, tab: nil)
|
||||
@settings = settings
|
||||
@setting_name = setting_name
|
||||
@tab = tab
|
||||
end
|
||||
|
||||
def display_setting_name(setting_name)
|
||||
if setting_name == "setting"
|
||||
t("admin.settings.setting_name")
|
||||
else
|
||||
t("admin.settings.#{setting_name}")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -15,12 +15,4 @@ module SettingsHelper
|
||||
def setting
|
||||
@all_settings ||= Setting.all.to_h { |s| [s.key, s.value.presence] }
|
||||
end
|
||||
|
||||
def display_setting_name(setting_name)
|
||||
if setting_name == "setting"
|
||||
t("admin.settings.setting_name")
|
||||
else
|
||||
t("admin.settings.#{setting_name}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<h2><%= t("admin.settings.index.general") %></h2>
|
||||
|
||||
<%= render "settings_table", settings: @configuration_settings, setting_name: "setting", tab: "#tab-configuration" %>
|
||||
<%= render Admin::Settings::TableComponent.new(settings: @configuration_settings, setting_name: "setting", tab: "#tab-configuration") %>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<h2><%= t("admin.settings.index.images_and_documents") %></h2>
|
||||
|
||||
<%= render "settings_table", settings: @uploads_settings, setting_name: "setting" %>
|
||||
<%= render Admin::Settings::TableComponent.new(settings: @uploads_settings, setting_name: "setting") %>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<% if feature?(:map) %>
|
||||
<h2><%= t("admin.settings.index.map.title") %></h2>
|
||||
|
||||
<%= render "settings_table", settings: @map_configuration_settings, setting_name: "setting", tab: "#tab-map-configuration" %>
|
||||
<%= render Admin::Settings::TableComponent.new(settings: @map_configuration_settings, setting_name: "setting", tab: "#tab-map-configuration") %>
|
||||
|
||||
<p><%= t("admin.settings.index.map.help") %></p>
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<h2><%= t("admin.settings.index.dashboard.title") %></h2>
|
||||
|
||||
<%= render "settings_table", settings: @proposals_settings, setting_name: "setting", tab: "#tab-proposals" %>
|
||||
<%= render Admin::Settings::TableComponent.new(settings: @proposals_settings, setting_name: "setting", tab: "#tab-proposals") %>
|
||||
|
||||
@@ -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", 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" %>
|
||||
<%= render Admin::Settings::TableComponent.new(settings: @remote_census_general_settings, setting_name: "remote_census_general_name", tab: "#tab-remote-census-configuration") %>
|
||||
<%= render Admin::Settings::TableComponent.new(settings: @remote_census_request_settings, setting_name: "remote_census_request_name", tab: "#tab-remote-census-configuration") %>
|
||||
<%= render Admin::Settings::TableComponent.new(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") %>
|
||||
|
||||
28
spec/components/admin/settings/table_component_spec.rb
Normal file
28
spec/components/admin/settings/table_component_spec.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Admin::Settings::TableComponent do
|
||||
describe "#display_setting_name" do
|
||||
it "returns correct table header" do
|
||||
settings = Setting.limit(2)
|
||||
|
||||
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "setting"
|
||||
|
||||
expect(page).to have_content("Setting")
|
||||
|
||||
setting_name = "remote_census_general_name"
|
||||
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: setting_name
|
||||
|
||||
expect(page).to have_content("General Information")
|
||||
|
||||
setting_name = "remote_census_request_name"
|
||||
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: setting_name
|
||||
|
||||
expect(page).to have_content("Request Data")
|
||||
|
||||
setting_name = "remote_census_response_name"
|
||||
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: setting_name
|
||||
|
||||
expect(page).to have_content("Response Data")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -24,13 +24,4 @@ RSpec.describe SettingsHelper do
|
||||
expect(feature?("f4")).to be nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "#display_setting_name" do
|
||||
it "returns correct setting_name" do
|
||||
expect(display_setting_name("setting")).to eq("Setting")
|
||||
expect(display_setting_name("remote_census_general_name")).to eq("General Information")
|
||||
expect(display_setting_name("remote_census_request_name")).to eq("Request Data")
|
||||
expect(display_setting_name("remote_census_response_name")).to eq("Response Data")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user