Sha256: ca482933c8846b500ae7f9c79425e1d8aad580b35111e31f1aa30c1a45f0d9f1
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
module RailsSettingsUi::SettingsHelper def setting_field(setting_name, setting_value, all_settings) if RailsSettingsUi.settings_displayed_as_select_tag.include?(setting_name.to_sym) select_tag_field(setting_name, setting_value) elsif setting_value.is_a?(Array) checkboxes_group_field(setting_name, all_settings) elsif [TrueClass, FalseClass].include?(setting_value.class) checkbox_field(setting_name, setting_value) else text_field(setting_name, setting_value) end end def select_tag_field(setting_name, setting_value) default_setting_values = I18n.t("settings.attributes.#{setting_name}.labels", default: {}).map do |label, value| [label, value] end select_tag("settings[#{setting_name.to_s}]", options_for_select(default_setting_values, setting_value)) end def checkboxes_group_field(setting_name, all_settings) field = "" Settings.defaults[setting_name.to_sym].each do |value| field << check_box_tag("settings[#{setting_name.to_s}][#{value.to_s}]", nil, all_settings[setting_name.to_s].include?(value), style: "margin: 0 10px;") field << label_tag("settings[#{setting_name.to_s}][#{value.to_s}]", I18n.t("settings.attributes.#{setting_name}.labels.#{value}", default: value.to_s), style: "display: inline-block;") end field.html_safe end def checkbox_field(setting_name, setting_value) check_box_tag("settings[#{setting_name.to_s}]", nil, setting_value).html_safe end def text_field(setting_name, setting_value) field = if setting_value.to_s.size > 30 text_area_tag("settings[#{setting_name}]", setting_value.to_s, rows: 10) else text_field_tag("settings[#{setting_name}]", setting_value.to_s) end help_block_content = I18n.t("settings.attributes.#{setting_name}.help_block", default: '') field + (help_block_content.presence && content_tag(:span, help_block_content, class: 'help-block')) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rails-settings-ui-0.1.1 | app/helpers/rails_settings_ui/settings_helper.rb |
rails-settings-ui-0.1.0 | app/helpers/rails_settings_ui/settings_helper.rb |