{"id":14955322,"url":"https://github.com/accessd/rails-settings-ui","last_synced_at":"2025-04-06T01:10:15.652Z","repository":{"id":9444336,"uuid":"11321610","full_name":"accessd/rails-settings-ui","owner":"accessd","description":"User interface for manage settings in rails application (using rails-settings gem) / Интерфейс для управления настройками в Rails приложении","archived":false,"fork":false,"pushed_at":"2022-10-18T12:28:25.000Z","size":265,"stargazers_count":94,"open_issues_count":4,"forks_count":27,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-29T14:15:15.603Z","etag":null,"topics":["admin","configuration","rails","rails-settings","rails7","ruby","settings"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/accessd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-10T19:21:07.000Z","updated_at":"2023-12-07T17:40:10.000Z","dependencies_parsed_at":"2022-09-10T14:20:21.719Z","dependency_job_id":null,"html_url":"https://github.com/accessd/rails-settings-ui","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Frails-settings-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Frails-settings-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Frails-settings-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Frails-settings-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/accessd","download_url":"https://codeload.github.com/accessd/rails-settings-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419861,"owners_count":20936012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","configuration","rails","rails-settings","rails7","ruby","settings"],"created_at":"2024-09-24T13:10:59.151Z","updated_at":"2025-04-06T01:10:15.629Z","avatar_url":"https://github.com/accessd.png","language":"Ruby","readme":"Rails settings UI\n================================\n\n[![Gem Version](https://badge.fury.io/rb/rails-settings-ui.svg)](https://rubygems.org/gems/rails-settings-ui)\n[![build](https://github.com/accessd/rails-settings-ui/workflows/build/badge.svg)](https://github.com/accessd/rails-settings-cached/actions?query=workflow%3Abuild)\n\nA Rails Engine to manage your application settings. Includes validation. Compatible with Rails 7.\nIt depends on [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) gem.\n\nPreview:\n\n![ScreenShot](https://raw.github.com/accessd/rails-settings-ui/master/doc/img/settings-page.png)\n\nHow to\n-----\n\nAdd to Gemfile\n\n    gem 'rails-settings-ui'\n\nIf you want to use bootstrap interface you need also include bootstrap stylesheets to your app.\nYou may use [bootstrap-sass](https://github.com/twbs/bootstrap-sass) gem for that.\n\nSetup:\n\n    # adds initializer and route:\n    rails g rails_settings_ui:install\n\nConfig\n------------\n\nIn config/initializers/rails_settings_ui.rb\n\n    RailsSettingsUi.setup do |config|\n      config.ignored_settings = [:company_name] # Settings not displayed in the interface\n      config.settings_class = \"MySettings\" # Customize settings class name\n      config.settings_displayed_as_select_tag = [:mode] # Settings displayed as select tag instead of checkbox group field\n      config.defaults_for_settings = {mode: :manual} # Default option values for select tags\n      config.engine_name = \"your engine name\" # Default use 'main_app', if you mount this engine to another engine, then set name of engine\n    end\n\nRouting\n-------\n\n    # engine root:\n    rails_settings_ui_url\n\nI18n\n-------------\n\nYou can localize:\n\n*  Settings names, eg:\n\n```yaml\n  settings:\n    attributes:\n      launch_mode: # setting name\n        name: 'Launch mode'\n```\n\n*  Checkbox options labels for array options, eg:\n\n```yaml\n  settings:\n    attributes:\n      launch_mode:\n        labels:\n          auto: 'Auto mode'\n          manual: 'Manual mode'\n```\n\n*  Select options labels and values, eg:\n\n```yaml\n  settings:\n    attributes:\n      buy_mode:\n        labels:\n          auto: 'Auto buy' # 'auto' is option value, 'Auto buy' is option label\n          manual: 'Manual buy'\n```\n\nso result will be:\n\n```html\n  \u003coption value=\"auto\"\u003eAuto buy\u003c/option\u003e\n  \u003coption value=\"manual\"\u003eManual buy\u003c/option\u003e\n```\n\nif you don't specify labels in locale config, you'll get:\n\n```html\n  \u003coption value=\"auto\"\u003eauto\u003c/option\u003e\n  \u003coption value=\"manual\"\u003emanual\u003c/option\u003e\n```\n\n*  Help blocks for settings, eg:\n\n```yaml\n  settings:\n    attributes:\n      launch_mode:\n        help_block: 'launch mode'\n```\n\nValidations\n-------------\n\nValidations work based on default value for setting or by explicitly specify type for setting, eg:\n\n    class Settings \u003c RailsSettings::Base\n      cache_prefix { \"v1\" }\n\n      field :company_name, type: :string, default: \"Company name\"\n      field :head_name, default: \"Head name\"\n      field :manager_premium, default: 19\n      field :show_contract_fields, default: true\n      field :launch_mode, default: [:auto, :manual]\n    end\n\nViews\n-------------\n\nDefault layout is `application`, but you can render all rails-settings-ui views inside your app layout\n(for nice looking you will need include bootstrap, eg: `@import 'bootstrap';` in your applications.css.scss):\n\n    Rails.application.config.to_prepare do\n      # Use admin layout:\n      RailsSettingsUi::ApplicationController.module_eval do\n        layout 'admin'\n      end\n      # If you are using a custom layout, you will want to make app routes available to rails-setting-ui:\n      RailsSettingsUi.inline_engine_routes! # old name of method inline_main_app_routes!\n    end\n\n\nAuthentication \u0026 authorization\n------------------------------\n\nYou can specify the parent controller for settings controller, and it will inherit all before filters.\nNote that this must be placed before any other references to rails-setting-ui application controller in the initializer:\n\n    RailsSettingsUi.parent_controller = 'Admin::ApplicationController' # default: '::ApplicationController'\n\nAlternatively, to have custom rules just for rails-setting-ui you can:\n\n    Rails.application.config.to_prepare do\n      RailsSettingsUi::ApplicationController.module_eval do\n        before_action :check_settings_permissions\n\n        private\n\n        def check_settings_permissions\n          render status: 403 unless current_user \u0026\u0026 can_manage_settings?(current_user)\n        end\n      end\n    end\n\nIssues\n-------------\n\n  * If you wish to use route helpers for your app in parent controllers of `RailsSettingsUi::ApplicationController`, you must call helpers for `main_app`, for example: `main_app.root_path`\n\n\nThis project uses MIT-LICENSE.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccessd%2Frails-settings-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccessd%2Frails-settings-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccessd%2Frails-settings-ui/lists"}