Sha256: e960fe3a73c1ac6fd3a53153f1f62e96fdb46d78f3ae7164cdc4671bc87920f3

Contents?: true

Size: 1.6 KB

Versions: 67

Compression:

Stored size: 1.6 KB

Contents

module ExpressAdmin
  module ModuleSettingsHelper
    def edit_setting(param)
      setting = setting_for(param)
      domkey = param.gsub(/\W/, '_')

      name = "settings[#{param}]"
      title = param.titlecase
      value = params[param.to_sym].nil? ? setting.value : params[param.to_sym]
      html = ""

      if setting.boolean?
        html << content_tag(:div, class: 'form-group') do
          hidden_field_tag(name, '0') +
          check_box_tag(name, true, value, class: 'setting', id: domkey) +
          content_tag(:label, title, class: 'checkbox', for: domkey)
        end

      elsif setting.selector?
        html << content_tag(:div, class: 'form-group') do
          content_tag(:label, title, for: domkey) +
          select_tag(name, options_for_select(setting.definition.selection, value), class: 'setting', id: domkey)
        end

      else
        html << content_tag(:div, class: 'form-group') do
          content_tag(:label, title, for: domkey) +
          text_field_tag(name, value, class: 'textbox', id: domkey)
        end

      end

      if setting.errors.messages[:value]
        html << content_tag(:span, [setting.errors.messages[:value]].flatten.first, class: 'error')
        html = content_tag(:span, html, class: "error-with-field")
      end

      html.html_safe

    end

    def setting_for(setting)
      @editable_setting ||= {}
      @editable_setting[setting] ||= ExpressAdmin.module_name.constantize.settings.find_or_create_by(setting: setting)
    end

    def definition_for(setting)
      if setting = setting_for(setting)
        setting.definition
      end
    end
  end
end

Version data entries

67 entries across 67 versions & 1 rubygems

Version Path
express_admin-2.0.0.b app/helpers/express_admin/module_settings_helper.rb
express_admin-2.0.0.a app/helpers/express_admin/module_settings_helper.rb
express_admin-1.8.1 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.8.0 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.32 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.31 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.30 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.29 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.28 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.27 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.26 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.25 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.24 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.23 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.22 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.21 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.20 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.19 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.18 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.17 app/helpers/express_admin/module_settings_helper.rb