activeadmin 2.2.0 → 2.12.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 +382 -32
- data/CONTRIBUTING.md +45 -67
- data/README.md +11 -4
- data/app/assets/javascripts/active_admin/base.js +524 -0
- data/app/assets/stylesheets/active_admin/_base.scss +53 -37
- data/app/assets/stylesheets/active_admin/_forms.scss +0 -10
- 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 +25 -123
- data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- 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/components/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
- data/app/javascript/active_admin/base.js +28 -0
- data/app/{assets/javascripts/active_admin/lib/batch_actions.es6 → javascript/active_admin/initializers/batch-actions.js} +9 -3
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/{assets/javascripts/active_admin/lib/has_many.es6 → javascript/active_admin/initializers/has-many.js} +4 -1
- 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/{assets/javascripts/active_admin/lib/checkbox-toggler.es6 → javascript/active_admin/lib/checkbox-toggler.js} +5 -5
- data/app/{assets/javascripts/active_admin/lib/dropdown-menu.es6 → javascript/active_admin/lib/dropdown-menu.js} +3 -10
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/{assets/javascripts/active_admin/lib/modal_dialog.es6 → javascript/active_admin/lib/modal-dialog.js} +10 -8
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/{assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 → javascript/active_admin/lib/table-checkbox-toggler.js} +5 -3
- data/app/javascript/active_admin/lib/utils.js +40 -0
- 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/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/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.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +15 -5
- data/config/locales/ar.yml +6 -6
- data/config/locales/az.yml +138 -0
- data/config/locales/ca.yml +0 -1
- data/config/locales/de.yml +18 -0
- data/config/locales/en-CA.yml +3 -3
- data/config/locales/en-GB.yml +3 -3
- data/config/locales/en.yml +3 -3
- data/config/locales/es-MX.yml +2 -1
- data/config/locales/es.yml +5 -5
- data/config/locales/fr.yml +4 -4
- data/config/locales/it.yml +18 -0
- data/config/locales/ja.yml +3 -3
- data/config/locales/ko.yml +1 -1
- data/config/locales/lv.yml +2 -2
- data/config/locales/nl.yml +1 -1
- data/config/locales/ro.yml +3 -2
- data/config/locales/sk.yml +59 -0
- data/config/locales/vi.yml +6 -5
- data/docs/0-installation.md +27 -3
- data/docs/1-general-configuration.md +20 -0
- data/docs/11-decorators.md +16 -5
- data/docs/2-resource-customization.md +11 -2
- data/docs/3-index-pages/index-as-table.md +7 -0
- data/docs/3-index-pages.md +1 -1
- data/docs/5-forms.md +7 -2
- data/docs/6-show-pages.md +12 -0
- data/docs/8-custom-actions.md +1 -1
- data/docs/9-batch-actions.md +2 -2
- data/docs/Gemfile +3 -3
- data/docs/Gemfile.lock +192 -158
- data/docs/_config.yml +2 -0
- data/docs/_includes/top-menu.html +2 -2
- data/docs/documentation.md +1 -1
- data/docs/index.html +109 -8
- data/docs/stylesheets/main.css +29 -0
- data/lib/active_admin/abstract_view_factory.rb +1 -0
- data/lib/active_admin/application.rb +20 -20
- data/lib/active_admin/application_settings.rb +4 -3
- data/lib/active_admin/asset_registration.rb +1 -0
- data/lib/active_admin/authorization_adapter.rb +4 -3
- data/lib/active_admin/base_controller/authorization.rb +15 -13
- data/lib/active_admin/base_controller/menu.rb +1 -0
- data/lib/active_admin/base_controller.rb +6 -5
- data/lib/active_admin/batch_actions/controller.rb +4 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +10 -8
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
- data/lib/active_admin/batch_actions.rb +1 -0
- data/lib/active_admin/callbacks.rb +1 -0
- data/lib/active_admin/cancan_adapter.rb +2 -1
- data/lib/active_admin/collection_decorator.rb +32 -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 +13 -23
- data/lib/active_admin/dependency.rb +13 -12
- data/lib/active_admin/deprecation.rb +1 -0
- data/lib/active_admin/devise.rb +16 -5
- data/lib/active_admin/dsl.rb +2 -1
- data/lib/active_admin/dynamic_setting.rb +1 -0
- data/lib/active_admin/dynamic_settings_node.rb +3 -2
- data/lib/active_admin/engine.rb +13 -9
- data/lib/active_admin/error.rb +1 -2
- data/lib/active_admin/filters/active.rb +2 -1
- data/lib/active_admin/filters/active_filter.rb +7 -7
- data/lib/active_admin/filters/active_sidebar.rb +4 -30
- data/lib/active_admin/filters/dsl.rb +1 -0
- data/lib/active_admin/filters/forms.rb +7 -6
- data/lib/active_admin/filters/formtastic_addons.rb +2 -6
- data/lib/active_admin/filters/resource_extension.rb +26 -1
- data/lib/active_admin/filters.rb +8 -7
- data/lib/active_admin/form_builder.rb +25 -20
- data/lib/active_admin/generators/boilerplate.rb +13 -4
- 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 +3 -2
- 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 +2 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +5 -4
- data/lib/active_admin/inputs/filters/base.rb +2 -1
- data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
- data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
- data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
- data/lib/active_admin/inputs/filters/select_input.rb +3 -2
- 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 +4 -3
- data/lib/active_admin/localizers.rb +2 -1
- data/lib/active_admin/menu.rb +7 -3
- data/lib/active_admin/menu_collection.rb +1 -0
- data/lib/active_admin/menu_item.rb +8 -7
- data/lib/active_admin/namespace.rb +14 -13
- data/lib/active_admin/namespace_settings.rb +21 -4
- data/lib/active_admin/order_clause.rb +3 -2
- data/lib/active_admin/orm/active_record/comments/comment.rb +4 -3
- 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 +20 -19
- data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
- data/lib/active_admin/orm/active_record/comments.rb +20 -19
- data/lib/active_admin/orm/active_record.rb +2 -1
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +2 -1
- 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 +47 -11
- data/lib/active_admin/resource/action_items.rb +6 -5
- data/lib/active_admin/resource/attributes.rb +2 -1
- data/lib/active_admin/resource/belongs_to.rb +6 -2
- data/lib/active_admin/resource/controllers.rb +2 -1
- data/lib/active_admin/resource/includes.rb +1 -0
- data/lib/active_admin/resource/menu.rb +5 -4
- data/lib/active_admin/resource/model.rb +16 -0
- data/lib/active_admin/resource/naming.rb +6 -5
- 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 +17 -10
- data/lib/active_admin/resource/scope_to.rb +8 -7
- data/lib/active_admin/resource/scopes.rb +1 -0
- data/lib/active_admin/resource/sidebars.rb +2 -1
- data/lib/active_admin/resource.rb +33 -19
- 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 +31 -5
- data/lib/active_admin/resource_controller/decorators.rb +8 -29
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -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 +9 -7
- data/lib/active_admin/resource_controller.rb +14 -10
- data/lib/active_admin/resource_dsl.rb +11 -25
- data/lib/active_admin/router.rb +1 -0
- data/lib/active_admin/scope.rb +7 -6
- 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 +18 -17
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
- data/lib/active_admin/view_helpers/display_helper.rb +15 -7
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
- data/lib/active_admin/view_helpers/fields_for.rb +3 -2
- 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 +2 -1
- data/lib/active_admin/views/action_items.rb +1 -0
- data/lib/active_admin/views/components/active_admin_form.rb +7 -6
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
- data/lib/active_admin/views/components/attributes_table.rb +6 -5
- data/lib/active_admin/views/components/blank_slate.rb +2 -1
- data/lib/active_admin/views/components/columns.rb +1 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +2 -1
- data/lib/active_admin/views/components/menu_item.rb +5 -4
- data/lib/active_admin/views/components/paginated_collection.rb +21 -19
- data/lib/active_admin/views/components/panel.rb +2 -1
- data/lib/active_admin/views/components/scopes.rb +8 -5
- 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 +2 -1
- data/lib/active_admin/views/components/status_tag.rb +12 -11
- data/lib/active_admin/views/components/table_for.rb +19 -17
- data/lib/active_admin/views/components/tabs.rb +4 -3
- data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
- data/lib/active_admin/views/footer.rb +3 -1
- data/lib/active_admin/views/header.rb +3 -2
- data/lib/active_admin/views/index_as_block.rb +1 -0
- data/lib/active_admin/views/index_as_blog.rb +2 -1
- data/lib/active_admin/views/index_as_grid.rb +2 -1
- data/lib/active_admin/views/index_as_table.rb +24 -16
- data/lib/active_admin/views/pages/base.rb +19 -12
- data/lib/active_admin/views/pages/form.rb +1 -0
- data/lib/active_admin/views/pages/index.rb +16 -13
- 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 +3 -2
- data/lib/active_admin/views/title_bar.rb +2 -1
- data/lib/active_admin/views.rb +2 -1
- data/lib/active_admin.rb +63 -64
- data/lib/activeadmin.rb +2 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
- data/lib/generators/active_admin/install/install_generator.rb +15 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +21 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
- data/lib/generators/active_admin/page/page_generator.rb +2 -1
- data/lib/generators/active_admin/page/templates/page.rb +1 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +4 -2
- 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 +27 -0
- data/lib/ransack_ext.rb +9 -8
- metadata +62 -91
- 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.es6 +0 -23
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +0 -45
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +0 -41
- data/app/assets/javascripts/active_admin/lib/per_page.es6 +0 -47
- /data/app/{assets/javascripts/active_admin/ext/jquery-ui.es6 → javascript/active_admin/ext/jquery-ui.js} +0 -0
- /data/app/{assets/javascripts/active_admin/ext/jquery.es6 → javascript/active_admin/ext/jquery.js} +0 -0
- /data/app/{assets/javascripts/active_admin/initializers/datepicker.es6 → javascript/active_admin/initializers/datepicker.js} +0 -0
- /data/app/{assets/javascripts/active_admin/initializers/tabs.es6 → javascript/active_admin/initializers/tabs.js} +0 -0
@@ -1,16 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module ViewHelpers
|
3
4
|
module DisplayHelper
|
4
5
|
|
5
6
|
DISPLAY_NAME_FALLBACK = -> {
|
6
|
-
name = ""
|
7
7
|
klass = self.class
|
8
|
-
name
|
9
|
-
|
8
|
+
name = if klass.respond_to?(:model_name)
|
9
|
+
if klass.respond_to?(:primary_key)
|
10
|
+
"#{klass.model_name.human} ##{send(klass.primary_key)}"
|
11
|
+
else
|
12
|
+
klass.model_name.human
|
13
|
+
end
|
14
|
+
elsif klass.respond_to?(:primary_key)
|
15
|
+
" ##{send(klass.primary_key)}"
|
16
|
+
end
|
10
17
|
name.present? ? name : to_s
|
11
18
|
}
|
19
|
+
|
12
20
|
def DISPLAY_NAME_FALLBACK.inspect
|
13
|
-
|
21
|
+
"DISPLAY_NAME_FALLBACK"
|
14
22
|
end
|
15
23
|
|
16
24
|
# Attempts to call any known display name methods on the resource.
|
@@ -26,7 +34,7 @@ module ActiveAdmin
|
|
26
34
|
@@display_name_methods_cache ||= {}
|
27
35
|
@@display_name_methods_cache[resource.class] ||= begin
|
28
36
|
methods = active_admin_application.display_name_methods - association_methods_for(resource)
|
29
|
-
method
|
37
|
+
method = methods.detect { |method| resource.respond_to? method }
|
30
38
|
|
31
39
|
if method != :to_s || resource.method(method).source_location
|
32
40
|
method
|
@@ -74,7 +82,7 @@ module ActiveAdmin
|
|
74
82
|
format_collection(object)
|
75
83
|
else
|
76
84
|
if defined?(::ActiveRecord) && object.is_a?(ActiveRecord::Base) ||
|
77
|
-
defined?(::Mongoid)
|
85
|
+
defined?(::Mongoid) && object.class.include?(Mongoid::Document)
|
78
86
|
auto_link object
|
79
87
|
elsif defined?(::ActiveRecord) && object.is_a?(ActiveRecord::Relation)
|
80
88
|
format_collection(object)
|
@@ -85,7 +93,7 @@ module ActiveAdmin
|
|
85
93
|
end
|
86
94
|
|
87
95
|
def format_collection(collection)
|
88
|
-
safe_join(collection.map { |item| pretty_format(item) },
|
96
|
+
safe_join(collection.map { |item| pretty_format(item) }, ", ")
|
89
97
|
end
|
90
98
|
|
91
99
|
def boolean_attr?(resource, attr, value)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module ViewHelpers
|
3
4
|
module DownloadFormatLinksHelper
|
@@ -18,7 +19,7 @@ module ActiveAdmin
|
|
18
19
|
def build_download_format_links(formats = self.class.formats)
|
19
20
|
params = request.query_parameters.except :format, :commit
|
20
21
|
div class: "download_links" do
|
21
|
-
span I18n.t(
|
22
|
+
span I18n.t("active_admin.download")
|
22
23
|
formats.each do |format|
|
23
24
|
a format.upcase, href: url_for(params: params, format: format)
|
24
25
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module ViewHelpers
|
3
4
|
module FormHelper
|
@@ -15,7 +16,7 @@ module ActiveAdmin
|
|
15
16
|
#
|
16
17
|
def fields_for_params(params, options = {})
|
17
18
|
namespace = options[:namespace]
|
18
|
-
except
|
19
|
+
except = Array.wrap(options[:except]).map &:to_s
|
19
20
|
|
20
21
|
params.flat_map do |k, v|
|
21
22
|
next if namespace.nil? && %w(controller action commit utf8).include?(k.to_s)
|
@@ -37,7 +38,7 @@ module ActiveAdmin
|
|
37
38
|
{ "#{k}[]" => v }
|
38
39
|
end
|
39
40
|
when nil
|
40
|
-
{ k =>
|
41
|
+
{ k => "" }
|
41
42
|
when TrueClass, FalseClass
|
42
43
|
{ k => v }
|
43
44
|
else
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module ViewHelpers
|
3
4
|
|
4
5
|
# Require all ruby files in the view helpers dir
|
5
|
-
Dir[File.expand_path(
|
6
|
+
Dir[File.expand_path("view_helpers", __dir__) + "/*.rb"].each { |f| require f }
|
6
7
|
|
7
8
|
include ActiveAdminApplicationHelper
|
8
9
|
include AutoLinkHelper
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
class FormtasticProxy < ::Arbre::Rails::Forms::FormBuilderProxy
|
@@ -16,7 +17,7 @@ module ActiveAdmin
|
|
16
17
|
end
|
17
18
|
|
18
19
|
def to_s
|
19
|
-
opening_tag
|
20
|
+
opening_tag + children.to_s + closing_tag
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
@@ -111,14 +112,14 @@ module ActiveAdmin
|
|
111
112
|
create_another = params[:create_another]
|
112
113
|
label = @resource.class.model_name.human
|
113
114
|
Arbre::Context.new do
|
114
|
-
li class:
|
115
|
+
li class: "create_another" do
|
115
116
|
input(
|
116
117
|
checked: create_another,
|
117
|
-
id:
|
118
|
-
name:
|
119
|
-
type:
|
118
|
+
id: "create_another",
|
119
|
+
name: "create_another",
|
120
|
+
type: "checkbox"
|
120
121
|
)
|
121
|
-
label(I18n.t(
|
122
|
+
label(I18n.t("active_admin.create_another", model: label), for: "create_another")
|
122
123
|
end
|
123
124
|
end
|
124
125
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "active_admin/filters/active"
|
3
|
+
|
4
|
+
module ActiveAdmin
|
5
|
+
module Views
|
6
|
+
|
7
|
+
class ActiveFiltersSidebarContent < ActiveAdmin::Component
|
8
|
+
builder_method :active_filters_sidebar_content
|
9
|
+
|
10
|
+
def build
|
11
|
+
active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
|
12
|
+
active_scopes = assigns[:search].instance_variable_get("@scope_args")
|
13
|
+
|
14
|
+
scope_block(current_scope)
|
15
|
+
filters_list(active_filters, active_scopes)
|
16
|
+
end
|
17
|
+
|
18
|
+
def scope_block(current_scope)
|
19
|
+
return unless current_scope
|
20
|
+
|
21
|
+
h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
|
22
|
+
b scope_name(current_scope), class: "current_scope_name"
|
23
|
+
end
|
24
|
+
|
25
|
+
def filters_list(active_filters, active_scopes)
|
26
|
+
div style: "margin-top: 10px" do
|
27
|
+
h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
|
28
|
+
ul do
|
29
|
+
if active_filters.filters.blank? && active_scopes.blank?
|
30
|
+
li I18n.t("active_admin.search_status.no_current_filters")
|
31
|
+
else
|
32
|
+
active_filters.filters.each { |filter| filter_item(filter) }
|
33
|
+
active_scopes.each { |name, value| scope_item(name, value) }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def filter_item(filter)
|
40
|
+
li filter.html_options do
|
41
|
+
span filter.label
|
42
|
+
b to_sentence(filter.values.map { |v| pretty_format(v) })
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def scope_item(name, value)
|
47
|
+
filter_name = name.gsub(/_eq$/, "")
|
48
|
+
filter = active_admin_config.filters[filter_name.to_sym]
|
49
|
+
label = filter.try(:[], :label) || filter_name.titleize
|
50
|
+
|
51
|
+
li class: "current_filter_#{name}" do
|
52
|
+
span "#{label} #{Ransack::Translate.predicate('eq')}"
|
53
|
+
b value
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
|
@@ -5,7 +6,7 @@ module ActiveAdmin
|
|
5
6
|
builder_method :attributes_table_for
|
6
7
|
|
7
8
|
def build(obj, *attrs)
|
8
|
-
@collection
|
9
|
+
@collection = Array.wrap(obj)
|
9
10
|
@resource_class = @collection.first.class
|
10
11
|
options = {}
|
11
12
|
options[:for] = @collection.first if single_record?
|
@@ -20,7 +21,7 @@ module ActiveAdmin
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def row(*args, &block)
|
23
|
-
title
|
24
|
+
title = args[0]
|
24
25
|
options = args.extract_options!
|
25
26
|
classes = [:row]
|
26
27
|
if options[:class]
|
@@ -28,7 +29,7 @@ module ActiveAdmin
|
|
28
29
|
elsif title.present?
|
29
30
|
classes << "row-#{title.to_s.parameterize(separator: "_")}"
|
30
31
|
end
|
31
|
-
options[:class] = classes.join(
|
32
|
+
options[:class] = classes.join(" ")
|
32
33
|
|
33
34
|
@table << tr(options) do
|
34
35
|
th do
|
@@ -45,7 +46,7 @@ module ActiveAdmin
|
|
45
46
|
protected
|
46
47
|
|
47
48
|
def default_id_for_prefix
|
48
|
-
|
49
|
+
"attributes_table"
|
49
50
|
end
|
50
51
|
|
51
52
|
# Build Colgroups
|
@@ -75,7 +76,7 @@ module ActiveAdmin
|
|
75
76
|
end
|
76
77
|
|
77
78
|
def empty_value
|
78
|
-
span I18n.t(
|
79
|
+
span I18n.t("active_admin.empty"), class: "empty"
|
79
80
|
end
|
80
81
|
|
81
82
|
def content_for(record, attr)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
# Build a Blank Slate
|
@@ -5,7 +6,7 @@ module ActiveAdmin
|
|
5
6
|
builder_method :blank_slate
|
6
7
|
|
7
8
|
def default_class_name
|
8
|
-
|
9
|
+
"blank_slate_container"
|
9
10
|
end
|
10
11
|
|
11
12
|
def build(content)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
|
@@ -35,30 +36,27 @@ module ActiveAdmin
|
|
35
36
|
super(options)
|
36
37
|
end
|
37
38
|
|
38
|
-
def item(*args)
|
39
|
+
def item(*args, **kwargs)
|
39
40
|
within @menu do
|
40
|
-
li link_to(*args)
|
41
|
+
li link_to(*args, **kwargs)
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
44
45
|
private
|
45
46
|
|
46
47
|
def build_button(name, button_options)
|
47
|
-
button_options[:class]
|
48
|
-
button_options[:
|
49
|
-
|
50
|
-
button_options[:href] = '#'
|
48
|
+
button_options[:class] = "#{button_options[:class]} dropdown_menu_button"
|
49
|
+
button_options[:href] = "#"
|
51
50
|
|
52
51
|
a name, button_options
|
53
52
|
end
|
54
53
|
|
55
54
|
def build_menu(options)
|
56
|
-
options[:class]
|
57
|
-
options[:class] << ' dropdown_menu_list'
|
55
|
+
options[:class] = "#{options[:class]} dropdown_menu_list"
|
58
56
|
|
59
57
|
menu_list = nil
|
60
58
|
|
61
|
-
div class:
|
59
|
+
div class: "dropdown_menu_list_wrapper" do
|
62
60
|
menu_list = ul(options)
|
63
61
|
end
|
64
62
|
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "active_admin/helpers/collection"
|
2
3
|
|
3
4
|
module ActiveAdmin
|
4
5
|
module Views
|
@@ -15,7 +16,7 @@ module ActiveAdmin
|
|
15
16
|
end
|
16
17
|
|
17
18
|
def tag_name
|
18
|
-
|
19
|
+
"ul"
|
19
20
|
end
|
20
21
|
|
21
22
|
# Builds the links for presenting different index views to the user
|
@@ -37,7 +38,7 @@ module ActiveAdmin
|
|
37
38
|
def build_index_list(index_class)
|
38
39
|
li class: classes_for_index(index_class) do
|
39
40
|
params = request.query_parameters.except :page, :commit, :format
|
40
|
-
url_with_params = url_for(params.merge(as: index_class.index_name.to_sym))
|
41
|
+
url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
|
41
42
|
|
42
43
|
a href: url_with_params, class: "table_tools_button" do
|
43
44
|
name = index_class.index_name
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
|
@@ -18,7 +19,7 @@ module ActiveAdmin
|
|
18
19
|
add_class "current" if item.current? assigns[:current_tab]
|
19
20
|
|
20
21
|
if url
|
21
|
-
text_node link_to label, url, item.html_options
|
22
|
+
text_node link_to label, url, **item.html_options
|
22
23
|
else
|
23
24
|
span label, item.html_options
|
24
25
|
end
|
@@ -30,7 +31,7 @@ module ActiveAdmin
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def tag_name
|
33
|
-
|
34
|
+
"li"
|
34
35
|
end
|
35
36
|
|
36
37
|
# Sorts by priority first, then alphabetically by label if needed.
|
@@ -44,14 +45,14 @@ module ActiveAdmin
|
|
44
45
|
end
|
45
46
|
|
46
47
|
def to_s
|
47
|
-
visible? ? super :
|
48
|
+
visible? ? super : ""
|
48
49
|
end
|
49
50
|
|
50
51
|
private
|
51
52
|
|
52
53
|
# URL is not nil, empty, or '#'
|
53
54
|
def real_url?
|
54
|
-
url && url.present? && url !=
|
55
|
+
url && url.present? && url != "#"
|
55
56
|
end
|
56
57
|
end
|
57
58
|
end
|
@@ -1,5 +1,6 @@
|
|
1
|
-
|
2
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "active_admin/helpers/collection"
|
3
|
+
require "active_admin/view_helpers/download_format_links_helper"
|
3
4
|
|
4
5
|
module ActiveAdmin
|
5
6
|
module Views
|
@@ -38,12 +39,12 @@ module ActiveAdmin
|
|
38
39
|
# download_links => Download links override (false or [:csv, :pdf])
|
39
40
|
#
|
40
41
|
def build(collection, options = {})
|
41
|
-
@collection
|
42
|
-
@params
|
43
|
-
@param_name
|
42
|
+
@collection = collection
|
43
|
+
@params = options.delete(:params)
|
44
|
+
@param_name = options.delete(:param_name)
|
44
45
|
@download_links = options.delete(:download_links)
|
45
|
-
@display_total
|
46
|
-
@per_page
|
46
|
+
@display_total = options.delete(:pagination_total) { true }
|
47
|
+
@per_page = options.delete(:per_page)
|
47
48
|
|
48
49
|
unless collection.respond_to?(:total_pages)
|
49
50
|
raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
|
@@ -92,11 +93,11 @@ module ActiveAdmin
|
|
92
93
|
end
|
93
94
|
|
94
95
|
def build_pagination
|
95
|
-
options = { theme:
|
96
|
-
options[:params]
|
96
|
+
options = { theme: @display_total ? "active_admin" : "active_admin_countless" }
|
97
|
+
options[:params] = @params if @params
|
97
98
|
options[:param_name] = @param_name if @param_name
|
98
99
|
|
99
|
-
if !@display_total
|
100
|
+
if !@display_total
|
100
101
|
# The #paginate method in kaminari will query the resource with a
|
101
102
|
# count(*) to determine how many pages there should be unless
|
102
103
|
# you pass in the :total_pages option. We issue a query to determine
|
@@ -107,7 +108,7 @@ module ActiveAdmin
|
|
107
108
|
options[:right] = 0
|
108
109
|
end
|
109
110
|
|
110
|
-
text_node paginate collection, options
|
111
|
+
text_node paginate collection, **options
|
111
112
|
end
|
112
113
|
|
113
114
|
include ::ActiveAdmin::Helpers::Collection
|
@@ -116,27 +117,28 @@ module ActiveAdmin
|
|
116
117
|
# modified from will_paginate
|
117
118
|
def page_entries_info(options = {})
|
118
119
|
if options[:entry_name]
|
119
|
-
entry_name
|
120
|
+
entry_name = options[:entry_name]
|
120
121
|
entries_name = options[:entries_name] || entry_name.pluralize
|
121
122
|
elsif collection_is_empty?
|
122
|
-
entry_name
|
123
|
-
entries_name = I18n.t "active_admin.pagination.entry", count: 2, default:
|
123
|
+
entry_name = I18n.t "active_admin.pagination.entry", count: 1, default: "entry"
|
124
|
+
entries_name = I18n.t "active_admin.pagination.entry", count: 2, default: "entries"
|
124
125
|
else
|
125
126
|
key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
|
126
|
-
|
127
|
+
|
128
|
+
entry_name = I18n.translate key, count: 1, default: collection.first.class.name.underscore.sub("_", " ")
|
127
129
|
entries_name = I18n.translate key, count: collection.size, default: entry_name.pluralize
|
128
130
|
end
|
129
131
|
|
130
132
|
if @display_total
|
131
133
|
if collection.total_pages < 2
|
132
134
|
case collection_size
|
133
|
-
when 0; I18n.t("active_admin.pagination.empty",
|
134
|
-
when 1; I18n.t("active_admin.pagination.one",
|
135
|
-
else;
|
135
|
+
when 0; I18n.t("active_admin.pagination.empty", model: entries_name)
|
136
|
+
when 1; I18n.t("active_admin.pagination.one", model: entry_name)
|
137
|
+
else; I18n.t("active_admin.pagination.one_page", model: entries_name, n: collection.total_count)
|
136
138
|
end
|
137
139
|
else
|
138
140
|
offset = (collection.current_page - 1) * collection.limit_value
|
139
|
-
total
|
141
|
+
total = collection.total_count
|
140
142
|
I18n.t "active_admin.pagination.multiple",
|
141
143
|
model: entries_name,
|
142
144
|
total: total,
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
|
@@ -29,7 +30,7 @@ module ActiveAdmin
|
|
29
30
|
def header_action(*args)
|
30
31
|
action = args[0]
|
31
32
|
|
32
|
-
@title << div(class:
|
33
|
+
@title << div(class: "header_action") do
|
33
34
|
action
|
34
35
|
end
|
35
36
|
end
|
@@ -1,5 +1,6 @@
|
|
1
|
-
|
2
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "active_admin/helpers/collection"
|
3
|
+
require "active_admin/view_helpers/method_or_proc_helper"
|
3
4
|
|
4
5
|
module ActiveAdmin
|
5
6
|
module Views
|
@@ -17,7 +18,7 @@ module ActiveAdmin
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def tag_name
|
20
|
-
|
21
|
+
"div"
|
21
22
|
end
|
22
23
|
|
23
24
|
def build(scopes, options = {})
|
@@ -26,6 +27,8 @@ module ActiveAdmin
|
|
26
27
|
group_scopes.each do |scope|
|
27
28
|
build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
|
28
29
|
end
|
30
|
+
|
31
|
+
nil
|
29
32
|
end
|
30
33
|
end
|
31
34
|
end
|
@@ -36,9 +39,9 @@ module ActiveAdmin
|
|
36
39
|
li class: classes_for_scope(scope) do
|
37
40
|
params = request.query_parameters.except :page, :scope, :commit, :format
|
38
41
|
|
39
|
-
a href: url_for(scope: scope.id, params: params), class:
|
42
|
+
a href: url_for(scope: scope.id, params: params), class: "table_tools_button" do
|
40
43
|
text_node scope_name(scope)
|
41
|
-
span class:
|
44
|
+
span class: "count" do
|
42
45
|
"(#{get_scope_count(scope)})"
|
43
46
|
end if options[:scope_count] && scope.show_count
|
44
47
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module ActiveAdmin
|
2
3
|
module Views
|
3
4
|
# Build a StatusTag
|
@@ -5,11 +6,11 @@ module ActiveAdmin
|
|
5
6
|
builder_method :status_tag
|
6
7
|
|
7
8
|
def tag_name
|
8
|
-
|
9
|
+
"span"
|
9
10
|
end
|
10
11
|
|
11
12
|
def default_class_name
|
12
|
-
|
13
|
+
"status_tag"
|
13
14
|
end
|
14
15
|
|
15
16
|
# @overload status_tag(status, options = {})
|
@@ -49,12 +50,12 @@ module ActiveAdmin
|
|
49
50
|
|
50
51
|
def convert_to_boolean_status(status)
|
51
52
|
case status
|
52
|
-
when true,
|
53
|
-
|
54
|
-
when false,
|
55
|
-
|
53
|
+
when true, "true"
|
54
|
+
"Yes"
|
55
|
+
when false, "false"
|
56
|
+
"No"
|
56
57
|
when nil
|
57
|
-
|
58
|
+
"Unset"
|
58
59
|
else
|
59
60
|
status
|
60
61
|
end
|
@@ -62,12 +63,12 @@ module ActiveAdmin
|
|
62
63
|
|
63
64
|
def status_to_class(status)
|
64
65
|
case status
|
65
|
-
when
|
66
|
-
|
66
|
+
when "Unset"
|
67
|
+
"unset no"
|
67
68
|
when String, Symbol
|
68
|
-
status.to_s.titleize.gsub(/\s/,
|
69
|
+
status.to_s.titleize.gsub(/\s/, "").underscore
|
69
70
|
else
|
70
|
-
|
71
|
+
""
|
71
72
|
end
|
72
73
|
end
|
73
74
|
end
|