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
|
def setting
|
||||||
@all_settings ||= Setting.all.to_h { |s| [s.key, s.value.presence] }
|
@all_settings ||= Setting.all.to_h { |s| [s.key, s.value.presence] }
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<h2><%= t("admin.settings.index.general") %></h2>
|
<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>
|
<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) %>
|
<% if feature?(:map) %>
|
||||||
<h2><%= t("admin.settings.index.map.title") %></h2>
|
<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>
|
<p><%= t("admin.settings.index.map.help") %></p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<h2><%= t("admin.settings.index.dashboard.title") %></h2>
|
<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) %>
|
<% if feature?(:remote_census) %>
|
||||||
<h2><%= t("admin.settings.index.remote_census.title") %></h2>
|
<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 Admin::Settings::TableComponent.new(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 Admin::Settings::TableComponent.new(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_response_settings, setting_name: "remote_census_response_name", tab: "#tab-remote-census-configuration") %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="callout primary">
|
<div class="callout primary">
|
||||||
<%= t("admin.settings.index.remote_census.how_to_enable") %>
|
<%= 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
|
expect(feature?("f4")).to be nil
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user