activeadmin 1.4.2 → 2.9.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 +501 -157
- data/CONTRIBUTING.md +57 -72
- data/README.md +47 -14
- data/app/assets/javascripts/active_admin/base.js +517 -0
- data/app/assets/stylesheets/active_admin/_base.scss +29 -29
- data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
- data/app/assets/stylesheets/active_admin/_header.scss +40 -8
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
- data/app/assets/stylesheets/active_admin/print.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/javascript/active_admin/base.js +28 -0
- data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
- data/app/javascript/active_admin/ext/jquery.js +9 -0
- data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/datepicker.js +16 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/javascript/active_admin/initializers/has-many.js +95 -0
- data/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/tabs.js +6 -0
- data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
- data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
- data/app/javascript/active_admin/lib/utils.js +40 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +16 -6
- data/config/locales/ar.yml +9 -8
- data/config/locales/az.yml +138 -0
- data/config/locales/bg.yml +1 -1
- data/config/locales/bs.yml +1 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de-CH.yml +1 -0
- data/config/locales/de.yml +19 -0
- data/config/locales/el.yml +1 -0
- data/config/locales/en-CA.yml +4 -3
- data/config/locales/en-GB.yml +4 -3
- data/config/locales/en.yml +4 -3
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +3 -1
- data/config/locales/es.yml +6 -5
- data/config/locales/fa.yml +1 -0
- data/config/locales/fi.yml +1 -0
- data/config/locales/fr.yml +6 -5
- data/config/locales/he.yml +1 -1
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +5 -0
- data/config/locales/id.yml +1 -0
- data/config/locales/it.yml +19 -0
- data/config/locales/ja.yml +4 -3
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +3 -2
- data/config/locales/lv.yml +3 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +1 -0
- data/config/locales/nl.yml +1 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/pt-PT.yml +1 -0
- data/config/locales/ro.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/config/locales/sk.yml +60 -0
- data/config/locales/sv-SE.yml +1 -0
- data/config/locales/tr.yml +1 -0
- data/config/locales/uk.yml +3 -0
- data/config/locales/vi.yml +7 -5
- data/config/locales/zh-CN.yml +1 -0
- data/config/locales/zh-TW.yml +1 -0
- data/docs/0-installation.md +28 -4
- data/docs/1-general-configuration.md +20 -0
- data/docs/11-decorators.md +16 -5
- data/docs/12-arbre-components.md +13 -0
- data/docs/13-authorization-adapter.md +6 -6
- data/docs/2-resource-customization.md +11 -2
- data/docs/3-index-pages.md +1 -1
- data/docs/3-index-pages/index-as-table.md +7 -0
- data/docs/5-forms.md +6 -1
- data/docs/6-show-pages.md +12 -0
- data/docs/9-batch-actions.md +2 -2
- data/docs/CNAME +1 -1
- data/docs/Gemfile +2 -3
- data/docs/Gemfile.lock +126 -116
- data/docs/_config.yml +2 -0
- data/docs/_includes/top-menu.html +2 -2
- data/docs/documentation.md +1 -1
- data/docs/index.html +110 -9
- data/docs/stylesheets/main.css +29 -0
- data/lib/active_admin.rb +67 -63
- data/lib/active_admin/application.rb +20 -27
- data/lib/active_admin/application_settings.rb +6 -3
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/authorization_adapter.rb +3 -3
- data/lib/active_admin/base_controller.rb +10 -10
- data/lib/active_admin/base_controller/authorization.rb +15 -15
- data/lib/active_admin/batch_actions/controller.rb +5 -5
- data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/cancan_adapter.rb +1 -1
- data/lib/active_admin/collection_decorator.rb +31 -0
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +14 -9
- data/lib/active_admin/dependency.rb +13 -85
- data/lib/active_admin/devise.rb +5 -5
- data/lib/active_admin/dsl.rb +2 -9
- data/lib/active_admin/dynamic_settings_node.rb +2 -2
- data/lib/active_admin/engine.rb +10 -8
- data/lib/active_admin/error.rb +4 -4
- data/lib/active_admin/filters.rb +7 -7
- data/lib/active_admin/filters/active.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +10 -10
- data/lib/active_admin/filters/active_sidebar.rb +9 -5
- data/lib/active_admin/filters/forms.rb +7 -7
- data/lib/active_admin/filters/formtastic_addons.rb +2 -7
- data/lib/active_admin/filters/resource_extension.rb +28 -4
- data/lib/active_admin/form_builder.rb +26 -22
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/optional_display.rb +2 -2
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +2 -2
- data/lib/active_admin/inputs/filters/base.rb +1 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
- data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
- data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
- data/lib/active_admin/inputs/filters/select_input.rb +2 -2
- data/lib/active_admin/localizers.rb +1 -1
- data/lib/active_admin/localizers/resource_localizer.rb +3 -3
- data/lib/active_admin/menu.rb +6 -3
- data/lib/active_admin/menu_item.rb +7 -7
- data/lib/active_admin/namespace.rb +12 -12
- data/lib/active_admin/namespace_settings.rb +27 -8
- data/lib/active_admin/order_clause.rb +2 -2
- data/lib/active_admin/orm/active_record.rb +1 -1
- data/lib/active_admin/orm/active_record/comments.rb +23 -23
- data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
- data/lib/active_admin/page.rb +1 -1
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +22 -9
- data/lib/active_admin/resource.rb +34 -20
- data/lib/active_admin/resource/action_items.rb +5 -5
- data/lib/active_admin/resource/attributes.rb +8 -5
- data/lib/active_admin/resource/belongs_to.rb +8 -3
- data/lib/active_admin/resource/controllers.rb +1 -1
- data/lib/active_admin/resource/menu.rb +5 -5
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +5 -5
- data/lib/active_admin/resource/routes.rb +25 -14
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +2 -2
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller.rb +13 -10
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/data_access.rb +1 -1
- data/lib/active_admin/resource_controller/decorators.rb +7 -29
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller/streaming.rb +7 -6
- data/lib/active_admin/resource_dsl.rb +11 -9
- data/lib/active_admin/router.rb +3 -2
- data/lib/active_admin/scope.rb +15 -11
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/sidebar_section.rb +3 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +17 -17
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
- data/lib/active_admin/view_helpers/display_helper.rb +16 -7
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
- data/lib/active_admin/view_helpers/fields_for.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +12 -6
- data/lib/active_admin/views/components/attributes_table.rb +8 -8
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
- data/lib/active_admin/views/components/index_list.rb +3 -3
- data/lib/active_admin/views/components/menu.rb +1 -1
- data/lib/active_admin/views/components/menu_item.rb +4 -4
- data/lib/active_admin/views/components/paginated_collection.rb +21 -20
- data/lib/active_admin/views/components/panel.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +7 -5
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/site_title.rb +1 -1
- data/lib/active_admin/views/components/status_tag.rb +13 -26
- data/lib/active_admin/views/components/table_for.rb +20 -19
- data/lib/active_admin/views/components/tabs.rb +13 -4
- data/lib/active_admin/views/footer.rb +3 -2
- data/lib/active_admin/views/header.rb +2 -2
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +1 -1
- data/lib/active_admin/views/index_as_table.rb +27 -19
- data/lib/active_admin/views/pages/base.rb +18 -11
- data/lib/active_admin/views/pages/index.rb +15 -13
- data/lib/active_admin/views/tabbed_navigation.rb +2 -2
- data/lib/active_admin/views/title_bar.rb +1 -1
- data/lib/activeadmin.rb +1 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
- data/lib/generators/active_admin/install/install_generator.rb +18 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
- data/lib/ransack_ext.rb +9 -9
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +108 -127
- data/.circleci/config.yml +0 -467
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -46
- data/.mdlrc +0 -1
- data/.rspec +0 -1
- data/.rspec_parallel +0 -2
- data/.rubocop.yml +0 -94
- data/.simplecov +0 -11
- data/.yardopts +0 -7
- data/Gemfile +0 -10
- data/Gemfile.common +0 -53
- data/Gemfile.lock +0 -431
- data/Rakefile +0 -23
- data/activeadmin.gemspec +0 -32
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/bin/install_chromedriver.sh +0 -17
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -11
- data/cucumber.yml +0 -7
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_42.gemfile.lock +0 -410
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_50.gemfile.lock +0 -424
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_51.gemfile.lock +0 -423
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/bug_report_templates/active_admin_master.rb +0 -111
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/tasks/application_generator.rb +0 -48
- data/tasks/docs.rake +0 -64
- data/tasks/gemfiles.rake +0 -8
- data/tasks/lint.rake +0 -110
- data/tasks/local.rake +0 -27
- data/tasks/test.rake +0 -43
|
@@ -45,13 +45,13 @@ module ActiveAdmin
|
|
|
45
45
|
#
|
|
46
46
|
def initialize(options = {})
|
|
47
47
|
super() # MenuNode
|
|
48
|
-
@label
|
|
49
|
-
@dirty_id
|
|
50
|
-
@url
|
|
51
|
-
@priority
|
|
52
|
-
@html_options
|
|
53
|
-
@should_display = options[:if]
|
|
54
|
-
@parent
|
|
48
|
+
@label = options[:label]
|
|
49
|
+
@dirty_id = options[:id] || options[:label]
|
|
50
|
+
@url = options[:url] || "#"
|
|
51
|
+
@priority = options[:priority] || 10
|
|
52
|
+
@html_options = options[:html_options] || {}
|
|
53
|
+
@should_display = options[:if] || proc { true }
|
|
54
|
+
@parent = options[:parent]
|
|
55
55
|
|
|
56
56
|
yield(self) if block_given? # Builder style syntax
|
|
57
57
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_admin/resource_collection"
|
|
2
2
|
|
|
3
3
|
module ActiveAdmin
|
|
4
4
|
|
|
@@ -31,7 +31,7 @@ module ActiveAdmin
|
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
RegisterEvent =
|
|
34
|
+
RegisterEvent = "active_admin.namespace.register".freeze
|
|
35
35
|
|
|
36
36
|
attr_reader :application, :resources, :menus
|
|
37
37
|
|
|
@@ -149,10 +149,10 @@ module ActiveAdmin
|
|
|
149
149
|
def add_logout_button_to_menu(menu, priority = 20, html_options = {})
|
|
150
150
|
if logout_link_path
|
|
151
151
|
html_options = html_options.reverse_merge(method: logout_link_method || :get)
|
|
152
|
-
menu.add id:
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
152
|
+
menu.add id: "logout", priority: priority, html_options: html_options,
|
|
153
|
+
label: -> { I18n.t "active_admin.logout" },
|
|
154
|
+
url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
|
|
155
|
+
if: :current_active_admin_user?
|
|
156
156
|
end
|
|
157
157
|
end
|
|
158
158
|
|
|
@@ -164,10 +164,10 @@ module ActiveAdmin
|
|
|
164
164
|
#
|
|
165
165
|
def add_current_user_to_menu(menu, priority = 10, html_options = {})
|
|
166
166
|
if current_user_method
|
|
167
|
-
menu.add id:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
menu.add id: "current_user", priority: priority, html_options: html_options,
|
|
168
|
+
label: -> { display_name current_active_admin_user },
|
|
169
|
+
url: -> { auto_url_for(current_active_admin_user) },
|
|
170
|
+
if: :current_active_admin_user?
|
|
171
171
|
end
|
|
172
172
|
end
|
|
173
173
|
|
|
@@ -211,8 +211,8 @@ module ActiveAdmin
|
|
|
211
211
|
|
|
212
212
|
def unload_resources!
|
|
213
213
|
resources.each do |resource|
|
|
214
|
-
parent = (module_name ||
|
|
215
|
-
name
|
|
214
|
+
parent = (module_name || "Object").constantize
|
|
215
|
+
name = resource.controller_name.split("::").last
|
|
216
216
|
parent.send(:remove_const, name) if parent.const_defined?(name, false)
|
|
217
217
|
|
|
218
218
|
# Remove circular references
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_admin/dynamic_settings_node"
|
|
2
2
|
|
|
3
3
|
module ActiveAdmin
|
|
4
4
|
class NamespaceSettings < DynamicSettingsNode
|
|
@@ -17,16 +17,19 @@ module ActiveAdmin
|
|
|
17
17
|
# Set the site title image displayed in the main layout (has precendence over :site_title)
|
|
18
18
|
register :site_title_image, "", :string_symbol_or_proc
|
|
19
19
|
|
|
20
|
+
# Add to the site head
|
|
21
|
+
register :head, "", :string_symbol_or_proc
|
|
22
|
+
|
|
20
23
|
# Set the site footer text (defaults to Powered by ActiveAdmin text with version)
|
|
21
24
|
register :footer, "", :string_symbol_or_proc
|
|
22
25
|
|
|
23
26
|
# Set a favicon
|
|
24
27
|
register :favicon, false
|
|
25
28
|
|
|
26
|
-
# Additional meta tags to place in head of logged in pages
|
|
29
|
+
# Additional meta tags to place in head of logged in pages
|
|
27
30
|
register :meta_tags, {}
|
|
28
31
|
|
|
29
|
-
# Additional meta tags to place in head of logged out pages
|
|
32
|
+
# Additional meta tags to place in head of logged out pages
|
|
30
33
|
register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
|
|
31
34
|
|
|
32
35
|
# The view factory to use to generate all the view classes. Take
|
|
@@ -53,10 +56,10 @@ module ActiveAdmin
|
|
|
53
56
|
# Whether filters are enabled
|
|
54
57
|
register :filters, true
|
|
55
58
|
|
|
56
|
-
# The namespace root
|
|
57
|
-
register :root_to,
|
|
59
|
+
# The namespace root
|
|
60
|
+
register :root_to, "dashboard#index"
|
|
58
61
|
|
|
59
|
-
# Options that
|
|
62
|
+
# Options that are passed to root_to
|
|
60
63
|
register :root_to_options, {}
|
|
61
64
|
|
|
62
65
|
# Options passed to the routes, i.e. { path: '/custom' }
|
|
@@ -70,7 +73,7 @@ module ActiveAdmin
|
|
|
70
73
|
register :create_another, false
|
|
71
74
|
|
|
72
75
|
# Default CSV options
|
|
73
|
-
register :csv_options, { col_sep:
|
|
76
|
+
register :csv_options, { col_sep: ",", byte_order_mark: "\xEF\xBB\xBF" }
|
|
74
77
|
|
|
75
78
|
# Default Download Links options
|
|
76
79
|
register :download_links, true
|
|
@@ -99,9 +102,25 @@ module ActiveAdmin
|
|
|
99
102
|
]
|
|
100
103
|
|
|
101
104
|
# Set flash message keys that shouldn't show in ActiveAdmin
|
|
102
|
-
register :flash_keys_to_except, [
|
|
105
|
+
register :flash_keys_to_except, ["timedout"]
|
|
103
106
|
|
|
104
107
|
# Include association filters by default
|
|
105
108
|
register :include_default_association_filters, true
|
|
109
|
+
|
|
110
|
+
register :maximum_association_filter_arity, :unlimited
|
|
111
|
+
|
|
112
|
+
register :filter_columns_for_large_association, [
|
|
113
|
+
:display_name,
|
|
114
|
+
:full_name,
|
|
115
|
+
:name,
|
|
116
|
+
:username,
|
|
117
|
+
:login,
|
|
118
|
+
:title,
|
|
119
|
+
:email,
|
|
120
|
+
]
|
|
121
|
+
register :filter_method_for_large_association, "_starts_with"
|
|
122
|
+
|
|
123
|
+
# Switch between asset pipeline and webpacker assets
|
|
124
|
+
register :use_webpacker, false
|
|
106
125
|
end
|
|
107
126
|
end
|
|
@@ -3,7 +3,7 @@ module ActiveAdmin
|
|
|
3
3
|
attr_reader :field, :order, :active_admin_config
|
|
4
4
|
|
|
5
5
|
def initialize(active_admin_config, clause)
|
|
6
|
-
clause =~ /^([\w
|
|
6
|
+
clause =~ /^([\w\.]+)(->'\w+')?_(desc|asc)$/
|
|
7
7
|
@column = $1
|
|
8
8
|
@op = $2
|
|
9
9
|
@order = $3
|
|
@@ -20,7 +20,7 @@ module ActiveAdmin
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def to_sql
|
|
23
|
-
[table_column, @op,
|
|
23
|
+
[table_column, @op, " ", @order].compact.join
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def table
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require
|
|
4
|
-
require
|
|
1
|
+
require "active_admin/orm/active_record/comments/views"
|
|
2
|
+
require "active_admin/orm/active_record/comments/show_page_helper"
|
|
3
|
+
require "active_admin/orm/active_record/comments/namespace_helper"
|
|
4
|
+
require "active_admin/orm/active_record/comments/resource_helper"
|
|
5
5
|
|
|
6
6
|
# Add the comments configuration
|
|
7
|
-
ActiveAdmin::Application.inheritable_setting :comments,
|
|
8
|
-
ActiveAdmin::Application.inheritable_setting :comments_registration_name,
|
|
9
|
-
ActiveAdmin::Application.inheritable_setting :comments_order,
|
|
10
|
-
ActiveAdmin::Application.inheritable_setting :comments_menu,
|
|
7
|
+
ActiveAdmin::Application.inheritable_setting :comments, true
|
|
8
|
+
ActiveAdmin::Application.inheritable_setting :comments_registration_name, "Comment"
|
|
9
|
+
ActiveAdmin::Application.inheritable_setting :comments_order, "created_at ASC"
|
|
10
|
+
ActiveAdmin::Application.inheritable_setting :comments_menu, {}
|
|
11
11
|
|
|
12
12
|
# Insert helper modules
|
|
13
13
|
ActiveAdmin::Namespace.send :include, ActiveAdmin::Comments::NamespaceHelper
|
|
14
|
-
ActiveAdmin::Resource.send
|
|
14
|
+
ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
|
|
15
15
|
ActiveAdmin.application.view_factory.show_page.send :include, ActiveAdmin::Comments::ShowPageHelper
|
|
16
16
|
|
|
17
17
|
# Load the model as soon as it's referenced. By that point, Rails & Kaminari will be ready
|
|
18
|
-
ActiveAdmin.autoload :Comment,
|
|
18
|
+
ActiveAdmin.autoload :Comment, "active_admin/orm/active_record/comments/comment"
|
|
19
19
|
|
|
20
20
|
# Hint i18n-tasks about model and attribute translations used by default install
|
|
21
21
|
# i18n-tasks-use t('activerecord.models.comment')
|
|
@@ -36,7 +36,7 @@ ActiveAdmin.after_load do |app|
|
|
|
36
36
|
|
|
37
37
|
menu namespace.comments ? namespace.comments_menu : false
|
|
38
38
|
|
|
39
|
-
config.comments
|
|
39
|
+
config.comments = false # Don't allow comments on comments
|
|
40
40
|
config.batch_actions = false # The default destroy batch action isn't showing up anyway...
|
|
41
41
|
|
|
42
42
|
scope :all, show_count: false
|
|
@@ -51,7 +51,7 @@ ActiveAdmin.after_load do |app|
|
|
|
51
51
|
# Store the author and namespace
|
|
52
52
|
before_save do |comment|
|
|
53
53
|
comment.namespace = active_admin_config.namespace.name
|
|
54
|
-
comment.author
|
|
54
|
+
comment.author = current_active_admin_user
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
controller do
|
|
@@ -64,21 +64,21 @@ ActiveAdmin.after_load do |app|
|
|
|
64
64
|
def create
|
|
65
65
|
create! do |success, failure|
|
|
66
66
|
success.html do
|
|
67
|
-
|
|
67
|
+
redirect_back fallback_location: active_admin_root
|
|
68
68
|
end
|
|
69
69
|
failure.html do
|
|
70
|
-
flash[:error] = I18n.t
|
|
71
|
-
|
|
70
|
+
flash[:error] = I18n.t "active_admin.comments.errors.empty_text"
|
|
71
|
+
redirect_back fallback_location: active_admin_root
|
|
72
72
|
end
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def destroy
|
|
76
76
|
destroy! do |success, failure|
|
|
77
77
|
success.html do
|
|
78
|
-
|
|
78
|
+
redirect_back fallback_location: active_admin_root
|
|
79
79
|
end
|
|
80
80
|
failure.html do
|
|
81
|
-
|
|
81
|
+
redirect_back fallback_location: active_admin_root
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
84
|
end
|
|
@@ -88,12 +88,12 @@ ActiveAdmin.after_load do |app|
|
|
|
88
88
|
permit_params :body, :namespace, :resource_id, :resource_type
|
|
89
89
|
|
|
90
90
|
index do
|
|
91
|
-
column I18n.t(
|
|
92
|
-
column I18n.t(
|
|
93
|
-
column I18n.t(
|
|
94
|
-
column I18n.t(
|
|
95
|
-
column I18n.t(
|
|
96
|
-
column I18n.t(
|
|
91
|
+
column I18n.t("active_admin.comments.resource_type"), :resource_type
|
|
92
|
+
column I18n.t("active_admin.comments.author_type"), :author_type
|
|
93
|
+
column I18n.t("active_admin.comments.resource"), :resource
|
|
94
|
+
column I18n.t("active_admin.comments.author"), :author
|
|
95
|
+
column I18n.t("active_admin.comments.body"), :body
|
|
96
|
+
column I18n.t("active_admin.comments.created_at"), :created_at
|
|
97
97
|
actions
|
|
98
98
|
end
|
|
99
99
|
end
|
|
@@ -3,8 +3,8 @@ module ActiveAdmin
|
|
|
3
3
|
|
|
4
4
|
self.table_name = "#{table_name_prefix}active_admin_comments#{table_name_suffix}"
|
|
5
5
|
|
|
6
|
-
belongs_to :resource,
|
|
7
|
-
belongs_to :author,
|
|
6
|
+
belongs_to :resource, polymorphic: true, optional: true
|
|
7
|
+
belongs_to :author, polymorphic: true
|
|
8
8
|
|
|
9
9
|
validates_presence_of :body, :namespace, :resource
|
|
10
10
|
|
|
@@ -18,8 +18,8 @@ module ActiveAdmin
|
|
|
18
18
|
def self.find_for_resource_in_namespace(resource, namespace)
|
|
19
19
|
where(
|
|
20
20
|
resource_type: resource_type(resource),
|
|
21
|
-
resource_id:
|
|
22
|
-
namespace:
|
|
21
|
+
resource_id: resource.id,
|
|
22
|
+
namespace: namespace.to_s
|
|
23
23
|
).order(ActiveAdmin.application.namespaces[namespace.to_sym].comments_order)
|
|
24
24
|
end
|
|
25
25
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "active_admin/views"
|
|
2
|
+
require "active_admin/orm/active_record/comments/views/active_admin_comments"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "active_admin/views"
|
|
2
|
+
require "active_admin/views/components/panel"
|
|
3
3
|
|
|
4
4
|
module ActiveAdmin
|
|
5
5
|
module Comments
|
|
@@ -11,82 +11,87 @@ module ActiveAdmin
|
|
|
11
11
|
attr_accessor :resource
|
|
12
12
|
|
|
13
13
|
def build(resource)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
|
|
15
|
+
@resource = resource
|
|
16
|
+
@comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
|
|
17
|
+
super(title, for: resource)
|
|
18
|
+
build_comments
|
|
19
|
+
end
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
protected
|
|
21
23
|
|
|
22
24
|
def title
|
|
23
|
-
I18n.t
|
|
25
|
+
I18n.t "active_admin.comments.title_content", count: @comments.total_count
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
def build_comments
|
|
27
29
|
if @comments.any?
|
|
28
30
|
@comments.each(&method(:build_comment))
|
|
29
|
-
div page_entries_info(@comments).html_safe, class:
|
|
31
|
+
div page_entries_info(@comments).html_safe, class: "pagination_information"
|
|
30
32
|
else
|
|
31
33
|
build_empty_message
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
text_node paginate @comments
|
|
35
|
-
|
|
37
|
+
|
|
38
|
+
if authorized?(ActiveAdmin::Auth::CREATE, ActiveAdmin::Comment)
|
|
39
|
+
build_comment_form
|
|
40
|
+
end
|
|
36
41
|
end
|
|
37
42
|
|
|
38
43
|
def build_comment(comment)
|
|
39
44
|
div for: comment do
|
|
40
|
-
div class:
|
|
41
|
-
h4 class:
|
|
42
|
-
comment.author ? auto_link(comment.author) : I18n.t(
|
|
45
|
+
div class: "active_admin_comment_meta" do
|
|
46
|
+
h4 class: "active_admin_comment_author" do
|
|
47
|
+
comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
|
|
43
48
|
end
|
|
44
49
|
span pretty_format comment.created_at
|
|
45
50
|
if authorized?(ActiveAdmin::Auth::DESTROY, comment)
|
|
46
|
-
text_node link_to I18n.t(
|
|
51
|
+
text_node link_to I18n.t("active_admin.comments.delete"), comments_url(comment.id), method: :delete, data: { confirm: I18n.t("active_admin.comments.delete_confirmation") }
|
|
47
52
|
end
|
|
48
53
|
end
|
|
49
|
-
div class:
|
|
54
|
+
div class: "active_admin_comment_body" do
|
|
50
55
|
simple_format comment.body
|
|
51
56
|
end
|
|
52
57
|
end
|
|
53
58
|
end
|
|
54
59
|
|
|
55
60
|
def build_empty_message
|
|
56
|
-
span I18n.t(
|
|
61
|
+
span I18n.t("active_admin.comments.no_comments_yet"), class: "empty"
|
|
57
62
|
end
|
|
58
63
|
|
|
59
64
|
def comments_url(*args)
|
|
60
65
|
parts = []
|
|
61
66
|
parts << active_admin_namespace.name unless active_admin_namespace.root?
|
|
62
67
|
parts << active_admin_namespace.comments_registration_name.underscore
|
|
63
|
-
parts <<
|
|
64
|
-
send parts.join(
|
|
68
|
+
parts << "path"
|
|
69
|
+
send parts.join("_"), *args
|
|
65
70
|
end
|
|
66
71
|
|
|
67
72
|
def comment_form_url
|
|
68
73
|
parts = []
|
|
69
74
|
parts << active_admin_namespace.name unless active_admin_namespace.root?
|
|
70
75
|
parts << active_admin_namespace.comments_registration_name.underscore.pluralize
|
|
71
|
-
parts <<
|
|
72
|
-
send parts.join
|
|
76
|
+
parts << "path"
|
|
77
|
+
send parts.join "_"
|
|
73
78
|
end
|
|
74
79
|
|
|
75
80
|
def build_comment_form
|
|
76
81
|
active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
|
|
77
82
|
f.inputs do
|
|
78
|
-
f.input :resource_type, as: :hidden,
|
|
79
|
-
f.input :resource_id,
|
|
80
|
-
f.input :body,
|
|
83
|
+
f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
|
|
84
|
+
f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
|
|
85
|
+
f.input :body, label: false, input_html: { size: "80x8" }
|
|
81
86
|
end
|
|
82
87
|
f.actions do
|
|
83
|
-
f.action :submit, label: I18n.t(
|
|
88
|
+
f.action :submit, label: I18n.t("active_admin.comments.add")
|
|
84
89
|
end
|
|
85
90
|
end
|
|
86
91
|
end
|
|
87
92
|
|
|
88
93
|
def default_id_for_prefix
|
|
89
|
-
|
|
94
|
+
"active_admin_comments_for"
|
|
90
95
|
end
|
|
91
96
|
end
|
|
92
97
|
|
data/lib/active_admin/page.rb
CHANGED
|
@@ -65,7 +65,7 @@ module ActiveAdmin
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def controller_name
|
|
68
|
-
[namespace.module_name, camelized_resource_name + "Controller"].compact.join(
|
|
68
|
+
[namespace.module_name, camelized_resource_name + "Controller"].compact.join("::")
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
# Override from `ActiveAdmin::Resource::Controllers`
|