activeadmin 2.13.1 → 2.14.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +58 -0
- data/CONTRIBUTING.md +3 -4
- data/README.md +2 -2
- data/app/assets/javascripts/active_admin/base.js +1 -4
- data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +5 -4
- data/config/locales/fr.yml +3 -3
- data/config/locales/vi.yml +34 -7
- data/config/locales/zh-CN.yml +36 -17
- data/lib/active_admin/asset_registration.rb +3 -3
- data/lib/active_admin/authorization_adapter.rb +2 -0
- data/lib/active_admin/base_controller/authorization.rb +2 -2
- data/lib/active_admin/dependency.rb +0 -4
- data/lib/active_admin/engine.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +4 -4
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +1 -1
- data/lib/active_admin/orm/active_record/comments.rb +8 -8
- data/lib/active_admin/pundit_adapter.rb +0 -2
- data/lib/active_admin/resource/action_items.rb +2 -2
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -1
- data/lib/active_admin/views/index_as_table.rb +1 -1
- data/lib/active_admin/views/pages/base.rb +4 -3
- data/lib/active_admin/views/pages/index.rb +1 -1
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +17 -0
- metadata +5 -44
- data/docs/.gitignore +0 -1
- data/docs/0-installation.md +0 -142
- data/docs/1-general-configuration.md +0 -224
- data/docs/10-custom-pages.md +0 -150
- data/docs/11-decorators.md +0 -70
- data/docs/12-arbre-components.md +0 -214
- data/docs/13-authorization-adapter.md +0 -285
- data/docs/14-gotchas.md +0 -138
- data/docs/2-resource-customization.md +0 -475
- data/docs/3-index-pages/custom-index.md +0 -35
- data/docs/3-index-pages/index-as-block.md +0 -19
- data/docs/3-index-pages/index-as-blog.md +0 -69
- data/docs/3-index-pages/index-as-grid.md +0 -27
- data/docs/3-index-pages/index-as-table.md +0 -234
- data/docs/3-index-pages.md +0 -328
- data/docs/4-csv-format.md +0 -74
- data/docs/5-forms.md +0 -238
- data/docs/6-show-pages.md +0 -93
- data/docs/7-sidebars.md +0 -75
- data/docs/8-custom-actions.md +0 -177
- data/docs/9-batch-actions.md +0 -237
- data/docs/CNAME +0 -1
- data/docs/Gemfile +0 -4
- data/docs/Gemfile.lock +0 -283
- data/docs/README.md +0 -24
- data/docs/_config.yml +0 -4
- data/docs/_includes/footer.html +0 -8
- data/docs/_includes/google-analytics.html +0 -16
- data/docs/_includes/head.html +0 -7
- data/docs/_includes/toc.html +0 -98
- data/docs/_includes/top-menu.html +0 -17
- data/docs/_layouts/default.html +0 -21
- data/docs/documentation.md +0 -60
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/images/tidelift.svg +0 -14
- data/docs/index.html +0 -226
- data/docs/stylesheets/main.css +0 -1205
data/lib/active_admin/version.rb
CHANGED
@@ -29,7 +29,7 @@ module ActiveAdmin
|
|
29
29
|
authorized?(ActiveAdmin::Auth::READ, resource)
|
30
30
|
url_for config.route_instance_path resource, url_options
|
31
31
|
elsif config.controller.action_methods.include?("edit") &&
|
32
|
-
authorized?(ActiveAdmin::Auth::
|
32
|
+
authorized?(ActiveAdmin::Auth::EDIT, resource)
|
33
33
|
url_for config.route_edit_instance_path resource, url_options
|
34
34
|
end
|
35
35
|
end
|
@@ -377,7 +377,7 @@ module ActiveAdmin
|
|
377
377
|
if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
|
378
378
|
item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
|
379
379
|
end
|
380
|
-
if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::
|
380
|
+
if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::EDIT, resource)
|
381
381
|
item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
|
382
382
|
end
|
383
383
|
if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
|
@@ -38,8 +38,8 @@ module ActiveAdmin
|
|
38
38
|
text_node(meta(name: name, content: content))
|
39
39
|
end
|
40
40
|
|
41
|
-
active_admin_application.javascripts.each do |path|
|
42
|
-
javascript_tag = active_admin_namespace.use_webpacker ? javascript_pack_tag(path) : javascript_include_tag(path)
|
41
|
+
active_admin_application.javascripts.each do |path, options|
|
42
|
+
javascript_tag = active_admin_namespace.use_webpacker ? javascript_pack_tag(path, **options) : javascript_include_tag(path, **options)
|
43
43
|
text_node(javascript_tag)
|
44
44
|
end
|
45
45
|
|
@@ -49,7 +49,8 @@ module ActiveAdmin
|
|
49
49
|
text_node(favicon_tag)
|
50
50
|
end
|
51
51
|
|
52
|
-
text_node
|
52
|
+
text_node csrf_meta_tags
|
53
|
+
text_node csp_meta_tag
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
@@ -112,7 +112,7 @@ module ActiveAdmin
|
|
112
112
|
|
113
113
|
def render_blank_slate
|
114
114
|
blank_slate_content = I18n.t("active_admin.blank_slate.content", resource_name: active_admin_config.plural_resource_label)
|
115
|
-
if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::
|
115
|
+
if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::NEW, active_admin_config.resource_class)
|
116
116
|
blank_slate_content = [blank_slate_content, blank_slate_link].compact.join(" ")
|
117
117
|
end
|
118
118
|
insert_tag(view_factory.blank_slate, blank_slate_content)
|
@@ -18,6 +18,23 @@ ActiveAdmin.setup do |config|
|
|
18
18
|
#
|
19
19
|
# config.site_title_image = "logo.png"
|
20
20
|
|
21
|
+
# == Load Paths
|
22
|
+
#
|
23
|
+
# By default Active Admin files go inside app/admin/.
|
24
|
+
# You can change this directory.
|
25
|
+
#
|
26
|
+
# eg:
|
27
|
+
# config.load_paths = [File.join(Rails.root, 'app', 'ui')]
|
28
|
+
#
|
29
|
+
# Or, you can also load more directories.
|
30
|
+
# Useful when setting namespaces with users that are not your main AdminUser entity.
|
31
|
+
#
|
32
|
+
# eg:
|
33
|
+
# config.load_paths = [
|
34
|
+
# File.join(Rails.root, 'app', 'admin'),
|
35
|
+
# File.join(Rails.root, 'app', 'cashier')
|
36
|
+
# ]
|
37
|
+
|
21
38
|
# == Default Namespace
|
22
39
|
#
|
23
40
|
# Set the default namespace each administration resource
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeadmin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Maresh
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date:
|
18
|
+
date: 2023-06-22 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: arbre
|
@@ -309,46 +309,6 @@ files:
|
|
309
309
|
- config/locales/vi.yml
|
310
310
|
- config/locales/zh-CN.yml
|
311
311
|
- config/locales/zh-TW.yml
|
312
|
-
- docs/.gitignore
|
313
|
-
- docs/0-installation.md
|
314
|
-
- docs/1-general-configuration.md
|
315
|
-
- docs/10-custom-pages.md
|
316
|
-
- docs/11-decorators.md
|
317
|
-
- docs/12-arbre-components.md
|
318
|
-
- docs/13-authorization-adapter.md
|
319
|
-
- docs/14-gotchas.md
|
320
|
-
- docs/2-resource-customization.md
|
321
|
-
- docs/3-index-pages.md
|
322
|
-
- docs/3-index-pages/custom-index.md
|
323
|
-
- docs/3-index-pages/index-as-block.md
|
324
|
-
- docs/3-index-pages/index-as-blog.md
|
325
|
-
- docs/3-index-pages/index-as-grid.md
|
326
|
-
- docs/3-index-pages/index-as-table.md
|
327
|
-
- docs/4-csv-format.md
|
328
|
-
- docs/5-forms.md
|
329
|
-
- docs/6-show-pages.md
|
330
|
-
- docs/7-sidebars.md
|
331
|
-
- docs/8-custom-actions.md
|
332
|
-
- docs/9-batch-actions.md
|
333
|
-
- docs/CNAME
|
334
|
-
- docs/Gemfile
|
335
|
-
- docs/Gemfile.lock
|
336
|
-
- docs/README.md
|
337
|
-
- docs/_config.yml
|
338
|
-
- docs/_includes/footer.html
|
339
|
-
- docs/_includes/google-analytics.html
|
340
|
-
- docs/_includes/head.html
|
341
|
-
- docs/_includes/toc.html
|
342
|
-
- docs/_includes/top-menu.html
|
343
|
-
- docs/_layouts/default.html
|
344
|
-
- docs/documentation.md
|
345
|
-
- docs/images/activeadmin.png
|
346
|
-
- docs/images/code-header.png
|
347
|
-
- docs/images/divider.png
|
348
|
-
- docs/images/features.png
|
349
|
-
- docs/images/tidelift.svg
|
350
|
-
- docs/index.html
|
351
|
-
- docs/stylesheets/main.css
|
352
312
|
- lib/active_admin.rb
|
353
313
|
- lib/active_admin/abstract_view_factory.rb
|
354
314
|
- lib/active_admin/application.rb
|
@@ -562,7 +522,8 @@ files:
|
|
562
522
|
homepage: https://activeadmin.info
|
563
523
|
licenses:
|
564
524
|
- MIT
|
565
|
-
metadata:
|
525
|
+
metadata:
|
526
|
+
rubygems_mfa_required: 'true'
|
566
527
|
post_install_message:
|
567
528
|
rdoc_options: []
|
568
529
|
require_paths:
|
@@ -578,7 +539,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
578
539
|
- !ruby/object:Gem::Version
|
579
540
|
version: '0'
|
580
541
|
requirements: []
|
581
|
-
rubygems_version: 3.
|
542
|
+
rubygems_version: 3.4.13
|
582
543
|
signing_key:
|
583
544
|
specification_version: 4
|
584
545
|
summary: Active Admin is a Ruby on Rails plugin for generating administration style
|
data/docs/.gitignore
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
_site/
|
data/docs/0-installation.md
DELETED
@@ -1,142 +0,0 @@
|
|
1
|
-
---
|
2
|
-
redirect_from: /docs/0-installation.html
|
3
|
-
---
|
4
|
-
|
5
|
-
# Installation
|
6
|
-
|
7
|
-
Active Admin is a Ruby Gem.
|
8
|
-
|
9
|
-
```ruby
|
10
|
-
gem 'activeadmin'
|
11
|
-
|
12
|
-
# Plus integrations with:
|
13
|
-
gem 'devise'
|
14
|
-
gem 'cancancan'
|
15
|
-
gem 'draper'
|
16
|
-
gem 'pundit'
|
17
|
-
```
|
18
|
-
|
19
|
-
More accurately, it's a [Rails Engine](http://guides.rubyonrails.org/engines.html)
|
20
|
-
that can be injected into your existing Ruby on Rails application.
|
21
|
-
|
22
|
-
## Setting up Active Admin
|
23
|
-
|
24
|
-
After installing the gem, you need to run the generator. Here are your options:
|
25
|
-
|
26
|
-
* If you don't want to use Devise, run it with `--skip-users`:
|
27
|
-
|
28
|
-
```sh
|
29
|
-
rails g active_admin:install --skip-users
|
30
|
-
```
|
31
|
-
|
32
|
-
* If you want to customize the name of the generated user class, or if you want to use an existing user class, provide the class name as an argument:
|
33
|
-
|
34
|
-
```sh
|
35
|
-
rails g active_admin:install User
|
36
|
-
```
|
37
|
-
|
38
|
-
* Otherwise, with no arguments we will create an `AdminUser` class to use with Devise:
|
39
|
-
|
40
|
-
```sh
|
41
|
-
rails g active_admin:install
|
42
|
-
```
|
43
|
-
|
44
|
-
The generator adds these core files, among others:
|
45
|
-
|
46
|
-
* `app/admin/dashboard.rb`
|
47
|
-
* `app/assets/javascripts/active_admin.js`
|
48
|
-
* `app/assets/stylesheets/active_admin.scss`
|
49
|
-
* `config/initializers/active_admin.rb`
|
50
|
-
|
51
|
-
Now, migrate and seed your database before starting the server:
|
52
|
-
|
53
|
-
```sh
|
54
|
-
rails db:migrate
|
55
|
-
rails db:seed
|
56
|
-
rails server
|
57
|
-
```
|
58
|
-
|
59
|
-
Visit `http://localhost:3000/admin` and log in as the default user:
|
60
|
-
|
61
|
-
* __User__: admin@example.com
|
62
|
-
* __Password__: password
|
63
|
-
|
64
|
-
Voila! You're on your brand new Active Admin dashboard.
|
65
|
-
|
66
|
-
To register an existing model with Active Admin:
|
67
|
-
|
68
|
-
```sh
|
69
|
-
rails generate active_admin:resource MyModel
|
70
|
-
```
|
71
|
-
|
72
|
-
This creates a file at `app/admin/my_model.rb` to set up the UI; refresh your
|
73
|
-
browser to see it.
|
74
|
-
|
75
|
-
# Upgrading
|
76
|
-
|
77
|
-
When upgrading to a new version, it's a good idea to check the [CHANGELOG].
|
78
|
-
|
79
|
-
To update the JS & CSS assets:
|
80
|
-
|
81
|
-
```sh
|
82
|
-
rails generate active_admin:assets
|
83
|
-
```
|
84
|
-
|
85
|
-
You should also sync these files with their counterparts in the AA source code:
|
86
|
-
|
87
|
-
* app/admin/dashboard.rb [~>][dashboard.rb]
|
88
|
-
* config/initializers/active_admin.rb [~>][active_admin.rb]
|
89
|
-
|
90
|
-
# Gem compatibility
|
91
|
-
|
92
|
-
## will_paginate
|
93
|
-
|
94
|
-
If you use `will_paginate` in your app, you need to configure an initializer for
|
95
|
-
Kaminari to avoid conflicts.
|
96
|
-
|
97
|
-
```ruby
|
98
|
-
# config/initializers/kaminari.rb
|
99
|
-
Kaminari.configure do |config|
|
100
|
-
config.page_method_name = :per_page_kaminari
|
101
|
-
end
|
102
|
-
```
|
103
|
-
|
104
|
-
If you are also using [Draper](https://github.com/drapergem/draper), you may
|
105
|
-
want to make sure `per_page_kaminari` is delegated correctly:
|
106
|
-
|
107
|
-
```ruby
|
108
|
-
Draper::CollectionDecorator.send :delegate, :per_page_kaminari
|
109
|
-
```
|
110
|
-
|
111
|
-
## simple_form
|
112
|
-
|
113
|
-
If you're getting the error `wrong number of arguments (6 for 4..5)`, [read #2703].
|
114
|
-
|
115
|
-
## webpacker
|
116
|
-
|
117
|
-
You can **opt-in to using Webpacker for ActiveAdmin assets** as well by updating your configuration to turn on the `use_webpacker` option, either at installation time or manually.
|
118
|
-
|
119
|
-
* at active_admin installation:
|
120
|
-
|
121
|
-
```sh
|
122
|
-
rails g active_admin:install --use_webpacker
|
123
|
-
```
|
124
|
-
|
125
|
-
* manually:
|
126
|
-
|
127
|
-
```ruby
|
128
|
-
ActiveAdmin.setup do |config|
|
129
|
-
config.use_webpacker = true
|
130
|
-
end
|
131
|
-
```
|
132
|
-
|
133
|
-
And run the generator to get default Active Admin assets:
|
134
|
-
|
135
|
-
```sh
|
136
|
-
rails g active_admin:webpacker
|
137
|
-
```
|
138
|
-
|
139
|
-
[CHANGELOG]: https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md
|
140
|
-
[dashboard.rb]: https://github.com/activeadmin/activeadmin/blob/master/lib/generators/active_admin/install/templates/dashboard.rb
|
141
|
-
[active_admin.rb]: https://github.com/activeadmin/activeadmin/blob/master/lib/generators/active_admin/install/templates/active_admin.rb.erb
|
142
|
-
[read #2703]: https://github.com/activeadmin/activeadmin/issues/2703#issuecomment-38140864
|
@@ -1,224 +0,0 @@
|
|
1
|
-
---
|
2
|
-
redirect_from: /docs/1-general-configuration.html
|
3
|
-
---
|
4
|
-
|
5
|
-
# General Configuration
|
6
|
-
|
7
|
-
You can configure Active Admin settings in `config/initializers/active_admin.rb`.
|
8
|
-
Here are a few common configurations:
|
9
|
-
|
10
|
-
## Authentication
|
11
|
-
|
12
|
-
Active Admin requires two settings to authenticate and use the current user
|
13
|
-
within your application.
|
14
|
-
|
15
|
-
+ the method controllers used to force authentication
|
16
|
-
|
17
|
-
```ruby
|
18
|
-
config.authentication_method = :authenticate_admin_user!
|
19
|
-
```
|
20
|
-
|
21
|
-
+ the method used to access the current user
|
22
|
-
|
23
|
-
```ruby
|
24
|
-
config.current_user_method = :current_admin_user
|
25
|
-
```
|
26
|
-
|
27
|
-
Both of these settings can be set to false to turn off authentication.
|
28
|
-
|
29
|
-
```ruby
|
30
|
-
config.authentication_method = false
|
31
|
-
config.current_user_method = false
|
32
|
-
```
|
33
|
-
|
34
|
-
## Site Title Options
|
35
|
-
|
36
|
-
Every page has what's called the site title on the left side of the menu bar.
|
37
|
-
If you want, you can customize it.
|
38
|
-
|
39
|
-
```ruby
|
40
|
-
config.site_title = "My Admin Site"
|
41
|
-
config.site_title_link = "/"
|
42
|
-
config.site_title_image = "site_image.png"
|
43
|
-
config.site_title_image = "http://www.google.com/images/logos/google_logo_41.png"
|
44
|
-
config.site_title_image = ->(context) { context.current_user.company.logo_url }
|
45
|
-
```
|
46
|
-
|
47
|
-
## Internationalization (I18n)
|
48
|
-
|
49
|
-
Active Admin comes with translations for a lot of
|
50
|
-
[locales](https://github.com/activeadmin/activeadmin/blob/master/config/locales/).
|
51
|
-
Active Admin does not provide the translations for the kaminari gem it uses for pagination,
|
52
|
-
to get these you can use the
|
53
|
-
[kaminari-i18n](https://github.com/tigrish/kaminari-i18n) gem.
|
54
|
-
|
55
|
-
To translate Active Admin to a new language or customize an existing
|
56
|
-
translation, you can copy
|
57
|
-
[config/locales/en.yml](https://github.com/activeadmin/activeadmin/blob/master/config/locales/en.yml)
|
58
|
-
to your application's `config/locales` folder and update it. We welcome
|
59
|
-
new/updated translations, so feel free to
|
60
|
-
[contribute](https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md)!
|
61
|
-
|
62
|
-
When using [devise](https://github.com/plataformatec/devise) for authentication,
|
63
|
-
you can use the [devise-i18n](https://github.com/tigrish/devise-i18n)
|
64
|
-
gem to get the devise translations for other locales.
|
65
|
-
|
66
|
-
## Localize Format For Dates and Times
|
67
|
-
|
68
|
-
Active Admin sets `:long` as default localize format for dates and times.
|
69
|
-
If you want, you can customize it.
|
70
|
-
|
71
|
-
```ruby
|
72
|
-
config.localize_format = :short
|
73
|
-
```
|
74
|
-
|
75
|
-
## Namespaces
|
76
|
-
|
77
|
-
When registering resources in Active Admin, they are loaded into a namespace.
|
78
|
-
The default namespace is "admin".
|
79
|
-
|
80
|
-
```ruby
|
81
|
-
# app/admin/posts.rb
|
82
|
-
ActiveAdmin.register Post do
|
83
|
-
# ...
|
84
|
-
end
|
85
|
-
```
|
86
|
-
|
87
|
-
The Post resource will be loaded into the "admin" namespace and will be
|
88
|
-
available at `/admin/posts`. Each namespace holds on to its own settings that
|
89
|
-
inherit from the application's configuration.
|
90
|
-
|
91
|
-
For example, if you have two namespaces (`:admin` and `:super_admin`) and want to
|
92
|
-
have different site title's for each, you can use the `config.namespace(name)`
|
93
|
-
block within the initializer file to configure them individually.
|
94
|
-
|
95
|
-
```ruby
|
96
|
-
ActiveAdmin.setup do |config|
|
97
|
-
config.site_title = "My Default Site Title"
|
98
|
-
|
99
|
-
config.namespace :admin do |admin|
|
100
|
-
admin.site_title = "Admin Site"
|
101
|
-
end
|
102
|
-
|
103
|
-
config.namespace :super_admin do |super_admin|
|
104
|
-
super_admin.site_title = "Super Admin Site"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
```
|
108
|
-
|
109
|
-
If you are creating a multi-tenant application you may want to have multiple namespaces mounted to the same path. We can do this using the `route_options` settings on the namespace
|
110
|
-
|
111
|
-
```ruby
|
112
|
-
config.namespace :site_1 do |admin|
|
113
|
-
admin.route_options = { path: :admin, constraints: ->(request){ request.domain == "site1.com" } }
|
114
|
-
end
|
115
|
-
|
116
|
-
config.namespace :site_2 do |admin|
|
117
|
-
admin.route_options = { path: :admin, constraints: ->(request){ request.domain == "site2.com" } }
|
118
|
-
end
|
119
|
-
```
|
120
|
-
|
121
|
-
If you would like to mount the namespace to a subdomain instead of path we can use the `route_options` for this as well
|
122
|
-
|
123
|
-
```ruby
|
124
|
-
config.namespace :admin do |admin|
|
125
|
-
admin.route_options = { path: '', subdomain: 'admin' }
|
126
|
-
end
|
127
|
-
```
|
128
|
-
|
129
|
-
Each setting available in the Active Admin setup block is configurable on a per
|
130
|
-
namespace basis.
|
131
|
-
|
132
|
-
## Load paths
|
133
|
-
|
134
|
-
By default Active Admin files go inside `app/admin/`. You can change this
|
135
|
-
directory in the initializer file:
|
136
|
-
|
137
|
-
```ruby
|
138
|
-
ActiveAdmin.setup do |config|
|
139
|
-
config.load_paths = [File.join(Rails.root, "app", "ui")]
|
140
|
-
end
|
141
|
-
```
|
142
|
-
|
143
|
-
## Comments
|
144
|
-
|
145
|
-
By default Active Admin includes comments on resources. Sometimes, this is
|
146
|
-
undesired. To disable comments:
|
147
|
-
|
148
|
-
```ruby
|
149
|
-
# For the entire application:
|
150
|
-
ActiveAdmin.setup do |config|
|
151
|
-
config.comments = false
|
152
|
-
end
|
153
|
-
|
154
|
-
# For a namespace:
|
155
|
-
ActiveAdmin.setup do |config|
|
156
|
-
config.namespace :admin do |admin|
|
157
|
-
admin.comments = false
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
# For a given resource:
|
162
|
-
ActiveAdmin.register Post do
|
163
|
-
config.comments = false
|
164
|
-
end
|
165
|
-
```
|
166
|
-
|
167
|
-
You can change the name under which comments are registered:
|
168
|
-
|
169
|
-
```ruby
|
170
|
-
config.comments_registration_name = 'AdminComment'
|
171
|
-
```
|
172
|
-
|
173
|
-
You can change the order for the comments and you can change the column to be
|
174
|
-
used for ordering:
|
175
|
-
|
176
|
-
```ruby
|
177
|
-
config.comments_order = 'created_at ASC'
|
178
|
-
```
|
179
|
-
|
180
|
-
You can disable the menu item for the comments index page:
|
181
|
-
|
182
|
-
```ruby
|
183
|
-
config.comments_menu = false
|
184
|
-
```
|
185
|
-
|
186
|
-
You can customize the comment menu:
|
187
|
-
|
188
|
-
```ruby
|
189
|
-
config.comments_menu = { parent: 'Admin', priority: 1 }
|
190
|
-
```
|
191
|
-
|
192
|
-
Remember to indicate where to place the comments and form with:
|
193
|
-
|
194
|
-
```ruby
|
195
|
-
active_admin_comments
|
196
|
-
```
|
197
|
-
|
198
|
-
## Utility Navigation
|
199
|
-
|
200
|
-
The "utility navigation" shown at the top right normally shows the current user
|
201
|
-
and a link to log out. However, the utility navigation is just like any other
|
202
|
-
menu in the system; you can provide your own menu to be rendered in its place.
|
203
|
-
|
204
|
-
```ruby
|
205
|
-
ActiveAdmin.setup do |config|
|
206
|
-
config.namespace :admin do |admin|
|
207
|
-
admin.build_menu :utility_navigation do |menu|
|
208
|
-
menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info",
|
209
|
-
html_options: { target: :blank }
|
210
|
-
admin.add_current_user_to_menu menu
|
211
|
-
admin.add_logout_button_to_menu menu
|
212
|
-
end
|
213
|
-
end
|
214
|
-
end
|
215
|
-
```
|
216
|
-
|
217
|
-
## Footer Customization
|
218
|
-
|
219
|
-
By default, Active Admin displays a "Powered by ActiveAdmin" message on every
|
220
|
-
page. You can override this message and show domain-specific messaging:
|
221
|
-
|
222
|
-
```ruby
|
223
|
-
config.footer = "MyApp Revision v1.3"
|
224
|
-
```
|
data/docs/10-custom-pages.md
DELETED
@@ -1,150 +0,0 @@
|
|
1
|
-
---
|
2
|
-
redirect_from: /docs/10-custom-pages.html
|
3
|
-
---
|
4
|
-
|
5
|
-
# Custom Pages
|
6
|
-
|
7
|
-
If you have data you want on a standalone page that isn't tied to a resource,
|
8
|
-
custom pages provide you with a familiar syntax and feature set:
|
9
|
-
|
10
|
-
* a menu item
|
11
|
-
* sidebars
|
12
|
-
* action items
|
13
|
-
* page actions
|
14
|
-
|
15
|
-
## Create a new Page
|
16
|
-
|
17
|
-
Creating a page is as simple as calling `register_page`:
|
18
|
-
|
19
|
-
```ruby
|
20
|
-
# app/admin/calendar.rb
|
21
|
-
ActiveAdmin.register_page "Calendar" do
|
22
|
-
content do
|
23
|
-
para "Hello World"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
```
|
27
|
-
|
28
|
-
Anything rendered within `content` will be the main content on the page.
|
29
|
-
Partials behave exactly the same way as they do for resources:
|
30
|
-
|
31
|
-
```ruby
|
32
|
-
# app/admin/calendar.rb
|
33
|
-
ActiveAdmin.register_page "Calendar" do
|
34
|
-
content do
|
35
|
-
render partial: 'calendar'
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# app/views/admin/calendar/_calendar.html.arb
|
40
|
-
table do
|
41
|
-
thead do
|
42
|
-
tr do
|
43
|
-
%w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday].each &method(:th)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
tbody do
|
47
|
-
# ...
|
48
|
-
end
|
49
|
-
end
|
50
|
-
```
|
51
|
-
|
52
|
-
## Customize the Menu
|
53
|
-
|
54
|
-
See the [Menu](2-resource-customization.md#customize-the-menu) documentation.
|
55
|
-
|
56
|
-
## Customize the breadcrumbs
|
57
|
-
|
58
|
-
```ruby
|
59
|
-
ActiveAdmin.register_page "Calendar" do
|
60
|
-
breadcrumb do
|
61
|
-
['admin', 'calendar']
|
62
|
-
end
|
63
|
-
end
|
64
|
-
```
|
65
|
-
|
66
|
-
## Customize the Namespace
|
67
|
-
|
68
|
-
We use the `admin` namespace by default, but you can use anything:
|
69
|
-
|
70
|
-
```ruby
|
71
|
-
# Available at /today/calendar
|
72
|
-
ActiveAdmin.register_page "Calendar", namespace: :today
|
73
|
-
|
74
|
-
# Available at /calendar
|
75
|
-
ActiveAdmin.register_page "Calendar", namespace: false
|
76
|
-
```
|
77
|
-
|
78
|
-
## Belongs To
|
79
|
-
|
80
|
-
To nest the page within another resource, you can use the `belongs_to` method:
|
81
|
-
|
82
|
-
```ruby
|
83
|
-
ActiveAdmin.register Project
|
84
|
-
ActiveAdmin.register_page "Status" do
|
85
|
-
belongs_to :project
|
86
|
-
end
|
87
|
-
```
|
88
|
-
|
89
|
-
See also the [Belongs To](2-resource-customization.md#belongs-to) documentation
|
90
|
-
and examples.
|
91
|
-
|
92
|
-
## Add a Sidebar
|
93
|
-
|
94
|
-
See the [Sidebars](7-sidebars.md) documentation.
|
95
|
-
|
96
|
-
## Add an Action Item
|
97
|
-
|
98
|
-
Just like other resources, you can add action items. The difference here being that
|
99
|
-
`:only` and `:except` don't apply because there's only one page it could apply to.
|
100
|
-
|
101
|
-
```ruby
|
102
|
-
action_item :view_site do
|
103
|
-
link_to "View Site", "/"
|
104
|
-
end
|
105
|
-
```
|
106
|
-
|
107
|
-
## Add a Page Action
|
108
|
-
|
109
|
-
Page actions are custom controller actions (which mirror the resource DSL for
|
110
|
-
the same feature).
|
111
|
-
|
112
|
-
```ruby
|
113
|
-
page_action :add_event, method: :post do
|
114
|
-
# ...
|
115
|
-
redirect_to admin_calendar_path, notice: "Your event was added"
|
116
|
-
end
|
117
|
-
|
118
|
-
action_item :add do
|
119
|
-
link_to "Add Event", admin_calendar_add_event_path, method: :post
|
120
|
-
end
|
121
|
-
```
|
122
|
-
|
123
|
-
This defines the route `/admin/calendar/add_event` which can handle HTTP POST requests.
|
124
|
-
|
125
|
-
Clicking on the action item will reload page and display the message "Your event
|
126
|
-
was added"
|
127
|
-
|
128
|
-
Page actions can handle multiple HTTP verbs.
|
129
|
-
|
130
|
-
```ruby
|
131
|
-
page_action :add_event, method: [:get, :post] do
|
132
|
-
# ...
|
133
|
-
end
|
134
|
-
```
|
135
|
-
|
136
|
-
See also the [Custom Actions](8-custom-actions.md#http-verbs) example.
|
137
|
-
|
138
|
-
## Use custom column as id
|
139
|
-
|
140
|
-
You can use custom parameter instead of id
|
141
|
-
|
142
|
-
```ruby
|
143
|
-
ActiveAdmin.register User do
|
144
|
-
controller do
|
145
|
-
defaults :finder => :find_by_name
|
146
|
-
end
|
147
|
-
end
|
148
|
-
```
|
149
|
-
|
150
|
-
This defines the resource route as `/admin/users/john` if user name is john
|