activeadmin 2.9.0 → 2.14.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +230 -1
- data/CONTRIBUTING.md +4 -5
- data/README.md +2 -2
- data/app/assets/javascripts/active_admin/base.js +13 -9
- data/app/assets/stylesheets/active_admin/_base.scss +53 -37
- data/app/assets/stylesheets/active_admin/_forms.scss +1 -11
- data/app/assets/stylesheets/active_admin/_normalize.scss +25 -123
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -0
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
- data/app/javascript/active_admin/initializers/has-many.js +4 -1
- data/app/views/active_admin/devise/shared/_links.erb +1 -1
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +5 -4
- data/config/locales/fr.yml +3 -3
- data/config/locales/ko.yml +1 -1
- data/config/locales/nl.yml +1 -1
- data/config/locales/ro.yml +3 -2
- data/config/locales/vi.yml +34 -7
- data/config/locales/zh-CN.yml +36 -17
- data/lib/active_admin/abstract_view_factory.rb +1 -0
- data/lib/active_admin/application.rb +10 -10
- data/lib/active_admin/application_settings.rb +1 -0
- data/lib/active_admin/asset_registration.rb +4 -3
- data/lib/active_admin/authorization_adapter.rb +3 -0
- data/lib/active_admin/base_controller/authorization.rb +4 -3
- data/lib/active_admin/base_controller/menu.rb +1 -0
- data/lib/active_admin/base_controller.rb +2 -1
- data/lib/active_admin/batch_actions/controller.rb +1 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +1 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +1 -0
- data/lib/active_admin/batch_actions.rb +1 -0
- data/lib/active_admin/callbacks.rb +1 -0
- data/lib/active_admin/cancan_adapter.rb +1 -0
- data/lib/active_admin/collection_decorator.rb +1 -0
- data/lib/active_admin/component.rb +1 -0
- data/lib/active_admin/controller_action.rb +1 -0
- data/lib/active_admin/csv_builder.rb +5 -18
- data/lib/active_admin/dependency.rb +1 -4
- data/lib/active_admin/deprecation.rb +1 -0
- data/lib/active_admin/devise.rb +11 -0
- data/lib/active_admin/dsl.rb +1 -0
- data/lib/active_admin/dynamic_setting.rb +1 -0
- data/lib/active_admin/dynamic_settings_node.rb +1 -0
- data/lib/active_admin/engine.rb +4 -2
- data/lib/active_admin/error.rb +1 -0
- data/lib/active_admin/filters/active.rb +1 -0
- data/lib/active_admin/filters/active_filter.rb +1 -0
- data/lib/active_admin/filters/active_sidebar.rb +2 -28
- data/lib/active_admin/filters/dsl.rb +1 -0
- data/lib/active_admin/filters/forms.rb +1 -0
- data/lib/active_admin/filters/formtastic_addons.rb +1 -0
- data/lib/active_admin/filters/resource_extension.rb +5 -4
- data/lib/active_admin/filters.rb +1 -0
- data/lib/active_admin/form_builder.rb +1 -0
- data/lib/active_admin/generators/boilerplate.rb +1 -0
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/i18n.rb +1 -0
- data/lib/active_admin/helpers/optional_display.rb +1 -0
- data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +1 -0
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +1 -0
- data/lib/active_admin/inputs/filters/base.rb +1 -0
- data/lib/active_admin/inputs/filters/boolean_input.rb +1 -0
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -0
- data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +1 -0
- data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
- data/lib/active_admin/inputs/filters/select_input.rb +1 -0
- data/lib/active_admin/inputs/filters/string_input.rb +1 -0
- data/lib/active_admin/inputs/filters/text_input.rb +1 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +1 -0
- data/lib/active_admin/localizers.rb +1 -0
- data/lib/active_admin/menu.rb +1 -0
- data/lib/active_admin/menu_collection.rb +1 -0
- data/lib/active_admin/menu_item.rb +1 -0
- data/lib/active_admin/namespace.rb +3 -2
- data/lib/active_admin/namespace_settings.rb +1 -0
- data/lib/active_admin/order_clause.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +2 -1
- data/lib/active_admin/orm/active_record/comments/views.rb +1 -0
- data/lib/active_admin/orm/active_record/comments.rb +9 -8
- data/lib/active_admin/orm/active_record.rb +1 -0
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +1 -0
- data/lib/active_admin/page_controller.rb +1 -0
- data/lib/active_admin/page_dsl.rb +1 -0
- data/lib/active_admin/page_presenter.rb +1 -0
- data/lib/active_admin/pundit_adapter.rb +55 -13
- data/lib/active_admin/resource/action_items.rb +3 -2
- data/lib/active_admin/resource/attributes.rb +1 -0
- data/lib/active_admin/resource/belongs_to.rb +1 -0
- data/lib/active_admin/resource/controllers.rb +1 -0
- data/lib/active_admin/resource/includes.rb +1 -0
- data/lib/active_admin/resource/menu.rb +1 -0
- data/lib/active_admin/resource/model.rb +1 -0
- data/lib/active_admin/resource/naming.rb +1 -0
- data/lib/active_admin/resource/ordering.rb +1 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -0
- data/lib/active_admin/resource/pagination.rb +1 -0
- data/lib/active_admin/resource/routes.rb +1 -0
- data/lib/active_admin/resource/scope_to.rb +1 -0
- data/lib/active_admin/resource/scopes.rb +1 -0
- data/lib/active_admin/resource/sidebars.rb +1 -0
- data/lib/active_admin/resource.rb +3 -2
- data/lib/active_admin/resource_collection.rb +1 -0
- data/lib/active_admin/resource_controller/action_builder.rb +1 -0
- data/lib/active_admin/resource_controller/data_access.rb +30 -4
- data/lib/active_admin/resource_controller/decorators.rb +1 -0
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -0
- data/lib/active_admin/resource_controller/sidebars.rb +1 -0
- data/lib/active_admin/resource_controller/streaming.rb +3 -2
- data/lib/active_admin/resource_controller.rb +1 -0
- data/lib/active_admin/resource_dsl.rb +7 -21
- data/lib/active_admin/router.rb +1 -0
- data/lib/active_admin/scope.rb +1 -0
- data/lib/active_admin/settings_node.rb +1 -0
- data/lib/active_admin/sidebar_section.rb +1 -0
- data/lib/active_admin/version.rb +2 -1
- data/lib/active_admin/view_factory.rb +1 -0
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +1 -0
- data/lib/active_admin/view_helpers/display_helper.rb +11 -3
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
- data/lib/active_admin/view_helpers/fields_for.rb +1 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
- data/lib/active_admin/view_helpers/form_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
- data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
- data/lib/active_admin/view_helpers/title_helper.rb +1 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
- data/lib/active_admin/view_helpers.rb +1 -0
- data/lib/active_admin/views/action_items.rb +1 -0
- data/lib/active_admin/views/components/active_admin_form.rb +2 -1
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
- data/lib/active_admin/views/components/attributes_table.rb +1 -0
- data/lib/active_admin/views/components/blank_slate.rb +1 -0
- data/lib/active_admin/views/components/columns.rb +1 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +3 -5
- data/lib/active_admin/views/components/index_list.rb +1 -0
- data/lib/active_admin/views/components/menu.rb +1 -0
- data/lib/active_admin/views/components/menu_item.rb +1 -0
- data/lib/active_admin/views/components/paginated_collection.rb +1 -0
- data/lib/active_admin/views/components/panel.rb +1 -0
- data/lib/active_admin/views/components/scopes.rb +1 -0
- data/lib/active_admin/views/components/sidebar.rb +1 -0
- data/lib/active_admin/views/components/sidebar_section.rb +1 -0
- data/lib/active_admin/views/components/site_title.rb +1 -0
- data/lib/active_admin/views/components/status_tag.rb +1 -0
- data/lib/active_admin/views/components/table_for.rb +1 -0
- data/lib/active_admin/views/components/tabs.rb +1 -0
- data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
- data/lib/active_admin/views/footer.rb +1 -0
- data/lib/active_admin/views/header.rb +1 -0
- data/lib/active_admin/views/index_as_block.rb +1 -0
- data/lib/active_admin/views/index_as_blog.rb +1 -0
- data/lib/active_admin/views/index_as_grid.rb +1 -0
- data/lib/active_admin/views/index_as_table.rb +2 -1
- data/lib/active_admin/views/pages/base.rb +8 -4
- data/lib/active_admin/views/pages/form.rb +1 -0
- data/lib/active_admin/views/pages/index.rb +2 -1
- data/lib/active_admin/views/pages/layout.rb +1 -0
- data/lib/active_admin/views/pages/page.rb +1 -0
- data/lib/active_admin/views/pages/show.rb +1 -0
- data/lib/active_admin/views/tabbed_navigation.rb +1 -0
- data/lib/active_admin/views/title_bar.rb +1 -0
- data/lib/active_admin/views.rb +1 -0
- data/lib/active_admin.rb +2 -1
- data/lib/activeadmin.rb +1 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +1 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +1 -0
- data/lib/generators/active_admin/install/install_generator.rb +1 -0
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +17 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
- data/lib/generators/active_admin/page/page_generator.rb +1 -0
- data/lib/generators/active_admin/page/templates/page.rb +1 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +1 -0
- data/lib/ransack_ext.rb +1 -0
- metadata +21 -59
- 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 -237
- 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 -3
- data/docs/Gemfile.lock +0 -259
- 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/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
data/config/locales/zh-CN.yml
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
"zh-CN":
|
|
2
|
+
activerecord:
|
|
3
|
+
models:
|
|
4
|
+
comment:
|
|
5
|
+
one: "评论"
|
|
6
|
+
other: "评论"
|
|
7
|
+
active_admin/comment:
|
|
8
|
+
one: "评论"
|
|
9
|
+
other: "评论"
|
|
10
|
+
attributes:
|
|
11
|
+
active_admin/comment:
|
|
12
|
+
author_type: "作者类型"
|
|
13
|
+
body: "内容"
|
|
14
|
+
created_at: "创建"
|
|
15
|
+
namespace: "Namespace"
|
|
16
|
+
resource_type: "Resource 类型"
|
|
17
|
+
updated_at: "更新"
|
|
2
18
|
active_admin:
|
|
3
19
|
dashboard: "控制面板"
|
|
4
20
|
dashboard_welcome:
|
|
@@ -8,8 +24,8 @@
|
|
|
8
24
|
edit: "编辑"
|
|
9
25
|
delete: "删除"
|
|
10
26
|
delete_confirmation: "确定删除?"
|
|
11
|
-
create_another: "
|
|
12
|
-
new_model: "
|
|
27
|
+
create_another: "新增另一个%{model}"
|
|
28
|
+
new_model: "新增%{model}"
|
|
13
29
|
edit_model: "编辑%{model}"
|
|
14
30
|
delete_model: "删除%{model}"
|
|
15
31
|
details: "%{model}详情"
|
|
@@ -17,10 +33,11 @@
|
|
|
17
33
|
empty: "未定义"
|
|
18
34
|
previous: "上一个"
|
|
19
35
|
next: "下一个"
|
|
20
|
-
download: "
|
|
21
|
-
has_many_new: "
|
|
36
|
+
download: "下载:"
|
|
37
|
+
has_many_new: "新增一个%{model}"
|
|
22
38
|
has_many_delete: "删除"
|
|
23
39
|
has_many_remove: "清除"
|
|
40
|
+
move: "移动"
|
|
24
41
|
filters:
|
|
25
42
|
buttons:
|
|
26
43
|
filter: "过滤"
|
|
@@ -28,26 +45,28 @@
|
|
|
28
45
|
predicates:
|
|
29
46
|
contains: "包含"
|
|
30
47
|
equals: "等于"
|
|
31
|
-
starts_with: "
|
|
32
|
-
ends_with: "
|
|
48
|
+
starts_with: "始于"
|
|
49
|
+
ends_with: "止于"
|
|
33
50
|
greater_than: "大于"
|
|
34
51
|
less_than: "小于"
|
|
35
52
|
gteq_datetime: "大于等于"
|
|
36
53
|
lteq_datetime: "小于等于"
|
|
37
54
|
from: "起"
|
|
38
55
|
to: "止"
|
|
56
|
+
scopes:
|
|
57
|
+
all: "所有"
|
|
39
58
|
search_status:
|
|
40
59
|
headline: "搜索条件:"
|
|
41
|
-
current_scope: "
|
|
60
|
+
current_scope: "范围:"
|
|
42
61
|
current_filters: "过滤条件:"
|
|
43
62
|
no_current_filters: "无"
|
|
44
63
|
status_tag:
|
|
45
64
|
"yes": "是"
|
|
46
65
|
"no": "否"
|
|
47
66
|
"unset": "否"
|
|
48
|
-
main_content: "请执行 %{model}#main_content
|
|
67
|
+
main_content: "请执行 %{model}#main_content 来显示内容。"
|
|
49
68
|
logout: "退出"
|
|
50
|
-
powered_by: "
|
|
69
|
+
powered_by: "构建程序为 %{active_admin} %{version}"
|
|
51
70
|
sidebars:
|
|
52
71
|
filters: "所有条件"
|
|
53
72
|
search_status: "搜索条件"
|
|
@@ -63,14 +82,14 @@
|
|
|
63
82
|
other: "条目"
|
|
64
83
|
any: "任何"
|
|
65
84
|
blank_slate:
|
|
66
|
-
content: "暂时还没有%{resource_name}
|
|
67
|
-
link: "
|
|
85
|
+
content: "暂时还没有%{resource_name}。"
|
|
86
|
+
link: "新增一个"
|
|
68
87
|
dropdown_actions:
|
|
69
|
-
button_label: "
|
|
88
|
+
button_label: "操作"
|
|
70
89
|
batch_actions:
|
|
71
90
|
button_label: "批处理"
|
|
72
|
-
default_confirmation: "
|
|
73
|
-
delete_confirmation: "你确定要删除这些%{plural_model}
|
|
91
|
+
default_confirmation: "你确定要这样做?"
|
|
92
|
+
delete_confirmation: "你确定要删除这些%{plural_model}?"
|
|
74
93
|
succesfully_destroyed:
|
|
75
94
|
one: "成功删除 1 %{model}"
|
|
76
95
|
other: "成功删除 %{count} %{plural_model}"
|
|
@@ -92,7 +111,7 @@
|
|
|
92
111
|
author_missing: "匿名"
|
|
93
112
|
title_content: "(%{count})条评论"
|
|
94
113
|
errors:
|
|
95
|
-
empty_text: "
|
|
114
|
+
empty_text: "评论保存失败,内空不能为空。"
|
|
96
115
|
devise:
|
|
97
116
|
username:
|
|
98
117
|
title: "用户名"
|
|
@@ -121,8 +140,8 @@
|
|
|
121
140
|
title: "重新发送送解锁命令"
|
|
122
141
|
submit: "重新发送送解锁命令"
|
|
123
142
|
resend_confirmation_instructions:
|
|
124
|
-
title: "
|
|
125
|
-
submit: "
|
|
143
|
+
title: " 重新发送确认说明"
|
|
144
|
+
submit: " 重新发送确认说明"
|
|
126
145
|
links:
|
|
127
146
|
sign_up: "注册"
|
|
128
147
|
sign_in: "登录"
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require "active_admin/router"
|
|
2
3
|
require "active_admin/application_settings"
|
|
3
4
|
require "active_admin/namespace_settings"
|
|
@@ -75,7 +76,7 @@ module ActiveAdmin
|
|
|
75
76
|
|
|
76
77
|
namespace = namespaces[name.to_sym] ||= begin
|
|
77
78
|
namespace = Namespace.new(self, name)
|
|
78
|
-
ActiveSupport::Notifications.
|
|
79
|
+
ActiveSupport::Notifications.instrument ActiveAdmin::Namespace::RegisterEvent, { active_admin_namespace: namespace }
|
|
79
80
|
namespace
|
|
80
81
|
end
|
|
81
82
|
|
|
@@ -111,10 +112,10 @@ module ActiveAdmin
|
|
|
111
112
|
# To reload everything simply call `ActiveAdmin.unload!`
|
|
112
113
|
def load!
|
|
113
114
|
unless loaded?
|
|
114
|
-
ActiveSupport::Notifications.
|
|
115
|
+
ActiveSupport::Notifications.instrument BeforeLoadEvent, { active_admin_application: self } # before_load hook
|
|
115
116
|
files.each { |file| load file } # load files
|
|
116
117
|
namespace(default_namespace) # init AA resources
|
|
117
|
-
ActiveSupport::Notifications.
|
|
118
|
+
ActiveSupport::Notifications.instrument AfterLoadEvent, { active_admin_application: self } # after_load hook
|
|
118
119
|
@@loaded = true
|
|
119
120
|
end
|
|
120
121
|
end
|
|
@@ -125,7 +126,7 @@ module ActiveAdmin
|
|
|
125
126
|
|
|
126
127
|
# Returns ALL the files to be loaded
|
|
127
128
|
def files
|
|
128
|
-
load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }
|
|
129
|
+
load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"].sort }
|
|
129
130
|
end
|
|
130
131
|
|
|
131
132
|
# Creates all the necessary routes for the ActiveAdmin configurations
|
|
@@ -144,13 +145,13 @@ module ActiveAdmin
|
|
|
144
145
|
|
|
145
146
|
# Adds before, around and after filters to all controllers.
|
|
146
147
|
# Example usage:
|
|
147
|
-
# ActiveAdmin.
|
|
148
|
+
# ActiveAdmin.before_action :authenticate_admin!
|
|
148
149
|
#
|
|
149
150
|
AbstractController::Callbacks::ClassMethods.public_instance_methods.
|
|
150
|
-
select { |m| m.match(/
|
|
151
|
+
select { |m| m.match(/_action\z/) }.each do |name|
|
|
151
152
|
define_method name do |*args, &block|
|
|
152
|
-
|
|
153
|
-
|
|
153
|
+
ActiveSupport.on_load(:active_admin_controller) do
|
|
154
|
+
public_send name, *args, &block
|
|
154
155
|
end
|
|
155
156
|
end
|
|
156
157
|
end
|
|
@@ -164,8 +165,7 @@ module ActiveAdmin
|
|
|
164
165
|
private
|
|
165
166
|
|
|
166
167
|
def register_default_assets
|
|
167
|
-
register_stylesheet "active_admin.css", media: "
|
|
168
|
-
register_stylesheet "active_admin/print.css", media: "print"
|
|
168
|
+
register_stylesheet "active_admin.css", media: "all"
|
|
169
169
|
register_javascript "active_admin.js"
|
|
170
170
|
end
|
|
171
171
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module AssetRegistration
|
|
3
4
|
|
|
@@ -13,12 +14,12 @@ module ActiveAdmin
|
|
|
13
14
|
stylesheets.clear
|
|
14
15
|
end
|
|
15
16
|
|
|
16
|
-
def register_javascript(
|
|
17
|
-
javascripts
|
|
17
|
+
def register_javascript(path, options = {})
|
|
18
|
+
javascripts[path] = options
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
def javascripts
|
|
21
|
-
@javascripts ||=
|
|
22
|
+
@javascripts ||= {}
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
def clear_javascripts!
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
class BaseController < ::InheritedResources::Base
|
|
3
4
|
module Authorization
|
|
@@ -6,9 +7,9 @@ module ActiveAdmin
|
|
|
6
7
|
ACTIONS_DICTIONARY = {
|
|
7
8
|
index: ActiveAdmin::Authorization::READ,
|
|
8
9
|
show: ActiveAdmin::Authorization::READ,
|
|
9
|
-
new: ActiveAdmin::Authorization::
|
|
10
|
+
new: ActiveAdmin::Authorization::NEW,
|
|
10
11
|
create: ActiveAdmin::Authorization::CREATE,
|
|
11
|
-
edit: ActiveAdmin::Authorization::
|
|
12
|
+
edit: ActiveAdmin::Authorization::EDIT,
|
|
12
13
|
update: ActiveAdmin::Authorization::UPDATE,
|
|
13
14
|
destroy: ActiveAdmin::Authorization::DESTROY
|
|
14
15
|
}
|
|
@@ -81,7 +82,7 @@ module ActiveAdmin
|
|
|
81
82
|
def active_admin_authorization_adapter
|
|
82
83
|
adapter = active_admin_namespace.authorization_adapter
|
|
83
84
|
if adapter.is_a? String
|
|
84
|
-
|
|
85
|
+
adapter.constantize
|
|
85
86
|
else
|
|
86
87
|
adapter
|
|
87
88
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require "active_admin/base_controller/authorization"
|
|
2
3
|
require "active_admin/base_controller/menu"
|
|
3
4
|
|
|
@@ -6,7 +7,6 @@ module ActiveAdmin
|
|
|
6
7
|
# It implements ActiveAdmin controllers core features.
|
|
7
8
|
class BaseController < ::InheritedResources::Base
|
|
8
9
|
helper ::ActiveAdmin::ViewHelpers
|
|
9
|
-
helper_method :env
|
|
10
10
|
|
|
11
11
|
layout :determine_active_admin_layout
|
|
12
12
|
|
|
@@ -77,5 +77,6 @@ module ActiveAdmin
|
|
|
77
77
|
{ controller: controller, action: action }
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
+
ActiveSupport.run_load_hooks(:active_admin_controller, self)
|
|
80
81
|
end
|
|
81
82
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
# CSVBuilder stores CSV configuration
|
|
3
4
|
#
|
|
@@ -42,11 +43,10 @@ module ActiveAdmin
|
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
def build(controller, csv)
|
|
45
|
-
@collection = controller.send :find_collection, except: :pagination
|
|
46
46
|
columns = exec_columns controller.view_context
|
|
47
|
-
bom = options
|
|
47
|
+
bom = options[:byte_order_mark]
|
|
48
48
|
column_names = options.delete(:column_names) { true }
|
|
49
|
-
csv_options = options.except :encoding_options, :humanize_name
|
|
49
|
+
csv_options = options.except :encoding_options, :humanize_name, :byte_order_mark
|
|
50
50
|
|
|
51
51
|
csv << bom if bom
|
|
52
52
|
|
|
@@ -54,13 +54,8 @@ module ActiveAdmin
|
|
|
54
54
|
csv << CSV.generate_line(columns.map { |c| encode c.name, options }, **csv_options)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
(
|
|
59
|
-
paginated_collection(page).each do |resource|
|
|
60
|
-
resource = controller.send :apply_decorator, resource
|
|
61
|
-
csv << CSV.generate_line(build_row(resource, columns, options), **csv_options)
|
|
62
|
-
end
|
|
63
|
-
end
|
|
57
|
+
controller.send(:in_paginated_batches) do |resource|
|
|
58
|
+
csv << CSV.generate_line(build_row(resource, columns, options), **csv_options)
|
|
64
59
|
end
|
|
65
60
|
|
|
66
61
|
csv
|
|
@@ -124,13 +119,5 @@ module ActiveAdmin
|
|
|
124
119
|
def column_transitive_options
|
|
125
120
|
@column_transitive_options ||= @options.slice(*COLUMN_TRANSITIVE_OPTIONS)
|
|
126
121
|
end
|
|
127
|
-
|
|
128
|
-
def paginated_collection(page_no = 1)
|
|
129
|
-
@collection.public_send(Kaminari.config.page_method_name, page_no).per(batch_size)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def batch_size
|
|
133
|
-
1000
|
|
134
|
-
end
|
|
135
122
|
end
|
|
136
123
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Dependency
|
|
3
4
|
module Requirements
|
|
@@ -55,10 +56,6 @@ module ActiveAdmin
|
|
|
55
56
|
Matcher.new name.to_s
|
|
56
57
|
end
|
|
57
58
|
|
|
58
|
-
def self.supports_zeitwerk?
|
|
59
|
-
rails >= "6.0.0.beta3" && RUBY_ENGINE != "jruby"
|
|
60
|
-
end
|
|
61
|
-
|
|
62
59
|
class Matcher
|
|
63
60
|
attr_reader :name
|
|
64
61
|
|
data/lib/active_admin/devise.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
ActiveAdmin::Dependency.devise! ActiveAdmin::Dependency::Requirements::DEVISE
|
|
2
3
|
|
|
3
4
|
require "devise"
|
|
@@ -52,22 +53,32 @@ module ActiveAdmin
|
|
|
52
53
|
|
|
53
54
|
class SessionsController < ::Devise::SessionsController
|
|
54
55
|
include ::ActiveAdmin::Devise::Controller
|
|
56
|
+
|
|
57
|
+
ActiveSupport.run_load_hooks(:active_admin_controller, self)
|
|
55
58
|
end
|
|
56
59
|
|
|
57
60
|
class PasswordsController < ::Devise::PasswordsController
|
|
58
61
|
include ::ActiveAdmin::Devise::Controller
|
|
62
|
+
|
|
63
|
+
ActiveSupport.run_load_hooks(:active_admin_controller, self)
|
|
59
64
|
end
|
|
60
65
|
|
|
61
66
|
class UnlocksController < ::Devise::UnlocksController
|
|
62
67
|
include ::ActiveAdmin::Devise::Controller
|
|
68
|
+
|
|
69
|
+
ActiveSupport.run_load_hooks(:active_admin_controller, self)
|
|
63
70
|
end
|
|
64
71
|
|
|
65
72
|
class RegistrationsController < ::Devise::RegistrationsController
|
|
66
73
|
include ::ActiveAdmin::Devise::Controller
|
|
74
|
+
|
|
75
|
+
ActiveSupport.run_load_hooks(:active_admin_controller, self)
|
|
67
76
|
end
|
|
68
77
|
|
|
69
78
|
class ConfirmationsController < ::Devise::ConfirmationsController
|
|
70
79
|
include ::ActiveAdmin::Devise::Controller
|
|
80
|
+
|
|
81
|
+
ActiveSupport.run_load_hooks(:active_admin_controller, self)
|
|
71
82
|
end
|
|
72
83
|
|
|
73
84
|
def self.controllers_for_filters
|
data/lib/active_admin/dsl.rb
CHANGED
data/lib/active_admin/engine.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
class Engine < ::Rails::Engine
|
|
3
|
-
|
|
4
|
+
# Set default values for app_path and load_paths before running initializers
|
|
5
|
+
initializer "active_admin.load_app_path", before: :load_config_initializers do |app|
|
|
4
6
|
ActiveAdmin::Application.setting :app_path, app.root
|
|
5
7
|
ActiveAdmin::Application.setting :load_paths, [File.expand_path("app/admin", app.root)]
|
|
6
8
|
end
|
|
@@ -10,7 +12,7 @@ module ActiveAdmin
|
|
|
10
12
|
ActiveAdmin.application.stylesheets.each do |path, _|
|
|
11
13
|
app.config.assets.precompile << path
|
|
12
14
|
end
|
|
13
|
-
ActiveAdmin.application.javascripts.each do |path|
|
|
15
|
+
ActiveAdmin.application.javascripts.each do |path, _|
|
|
14
16
|
app.config.assets.precompile << path
|
|
15
17
|
end
|
|
16
18
|
end
|
data/lib/active_admin/error.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require "active_admin/filters/active"
|
|
2
3
|
|
|
3
4
|
module ActiveAdmin
|
|
@@ -9,34 +10,7 @@ module ActiveAdmin
|
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def block
|
|
12
|
-
->
|
|
13
|
-
active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
|
|
14
|
-
span do
|
|
15
|
-
if current_scope
|
|
16
|
-
h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
|
|
17
|
-
b scope_name(current_scope), class: "current_scope_name", style: "display: inline"
|
|
18
|
-
end
|
|
19
|
-
div style: "margin-top: 10px" do
|
|
20
|
-
h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
|
|
21
|
-
ul do
|
|
22
|
-
if active_filters.filters.blank?
|
|
23
|
-
li I18n.t("active_admin.search_status.no_current_filters")
|
|
24
|
-
else
|
|
25
|
-
active_filters.filters.each do |filter|
|
|
26
|
-
li filter.html_options do
|
|
27
|
-
span do
|
|
28
|
-
text_node filter.label
|
|
29
|
-
end
|
|
30
|
-
b do
|
|
31
|
-
text_node to_sentence(filter.values.map { |v| pretty_format(v) })
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
13
|
+
-> { active_filters_sidebar_content }
|
|
40
14
|
end
|
|
41
15
|
|
|
42
16
|
def title
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Filters
|
|
3
4
|
|
|
4
5
|
class Disabled < RuntimeError
|
|
5
|
-
def initialize
|
|
6
|
-
super "
|
|
6
|
+
def initialize(action)
|
|
7
|
+
super "Cannot #{action} a filter when filters are disabled. Enable filters with 'config.filters = true'"
|
|
7
8
|
end
|
|
8
9
|
end
|
|
9
10
|
|
|
@@ -60,7 +61,7 @@ module ActiveAdmin
|
|
|
60
61
|
#
|
|
61
62
|
# @param [Symbol] attributes The attributes to not filter on
|
|
62
63
|
def remove_filter(*attributes)
|
|
63
|
-
raise Disabled unless filters_enabled?
|
|
64
|
+
raise Disabled, "remove" unless filters_enabled?
|
|
64
65
|
|
|
65
66
|
attributes.each { |attribute| (@filters_to_remove ||= []) << attribute.to_sym }
|
|
66
67
|
end
|
|
@@ -72,7 +73,7 @@ module ActiveAdmin
|
|
|
72
73
|
# @param [Hash] options The set of options that are passed through to
|
|
73
74
|
# ransack for the field definition.
|
|
74
75
|
def add_filter(attribute, options = {})
|
|
75
|
-
raise Disabled unless filters_enabled?
|
|
76
|
+
raise Disabled, "add" unless filters_enabled?
|
|
76
77
|
|
|
77
78
|
(@filters ||= {})[attribute.to_sym] = options
|
|
78
79
|
end
|
data/lib/active_admin/filters.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module ActiveAdmin
|
|
2
3
|
module Helpers
|
|
3
4
|
module Collection
|
|
@@ -5,6 +6,7 @@ module ActiveAdmin
|
|
|
5
6
|
# 2. correctly handles the Hash returned when `group by` is used
|
|
6
7
|
def collection_size(c = collection)
|
|
7
8
|
return c.count if c.is_a?(Array)
|
|
9
|
+
return c.length if c.limit_value
|
|
8
10
|
|
|
9
11
|
c = c.except :select, :order
|
|
10
12
|
|