No release in over 3 years
Low commit activity in last 3 years
UI interface for rails-settings-cached in active admin
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Activeadmin Settings Cached

Gem Version Build Status Coverage Status

Provides a nice UI interface for rails-settings-cached gem in Active Admin.

Installation

Add this line to your application's Gemfile:

gem 'activeadmin_settings_cached'

And then execute:

$ bundle

Create your settings model:

$ rails g settings:install
$ bundle exec rake db:migrate

Create your settings page:

# From generators                   
$ rails g active_admin:settings Setting  
             
# Or manual
# app/admin/setting.rb
ActiveAdmin.register_page 'Setting' do
  title = 'Settings'
  menu label: title

  active_admin_settings_page(
    title: title
  )
end

And configure your default values in your Settings model:

class Settings < RailsSettings::CachedSettings
  defaults[:my_awesome_settings] = 'This is my settings'
end

In your application's admin interface, there will now be a new page with this setting

active_admin_settings_page DSL

Basic usage

ActiveAdmin.register_page 'Settings' do
  menu label: 'Settings', priority: 99
  active_admin_settings_page options
end

Options

Tool Description
:model_name String, settings model name override (default: uses name from global config.)
:starting_with String, each key must starting with, (default: nil)
:key String, Symbol root key, can be replacement for starting_with, (default: nil)
:template String, custom template rendering (default: 'admin/settings/index')
:template_object object passing to view (default: ActiveadminSettingsCached::Model instance)
:display Hash, display settings override (default: {})
:title String, title value override (default: I18n.t('settings.menu.label'))
:after_save Proc, callback for action after POST request, (default: nil)

Localization

You can localize settings keys in local file

en:
  settings:
    attributes:
      my_awesome_settings: 'My Awesome Localized Setting'

Model name

By default the name of the mode is Setting. If you want to use a different name for the model, you can specify your that in config/initializers/active_admin_settings_cached.rb:

ActiveadminSettingsCached.configure do |config|
  config.model_name = 'AdvancedSetting'
end

Display options

If you need define display options for settings fields, eg textarea, url or :timestamp and etc., you can set display option in initializer.

ActiveadminSettingsCached.configure do |config|
  config.display = {
    my_awesome_setting_name: :text,
    my_awesome_setting_name_2: :timestamp,
    my_awesome_setting_name_3: :select
  }
end

Available options see here

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

How run local example

make bash
make setup
cd spec/rails/rails-5.1.7/
BUNDLE_GEMFILE=/app/gemfiles/rails5.1.gemfile bundle exec rails s -b 0.0.0.0