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-1.7.16 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.16.pre1 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.15 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.14 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.13 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.12 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.11 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.10 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.9 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.8 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.7 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.5 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.4 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.3 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.2 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.7.1 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.6.13 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.6.12 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.6.11 app/helpers/express_admin/module_settings_helper.rb
express_admin-1.6.10 app/helpers/express_admin/module_settings_helper.rb