activeadmin 2.12.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +230 -0
  3. data/CONTRIBUTING.md +4 -12
  4. data/README.md +4 -4
  5. data/app/assets/javascripts/active_admin/base.js +1 -4
  6. data/app/assets/stylesheets/active_admin/_forms.scss +2 -3
  7. data/app/assets/stylesheets/active_admin/components/_comments.scss +1 -1
  8. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +7 -4
  9. data/app/assets/stylesheets/active_admin/components/_pagination.scss +5 -2
  10. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +9 -6
  11. data/app/assets/stylesheets/active_admin/components/_tabs.scss +10 -7
  12. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +2 -2
  13. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
  14. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  15. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +6 -3
  16. data/app/views/layouts/active_admin_logged_out.html.erb +5 -4
  17. data/config/locales/ar.yml +0 -7
  18. data/config/locales/az.yml +0 -7
  19. data/config/locales/bg.yml +0 -7
  20. data/config/locales/bs.yml +0 -7
  21. data/config/locales/ca.yml +0 -7
  22. data/config/locales/cs.yml +0 -7
  23. data/config/locales/da.yml +0 -7
  24. data/config/locales/de-CH.yml +0 -7
  25. data/config/locales/de.yml +0 -8
  26. data/config/locales/el.yml +0 -7
  27. data/config/locales/en-CA.yml +0 -7
  28. data/config/locales/en-GB.yml +0 -7
  29. data/config/locales/en.yml +0 -8
  30. data/config/locales/eo.yml +0 -8
  31. data/config/locales/es-MX.yml +0 -7
  32. data/config/locales/es.yml +0 -8
  33. data/config/locales/fa.yml +0 -7
  34. data/config/locales/fi.yml +0 -7
  35. data/config/locales/fr.yml +3 -11
  36. data/config/locales/he.yml +0 -9
  37. data/config/locales/hr.yml +0 -7
  38. data/config/locales/hu.yml +0 -8
  39. data/config/locales/id.yml +0 -7
  40. data/config/locales/it.yml +0 -8
  41. data/config/locales/ja.yml +0 -8
  42. data/config/locales/ko.yml +0 -7
  43. data/config/locales/lt.yml +0 -8
  44. data/config/locales/lv.yml +0 -7
  45. data/config/locales/mk.yml +0 -8
  46. data/config/locales/nb.yml +0 -8
  47. data/config/locales/nl.yml +0 -8
  48. data/config/locales/pl.yml +0 -8
  49. data/config/locales/pt-BR.yml +0 -8
  50. data/config/locales/pt-PT.yml +0 -7
  51. data/config/locales/ro.yml +0 -7
  52. data/config/locales/ru.yml +0 -6
  53. data/config/locales/sk.yml +0 -8
  54. data/config/locales/sv-SE.yml +58 -39
  55. data/config/locales/tr.yml +0 -11
  56. data/config/locales/uk.yml +0 -6
  57. data/config/locales/vi.yml +34 -15
  58. data/config/locales/zh-CN.yml +34 -23
  59. data/config/locales/zh-TW.yml +0 -7
  60. data/lib/active_admin/application.rb +4 -4
  61. data/lib/active_admin/asset_registration.rb +3 -3
  62. data/lib/active_admin/authorization_adapter.rb +2 -0
  63. data/lib/active_admin/base_controller/authorization.rb +2 -2
  64. data/lib/active_admin/csv_builder.rb +23 -2
  65. data/lib/active_admin/dependency.rb +0 -4
  66. data/lib/active_admin/engine.rb +5 -1
  67. data/lib/active_admin/filters/active_filter.rb +1 -1
  68. data/lib/active_admin/filters/forms.rb +2 -2
  69. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  70. data/lib/active_admin/filters/resource_extension.rb +4 -4
  71. data/lib/active_admin/form_builder.rb +5 -6
  72. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  73. data/lib/active_admin/inputs/filters/date_range_input.rb +2 -2
  74. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -1
  75. data/lib/active_admin/inputs/filters/select_input.rb +3 -3
  76. data/lib/active_admin/inputs/filters/string_input.rb +1 -1
  77. data/lib/active_admin/menu.rb +1 -0
  78. data/lib/active_admin/namespace.rb +3 -3
  79. data/lib/active_admin/namespace_settings.rb +1 -1
  80. data/lib/active_admin/orm/active_record/comments/comment.rb +8 -0
  81. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +1 -1
  82. data/lib/active_admin/orm/active_record/comments.rb +8 -8
  83. data/lib/active_admin/pundit_adapter.rb +20 -14
  84. data/lib/active_admin/resource/action_items.rb +2 -2
  85. data/lib/active_admin/resource/attributes.rb +8 -1
  86. data/lib/active_admin/resource/belongs_to.rb +0 -1
  87. data/lib/active_admin/resource_controller/decorators.rb +1 -1
  88. data/lib/active_admin/resource_controller/streaming.rb +1 -1
  89. data/lib/active_admin/version.rb +1 -1
  90. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -1
  91. data/lib/active_admin/view_helpers/display_helper.rb +10 -3
  92. data/lib/active_admin/views/components/active_admin_form.rb +14 -6
  93. data/lib/active_admin/views/components/paginated_collection.rb +4 -1
  94. data/lib/active_admin/views/index_as_table.rb +8 -7
  95. data/lib/active_admin/views/pages/base.rb +4 -3
  96. data/lib/active_admin/views/pages/index.rb +1 -1
  97. data/lib/active_admin/views/pages/show.rb +1 -7
  98. data/lib/active_admin.rb +5 -3
  99. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +19 -2
  100. data/vendor/assets/javascripts/jquery-ui/data.js +12 -8
  101. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +10 -7
  102. data/vendor/assets/javascripts/jquery-ui/focusable.js +12 -9
  103. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +60 -57
  104. data/vendor/assets/javascripts/jquery-ui/form.js +15 -12
  105. data/vendor/assets/javascripts/jquery-ui/ie.js +5 -2
  106. data/vendor/assets/javascripts/jquery-ui/keycode.js +11 -7
  107. data/vendor/assets/javascripts/jquery-ui/labels.js +46 -40
  108. data/vendor/assets/javascripts/jquery-ui/plugin.js +5 -2
  109. data/vendor/assets/javascripts/jquery-ui/position.js +30 -17
  110. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +6 -2
  111. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +6 -2
  112. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +10 -7
  113. data/vendor/assets/javascripts/jquery-ui/tabbable.js +11 -8
  114. data/vendor/assets/javascripts/jquery-ui/unique-id.js +10 -7
  115. data/vendor/assets/javascripts/jquery-ui/version.js +6 -3
  116. data/vendor/assets/javascripts/jquery-ui/widget.js +53 -30
  117. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +87 -24
  118. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +276 -273
  119. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +15 -11
  120. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +182 -62
  121. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +53 -36
  122. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +28 -19
  123. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +22 -11
  124. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +47 -26
  125. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +186 -125
  126. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +20 -20
  127. metadata +34 -79
  128. data/docs/.gitignore +0 -1
  129. data/docs/0-installation.md +0 -142
  130. data/docs/1-general-configuration.md +0 -224
  131. data/docs/10-custom-pages.md +0 -150
  132. data/docs/11-decorators.md +0 -70
  133. data/docs/12-arbre-components.md +0 -214
  134. data/docs/13-authorization-adapter.md +0 -285
  135. data/docs/14-gotchas.md +0 -138
  136. data/docs/2-resource-customization.md +0 -475
  137. data/docs/3-index-pages/custom-index.md +0 -35
  138. data/docs/3-index-pages/index-as-block.md +0 -19
  139. data/docs/3-index-pages/index-as-blog.md +0 -69
  140. data/docs/3-index-pages/index-as-grid.md +0 -27
  141. data/docs/3-index-pages/index-as-table.md +0 -234
  142. data/docs/3-index-pages.md +0 -328
  143. data/docs/4-csv-format.md +0 -74
  144. data/docs/5-forms.md +0 -237
  145. data/docs/6-show-pages.md +0 -93
  146. data/docs/7-sidebars.md +0 -75
  147. data/docs/8-custom-actions.md +0 -177
  148. data/docs/9-batch-actions.md +0 -237
  149. data/docs/CNAME +0 -1
  150. data/docs/Gemfile +0 -4
  151. data/docs/Gemfile.lock +0 -283
  152. data/docs/README.md +0 -24
  153. data/docs/_config.yml +0 -4
  154. data/docs/_includes/footer.html +0 -8
  155. data/docs/_includes/google-analytics.html +0 -16
  156. data/docs/_includes/head.html +0 -7
  157. data/docs/_includes/toc.html +0 -98
  158. data/docs/_includes/top-menu.html +0 -17
  159. data/docs/_layouts/default.html +0 -21
  160. data/docs/documentation.md +0 -60
  161. data/docs/images/activeadmin.png +0 -0
  162. data/docs/images/code-header.png +0 -0
  163. data/docs/images/divider.png +0 -0
  164. data/docs/images/features.png +0 -0
  165. data/docs/images/tidelift.svg +0 -14
  166. data/docs/index.html +0 -226
  167. data/docs/stylesheets/main.css +0 -1205
  168. data/lib/active_admin/deprecation.rb +0 -11
  169. data/lib/ransack_ext.rb +0 -21
  170. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
@@ -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
- ```
@@ -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
@@ -1,70 +0,0 @@
1
- ---
2
- redirect_from: /docs/11-decorators.html
3
- ---
4
-
5
- # Decorators
6
-
7
- Active Admin allows you to use the decorator pattern to provide view-specific
8
- versions of a resource. [Draper](https://github.com/drapergem/draper) is
9
- recommended but not required.
10
-
11
- ## Example usage
12
-
13
- ```ruby
14
- # app/models/post.rb
15
- class Post < ActiveRecord::Base
16
- # has title, content, and image_url
17
- end
18
-
19
- # app/decorators/post_decorator.rb
20
- class PostDecorator < Draper::Decorator
21
- delegate_all
22
-
23
- def image
24
- h.image_tag model.image_url
25
- end
26
- end
27
-
28
- # app/admin/post.rb
29
- ActiveAdmin.register Post do
30
- decorate_with PostDecorator
31
-
32
- index do
33
- column :title
34
- column :image
35
- actions
36
- end
37
- end
38
- ```
39
-
40
- You can pass any decorator class as an argument to `decorate_with`
41
- as long as it accepts the record to be decorated as a parameter in
42
- the initializer, and responds to all the necessary methods.
43
-
44
- ```ruby
45
- # app/decorators/post_decorator.rb
46
- class PostDecorator
47
- attr_reader :post
48
- delegate_missing_to :post
49
-
50
- def initialize(post)
51
- @post = post
52
- end
53
- end
54
- ```
55
-
56
- ## Forms
57
-
58
- By default, ActiveAdmin does *not* decorate the resource used to render forms.
59
- If you need ActiveAdmin to decorate the forms, you can pass `decorate: true` to the
60
- form block.
61
-
62
- ```ruby
63
- ActiveAdmin.register Post do
64
- decorate_with PostDecorator
65
-
66
- form decorate: true do |f|
67
- # ...
68
- end
69
- end
70
- ```
@@ -1,214 +0,0 @@
1
- ---
2
- redirect_from: /docs/12-arbre-components.html
3
- ---
4
-
5
- # Arbre Components
6
-
7
- Arbre allows the creation of shareable and extendable HTML components and is
8
- used throughout Active Admin to create view components.
9
-
10
- ## Text Node
11
-
12
- Sometimes it makes sense to insert something into a registered resource like a
13
- non-breaking space or some text. The text_node method can be used to insert
14
- these elements into the page inside of other Arbre components or resource
15
- controller functions.
16
-
17
- ```ruby
18
- ActiveAdmin.register Post do
19
- show do
20
- panel "Post Details" do
21
- attributes_table_for post do
22
- row :id
23
- row 'Tags' do
24
- post.tags.each do |tag|
25
- a tag, href: admin_post_path(q: {tagged_with_contains: tag})
26
- text_node "&nbsp;".html_safe
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
33
- ```
34
-
35
- ## Panels
36
-
37
- A panel is a component that takes up all available horizontal space and takes a
38
- title and a hash of attributes as arguments. If a sidebar is present, a panel
39
- will take up the remaining space.
40
-
41
- This will create two stacked panels:
42
-
43
- ```ruby
44
- show do
45
- panel "Post Details" do
46
- render partial: "details", locals: {post: post}
47
- end
48
-
49
- panel "Post Tags" do
50
- render partial: "tags", locals: {post: post}
51
- end
52
- end
53
- ```
54
-
55
- ## Columns
56
-
57
- The Columns component allows you draw content into scalable columns. All you
58
- need to do is define the number of columns and the component will take care of
59
- the rest.
60
-
61
- ### Simple Columns
62
-
63
- To create simple columns, use the `columns` method. Within the block, call
64
- the #column method to create a new column.
65
-
66
- ```ruby
67
- columns do
68
- column do
69
- span "Column #1"
70
- end
71
-
72
- column do
73
- span "Column #2"
74
- end
75
- end
76
- ```
77
-
78
- ### Spanning Multiple Columns
79
-
80
- To create columns that have multiple spans, pass the :span option to the column
81
- method.
82
-
83
- ```ruby
84
- columns do
85
- column span: 2 do
86
- span "Column # 1"
87
- end
88
- column do
89
- span "Column # 2"
90
- end
91
- end
92
- ```
93
-
94
- By default, each column spans 1 column. The above layout would have 2 columns,
95
- the first being twice as large as the second.
96
-
97
- ### Custom Column Widths
98
-
99
- Active Admin uses a fluid width layout, causing column width to be defined
100
- using percentages. Due to using this style of layout, columns can shrink or
101
- expand past points that may not be desirable. To overcome this issue,
102
- columns provide `:max_width` and `:min_width` options.
103
-
104
- ```ruby
105
- columns do
106
- column max_width: "200px", min_width: "100px" do
107
- span "Column # 1"
108
- end
109
- column do
110
- span "Column # 2"
111
- end
112
- end
113
- ```
114
-
115
- In the above example, the first column will not grow larger than 200px and will
116
- not shrink less than 100px.
117
-
118
- ### Custom Column Class
119
-
120
- Pass the `:class` option to the column method to set a custom class.
121
-
122
- ```ruby
123
- columns do
124
- column class: "important" do
125
- span "Column # 1"
126
- end
127
- column do
128
- span "Column # 2"
129
- end
130
- end
131
- ```
132
-
133
- ## Table For
134
-
135
- Table For provides the ability to create tables like those present
136
- in `index_as_table`. It takes a collection and a hash of options and then
137
- uses `column` to build the fields to show with the table.
138
-
139
- ```ruby
140
- table_for order.payments do
141
- column(:payment_type) { |payment| payment.payment_type.titleize }
142
- column "Received On", :created_at
143
- column "Details & Notes", :payment_details
144
- column "Amount", :amount_in_dollars
145
- end
146
- ```
147
-
148
- The `column` method can take a title as its first argument and data
149
- (`:your_method`) as its second (or first if no title provided). Column also
150
- takes a block.
151
-
152
- ### Internationalization
153
-
154
- To customize the internationalization for the component, specify a resource to
155
- use for translations via the `i18n` named parameter. This is only necessary for
156
- non-`ActiveRecord::Relation` collections:
157
-
158
- ```ruby
159
- table_for payments, i18n: Payment do
160
- # ...
161
- end
162
- ```
163
-
164
- ## Status tag
165
-
166
- Status tags provide convenient syntactic sugar for styling items that have
167
- status. A common example of where the status tag could be useful is for orders
168
- that are complete or in progress. `status_tag` takes a status, like
169
- "In Progress", and a hash of options. The status_tag will generate HTML markup
170
- that Active Admin CSS uses in styling.
171
-
172
- ```ruby
173
- status_tag 'In Progress'
174
- # => <span class='status_tag in_progress'>In Progress</span>
175
-
176
- status_tag 'active', class: 'important', id: 'status_123', label: 'on'
177
- # => <span class='status_tag active important' id='status_123'>on</span>
178
- ```
179
-
180
- When providing a `true` or `false` value, the `status_tag` will display "Yes"
181
- or "No". This can be configured through the `"en.active_admin.status_tag"`
182
- locale.
183
-
184
- ```ruby
185
- status_tag true
186
- # => <span class='status_tag yes'>Yes</span>
187
- ```
188
-
189
- In the case that a boolean field is `nil`, it will display "No" as a default.
190
- But using the `"en.active_admin.status_tag.unset"` locale key, it can be
191
- configured to display something else.
192
-
193
- ## Tabs
194
-
195
- The Tabs component is helpful for saving page real estate. The first tab will be
196
- the one open when the page initially loads and the rest hidden. You can click
197
- each tab to toggle back and forth between them. Arbre supports unlimited number
198
- of tabs.
199
-
200
- ```ruby
201
- tabs do
202
- tab :active do
203
- table_for orders.active do
204
- ...
205
- end
206
- end
207
-
208
- tab :inactive do
209
- table_for orders.inactive do
210
- ...
211
- end
212
- end
213
- end
214
- ```