activeadmin 3.2.2 → 4.0.0.beta1
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 +2 -44
- data/CONTRIBUTING.md +25 -108
- data/README.md +17 -30
- data/app/assets/config/active_admin_manifest.js +2 -0
- data/app/controllers/active_admin/base_controller/menu.rb +39 -0
- data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
- data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
- data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
- data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +2 -2
- data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
- data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
- data/app/controllers/active_admin/resource_controller.rb +102 -0
- data/app/helpers/active_admin/auto_link_helper.rb +66 -0
- data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
- data/app/helpers/active_admin/display_helper.rb +117 -0
- data/app/helpers/active_admin/form_helper.rb +95 -0
- data/app/helpers/active_admin/index_helper.rb +40 -0
- data/app/helpers/active_admin/layout_helper.rb +63 -0
- data/app/javascript/active_admin/features/batch_actions.js +89 -0
- data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
- data/app/javascript/active_admin/features/filters.js +34 -0
- data/app/javascript/active_admin/features/has_many.js +28 -0
- data/app/javascript/active_admin/features/main_menu.js +12 -0
- data/app/javascript/active_admin/features/per_page.js +9 -0
- data/app/javascript/active_admin/utils/dom.js +17 -0
- data/app/javascript/active_admin.js +10 -0
- data/app/views/active_admin/_flash_messages.html.erb +22 -0
- data/app/views/active_admin/_html_head.html.erb +13 -0
- data/app/views/active_admin/_main_navigation.html.erb +28 -0
- data/app/views/active_admin/_page_header.html.erb +27 -0
- data/app/views/active_admin/_sidebar.html.erb +5 -0
- data/app/views/active_admin/_site_footer.html.erb +7 -0
- data/app/views/active_admin/_site_header.html.erb +30 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
- data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
- data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
- data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
- data/app/views/active_admin/devise/shared/_links.erb +3 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
- data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
- data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
- data/app/views/active_admin/kaminari/_page.html.erb +14 -0
- data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
- data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
- data/app/views/active_admin/page/index.html.arb +5 -1
- data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
- data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
- data/app/views/active_admin/resource/_form.html.arb +16 -0
- data/app/views/active_admin/resource/_form_default.html.arb +12 -0
- data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
- data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
- data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
- data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
- data/app/views/active_admin/resource/_show_default.html.arb +3 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -1
- data/app/views/active_admin/resource/index.html.arb +94 -1
- data/app/views/active_admin/resource/new.html.arb +1 -1
- data/app/views/active_admin/resource/show.html.arb +12 -1
- data/app/views/active_admin/shared/_action_items.html.erb +3 -0
- data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
- data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
- data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
- data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
- data/app/views/layouts/active_admin.html.erb +20 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
- data/config/locales/ar.yml +0 -16
- data/config/locales/az.yml +0 -16
- data/config/locales/bg.yml +0 -9
- data/config/locales/bs.yml +0 -7
- data/config/locales/ca.yml +0 -9
- data/config/locales/cs.yml +0 -9
- data/config/locales/da.yml +0 -16
- data/config/locales/de-CH.yml +0 -10
- data/config/locales/de.yml +0 -16
- data/config/locales/el.yml +0 -13
- data/config/locales/en-CA.yml +0 -16
- data/config/locales/en-GB.yml +0 -16
- data/config/locales/en.yml +18 -28
- data/config/locales/eo.yml +0 -17
- data/config/locales/es-MX.yml +0 -9
- data/config/locales/es.yml +0 -16
- data/config/locales/fa.yml +0 -9
- data/config/locales/fi.yml +0 -9
- data/config/locales/fr.yml +32 -26
- data/config/locales/he.yml +0 -16
- data/config/locales/hr.yml +0 -9
- data/config/locales/hu.yml +0 -6
- data/config/locales/id.yml +0 -16
- data/config/locales/it.yml +0 -16
- data/config/locales/ja.yml +0 -16
- data/config/locales/ko.yml +0 -9
- data/config/locales/lt.yml +0 -16
- data/config/locales/lv.yml +0 -6
- data/config/locales/mk.yml +0 -15
- data/config/locales/nb.yml +0 -12
- data/config/locales/nl.yml +21 -29
- data/config/locales/pl.yml +0 -16
- data/config/locales/pt-BR.yml +0 -16
- data/config/locales/pt-PT.yml +0 -6
- data/config/locales/ro.yml +0 -6
- data/config/locales/ru.yml +0 -16
- data/config/locales/sk.yml +0 -16
- data/config/locales/sv-SE.yml +0 -16
- data/config/locales/tr.yml +0 -16
- data/config/locales/uk.yml +0 -16
- data/config/locales/vi.yml +0 -16
- data/config/locales/zh-CN.yml +0 -16
- data/config/locales/zh-TW.yml +0 -16
- data/lib/active_admin/application.rb +1 -9
- data/lib/active_admin/batch_actions/controller.rb +1 -4
- data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
- data/lib/active_admin/batch_actions.rb +0 -5
- data/lib/active_admin/callbacks.rb +6 -4
- data/lib/active_admin/component.rb +0 -1
- data/lib/active_admin/csv_builder.rb +1 -1
- data/lib/active_admin/devise.rb +3 -3
- data/lib/active_admin/dsl.rb +2 -2
- data/lib/active_admin/dynamic_settings_node.rb +4 -4
- data/lib/active_admin/engine.rb +19 -6
- data/lib/active_admin/filters/active.rb +6 -4
- data/lib/active_admin/filters/active_filter.rb +1 -3
- data/lib/active_admin/filters/forms.rb +1 -42
- data/lib/active_admin/filters/resource_extension.rb +17 -9
- data/lib/active_admin/filters.rb +0 -2
- data/lib/active_admin/form_builder.rb +15 -14
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
- data/lib/active_admin/inputs/filters/base.rb +1 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
- data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
- data/lib/active_admin/inputs.rb +0 -3
- data/lib/active_admin/menu.rb +10 -7
- data/lib/active_admin/menu_collection.rb +1 -1
- data/lib/active_admin/menu_item.rb +24 -3
- data/lib/active_admin/namespace.rb +2 -44
- data/lib/active_admin/namespace_settings.rb +2 -35
- data/lib/active_admin/order_clause.rb +4 -1
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
- data/lib/active_admin/orm/active_record/comments.rb +10 -5
- data/lib/active_admin/resource/action_items.rb +15 -20
- data/lib/active_admin/resource/naming.rb +1 -2
- data/lib/active_admin/resource.rb +1 -0
- data/lib/active_admin/resource_dsl.rb +1 -1
- data/lib/active_admin/scope.rb +1 -1
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/sidebar_section.rb +0 -5
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +0 -12
- data/lib/active_admin/views/components/active_admin_form.rb +20 -16
- data/lib/active_admin/views/components/attributes_table.rb +4 -12
- data/lib/active_admin/views/components/index_list.rb +10 -23
- data/lib/active_admin/views/components/paginated_collection.rb +34 -39
- data/lib/active_admin/views/components/panel.rb +2 -10
- data/lib/active_admin/views/components/scopes.rb +12 -21
- data/lib/active_admin/views/components/status_tag.rb +22 -19
- data/lib/active_admin/views/components/table_for.rb +19 -24
- data/lib/active_admin/views/components/tabs.rb +10 -11
- data/lib/active_admin/views/index_as_table.rb +24 -97
- data/lib/active_admin.rb +7 -11
- data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
- data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
- data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
- data/lib/generators/active_admin/install/install_generator.rb +2 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
- data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
- data/lib/generators/active_admin/page/page_generator.rb +0 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
- data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
- data/lib/generators/active_admin/views_generator.rb +18 -0
- metadata +67 -214
- data/app/assets/javascripts/active_admin/base.js +0 -521
- data/app/assets/stylesheets/active_admin/_base.scss +0 -57
- data/app/assets/stylesheets/active_admin/_forms.scss +0 -316
- data/app/assets/stylesheets/active_admin/_header.scss +0 -188
- data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
- data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
- data/app/assets/stylesheets/active_admin/_print.scss +0 -287
- data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
- data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -151
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
- data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
- data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -55
- data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -67
- data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
- data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -40
- data/app/javascript/active_admin/base.js +0 -28
- data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
- data/app/javascript/active_admin/ext/jquery.js +0 -9
- data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
- data/app/javascript/active_admin/initializers/datepicker.js +0 -16
- data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
- data/app/javascript/active_admin/initializers/filters.js +0 -10
- data/app/javascript/active_admin/initializers/has-many.js +0 -98
- data/app/javascript/active_admin/initializers/per-page.js +0 -13
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
- data/app/javascript/active_admin/initializers/tabs.js +0 -6
- data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
- data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
- data/app/javascript/active_admin/lib/filters.js +0 -39
- data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
- data/app/javascript/active_admin/lib/per-page.js +0 -38
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
- data/app/javascript/active_admin/lib/utils.js +0 -40
- data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
- data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_page.html.erb +0 -12
- data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
- data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
- data/app/views/layouts/active_admin.html.arb +0 -2
- data/lib/active_admin/abstract_view_factory.rb +0 -48
- data/lib/active_admin/asset_registration.rb +0 -30
- data/lib/active_admin/base_controller/menu.rb +0 -35
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
- data/lib/active_admin/filters/active_sidebar.rb +0 -28
- data/lib/active_admin/generators/boilerplate.rb +0 -54
- data/lib/active_admin/helpers/collection.rb +0 -21
- data/lib/active_admin/helpers/i18n.rb +0 -8
- data/lib/active_admin/inputs/datepicker_input.rb +0 -28
- data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
- data/lib/active_admin/orm/mongoid.rb +0 -2
- data/lib/active_admin/resource_controller/sidebars.rb +0 -19
- data/lib/active_admin/resource_controller.rb +0 -68
- data/lib/active_admin/view_factory.rb +0 -28
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
- data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
- data/lib/active_admin/view_helpers/display_helper.rb +0 -119
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
- data/lib/active_admin/view_helpers/fields_for.rb +0 -51
- data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
- data/lib/active_admin/view_helpers/form_helper.rb +0 -21
- data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
- data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
- data/lib/active_admin/view_helpers/title_helper.rb +0 -12
- data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
- data/lib/active_admin/views/action_items.rb +0 -18
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
- data/lib/active_admin/views/components/blank_slate.rb +0 -18
- data/lib/active_admin/views/components/columns.rb +0 -162
- data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
- data/lib/active_admin/views/components/menu.rb +0 -33
- data/lib/active_admin/views/components/menu_item.rb +0 -59
- data/lib/active_admin/views/components/sidebar.rb +0 -14
- data/lib/active_admin/views/components/sidebar_section.rb +0 -35
- data/lib/active_admin/views/components/site_title.rb +0 -55
- data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
- data/lib/active_admin/views/footer.rb +0 -32
- data/lib/active_admin/views/header.rb +0 -20
- data/lib/active_admin/views/index_as_block.rb +0 -37
- data/lib/active_admin/views/index_as_blog.rb +0 -156
- data/lib/active_admin/views/index_as_grid.rb +0 -81
- data/lib/active_admin/views/pages/base.rb +0 -134
- data/lib/active_admin/views/pages/form.rb +0 -65
- data/lib/active_admin/views/pages/index.rb +0 -166
- data/lib/active_admin/views/pages/layout.rb +0 -27
- data/lib/active_admin/views/pages/page.rb +0 -31
- data/lib/active_admin/views/pages/show.rb +0 -60
- data/lib/active_admin/views/tabbed_navigation.rb +0 -12
- data/lib/active_admin/views/title_bar.rb +0 -56
- data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
- data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
- data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
- data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
- data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
- data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
- data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
- data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
- data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
- /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
- /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,166 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require "active_admin/helpers/collection"
|
3
|
-
|
4
|
-
module ActiveAdmin
|
5
|
-
module Views
|
6
|
-
module Pages
|
7
|
-
|
8
|
-
class Index < Base
|
9
|
-
|
10
|
-
def title
|
11
|
-
if Proc === config[:title]
|
12
|
-
controller.instance_exec &config[:title]
|
13
|
-
else
|
14
|
-
config[:title] || assigns[:page_title] || active_admin_config.plural_resource_label
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Retrieves the given page presenter, or uses the default.
|
19
|
-
def config
|
20
|
-
active_admin_config.get_page_presenter(:index, params[:as]) ||
|
21
|
-
ActiveAdmin::PagePresenter.new(as: :table)
|
22
|
-
end
|
23
|
-
|
24
|
-
# Renders the index configuration that was set in the
|
25
|
-
# controller. Defaults to rendering the ActiveAdmin::Pages::Index::Table
|
26
|
-
def main_content
|
27
|
-
wrap_with_batch_action_form do
|
28
|
-
build_table_tools
|
29
|
-
build_collection
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
protected
|
34
|
-
|
35
|
-
def wrap_with_batch_action_form(&block)
|
36
|
-
if active_admin_config.batch_actions.any?
|
37
|
-
batch_action_form(&block)
|
38
|
-
else
|
39
|
-
block.call
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
include ::ActiveAdmin::Helpers::Collection
|
44
|
-
|
45
|
-
def items_in_collection?
|
46
|
-
!collection_is_empty?
|
47
|
-
end
|
48
|
-
|
49
|
-
def build_collection
|
50
|
-
if items_in_collection?
|
51
|
-
render_index
|
52
|
-
else
|
53
|
-
if params[:q] || params[:scope]
|
54
|
-
render_empty_results
|
55
|
-
else
|
56
|
-
render_blank_slate
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
|
62
|
-
|
63
|
-
def build_table_tools
|
64
|
-
div class: "table_tools" do
|
65
|
-
build_batch_actions_selector
|
66
|
-
build_scopes
|
67
|
-
build_index_list
|
68
|
-
end if any_table_tools?
|
69
|
-
end
|
70
|
-
|
71
|
-
def any_table_tools?
|
72
|
-
active_admin_config.batch_actions.any? ||
|
73
|
-
active_admin_config.scopes.any? ||
|
74
|
-
active_admin_config.page_presenters[:index].try(:size).try(:>, 1)
|
75
|
-
end
|
76
|
-
|
77
|
-
def build_batch_actions_selector
|
78
|
-
if active_admin_config.batch_actions.any?
|
79
|
-
insert_tag view_factory.batch_action_selector, active_admin_config.batch_actions
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def build_scopes
|
84
|
-
if active_admin_config.scopes.any?
|
85
|
-
scope_options = {
|
86
|
-
scope_count: config.fetch(:scope_count, true)
|
87
|
-
}
|
88
|
-
|
89
|
-
scopes_renderer active_admin_config.scopes, scope_options
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
def build_index_list
|
94
|
-
indexes = active_admin_config.page_presenters[:index]
|
95
|
-
|
96
|
-
if indexes.kind_of?(Hash) && indexes.length > 1
|
97
|
-
index_classes = []
|
98
|
-
active_admin_config.page_presenters[:index].each do |type, page_presenter|
|
99
|
-
index_classes << find_index_renderer_class(page_presenter[:as])
|
100
|
-
end
|
101
|
-
|
102
|
-
index_list_renderer index_classes
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
# Returns the actual class for renderering the main content on the index
|
107
|
-
# page. To set this, use the :as option in the page_presenter block.
|
108
|
-
def find_index_renderer_class(klass)
|
109
|
-
klass.is_a?(Class) ? klass :
|
110
|
-
::ActiveAdmin::Views.const_get("IndexAs" + klass.to_s.camelcase)
|
111
|
-
end
|
112
|
-
|
113
|
-
def render_blank_slate
|
114
|
-
blank_slate_content = I18n.t("active_admin.blank_slate.content", resource_name: active_admin_config.plural_resource_label)
|
115
|
-
if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::NEW, active_admin_config.resource_class)
|
116
|
-
blank_slate_content = [blank_slate_content, blank_slate_link].compact.join(" ")
|
117
|
-
end
|
118
|
-
insert_tag(view_factory.blank_slate, blank_slate_content)
|
119
|
-
end
|
120
|
-
|
121
|
-
def render_empty_results
|
122
|
-
empty_results_content = I18n.t("active_admin.pagination.empty", model: active_admin_config.plural_resource_label)
|
123
|
-
insert_tag(view_factory.blank_slate, empty_results_content)
|
124
|
-
end
|
125
|
-
|
126
|
-
def render_index
|
127
|
-
renderer_class = find_index_renderer_class(config[:as])
|
128
|
-
|
129
|
-
paginator = config.fetch(:paginator, true)
|
130
|
-
download_links = config.fetch(:download_links, active_admin_config.namespace.download_links)
|
131
|
-
pagination_total = config.fetch(:pagination_total, true)
|
132
|
-
per_page = config.fetch(:per_page, active_admin_config.per_page)
|
133
|
-
|
134
|
-
paginated_collection(
|
135
|
-
collection, entry_name: active_admin_config.resource_label,
|
136
|
-
entries_name: active_admin_config.plural_resource_label(count: collection_size),
|
137
|
-
download_links: download_links,
|
138
|
-
paginator: paginator,
|
139
|
-
per_page: per_page,
|
140
|
-
pagination_total: pagination_total) do
|
141
|
-
div class: "index_content" do
|
142
|
-
insert_tag(renderer_class, config, collection)
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
private
|
148
|
-
|
149
|
-
def blank_slate_link
|
150
|
-
if config.options.has_key?(:blank_slate_link)
|
151
|
-
blank_slate_link = config.options[:blank_slate_link]
|
152
|
-
if blank_slate_link.is_a?(Proc)
|
153
|
-
instance_exec(&blank_slate_link)
|
154
|
-
end
|
155
|
-
else
|
156
|
-
default_blank_slate_link
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
def default_blank_slate_link
|
161
|
-
link_to(I18n.t("active_admin.blank_slate.link"), new_resource_path)
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Views
|
4
|
-
module Pages
|
5
|
-
|
6
|
-
# Acts as a standard Rails Layout for use when logged
|
7
|
-
# out or when rendering custom actions.
|
8
|
-
class Layout < Base
|
9
|
-
|
10
|
-
def title
|
11
|
-
assigns[:page_title] || I18n.t("active_admin.#{params[:action]}", default: params[:action].to_s.titleize)
|
12
|
-
end
|
13
|
-
|
14
|
-
# Render the content_for(:layout) into the main content area
|
15
|
-
def main_content
|
16
|
-
content_for_layout = content_for(:layout)
|
17
|
-
if content_for_layout.is_a?(Arbre::Element)
|
18
|
-
current_arbre_element.add_child content_for_layout.children
|
19
|
-
else
|
20
|
-
text_node content_for_layout
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Views
|
4
|
-
module Pages
|
5
|
-
class Page < Base
|
6
|
-
|
7
|
-
def main_content
|
8
|
-
if page_presenter.block
|
9
|
-
instance_exec &page_presenter.block
|
10
|
-
else
|
11
|
-
nil
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
protected
|
16
|
-
|
17
|
-
def page_presenter
|
18
|
-
active_admin_config.get_page_presenter(:index) || ActiveAdmin::PagePresenter.new
|
19
|
-
end
|
20
|
-
|
21
|
-
def title
|
22
|
-
if page_presenter[:title]
|
23
|
-
render_or_call_method_or_proc_on self, page_presenter[:title]
|
24
|
-
else
|
25
|
-
active_admin_config.name
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Views
|
4
|
-
module Pages
|
5
|
-
class Show < Base
|
6
|
-
|
7
|
-
def config
|
8
|
-
active_admin_config.get_page_presenter(:show) || super
|
9
|
-
end
|
10
|
-
|
11
|
-
def title
|
12
|
-
if config[:title]
|
13
|
-
render_or_call_method_or_proc_on(resource, config[:title])
|
14
|
-
else
|
15
|
-
assigns[:page_title] || default_title
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def main_content
|
20
|
-
if config.block
|
21
|
-
# Eval the show config from the controller
|
22
|
-
instance_exec resource, &config.block
|
23
|
-
else
|
24
|
-
default_main_content
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def attributes_table(*args, &block)
|
29
|
-
opts = args.extract_options!
|
30
|
-
table_title = if opts.has_key?(:title)
|
31
|
-
render_or_call_method_or_proc_on(resource, opts[:title])
|
32
|
-
else
|
33
|
-
ActiveAdmin::Localizers.resource(active_admin_config).t(:details)
|
34
|
-
end
|
35
|
-
panel(table_title) do
|
36
|
-
attributes_table_for resource, *args, &block
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
protected
|
41
|
-
|
42
|
-
def default_title
|
43
|
-
display_name(resource)
|
44
|
-
end
|
45
|
-
|
46
|
-
module DefaultMainContent
|
47
|
-
def default_main_content(&block)
|
48
|
-
attributes_table(*default_attribute_table_rows, &block)
|
49
|
-
end
|
50
|
-
|
51
|
-
def default_attribute_table_rows
|
52
|
-
active_admin_config.resource_columns
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
include DefaultMainContent
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Views
|
4
|
-
class TitleBar < Component
|
5
|
-
|
6
|
-
def build(title, action_items)
|
7
|
-
super(id: "title_bar")
|
8
|
-
@title = title
|
9
|
-
@action_items = action_items
|
10
|
-
build_titlebar_left
|
11
|
-
build_titlebar_right
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def build_titlebar_left
|
17
|
-
div id: "titlebar_left" do
|
18
|
-
build_breadcrumb
|
19
|
-
build_title_tag
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def build_titlebar_right
|
24
|
-
div id: "titlebar_right" do
|
25
|
-
build_action_items
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def build_breadcrumb(separator = "/")
|
30
|
-
breadcrumb_config = active_admin_config && active_admin_config.breadcrumb
|
31
|
-
|
32
|
-
links = if breadcrumb_config.is_a?(Proc)
|
33
|
-
instance_exec(controller, &active_admin_config.breadcrumb)
|
34
|
-
elsif breadcrumb_config.present?
|
35
|
-
breadcrumb_links
|
36
|
-
end
|
37
|
-
return unless links.present? && links.is_a?(::Array)
|
38
|
-
span class: "breadcrumb" do
|
39
|
-
links.each do |link|
|
40
|
-
text_node link
|
41
|
-
span(separator, class: "breadcrumb_sep")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def build_title_tag
|
47
|
-
h2(@title, id: "page_title")
|
48
|
-
end
|
49
|
-
|
50
|
-
def build_action_items
|
51
|
-
insert_tag(view_factory.action_items, @action_items)
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
//= require active_admin/base
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// Sass variable overrides must be declared before loading up Active Admin's styles.
|
2
|
-
//
|
3
|
-
// To view the variables that Active Admin provides, take a look at
|
4
|
-
// `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
|
5
|
-
// Active Admin source.
|
6
|
-
//
|
7
|
-
// For example, to change the sidebar width:
|
8
|
-
// $sidebar-width: 242px;
|
9
|
-
|
10
|
-
// Active Admin's got SASS!
|
11
|
-
@import "active_admin/mixins";
|
12
|
-
@import "active_admin/base";
|
13
|
-
|
14
|
-
// Overriding any non-variable Sass must be done after the fact.
|
15
|
-
// For example, to change the default status-tag color:
|
16
|
-
//
|
17
|
-
// .status_tag { background: #6090DB; }
|
@@ -1,46 +0,0 @@
|
|
1
|
-
ActiveAdmin.register <%= class_name %> do
|
2
|
-
|
3
|
-
# See permitted parameters documentation:
|
4
|
-
# https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
|
5
|
-
#
|
6
|
-
# Uncomment all parameters which should be permitted for assignment
|
7
|
-
#
|
8
|
-
# permit_params <%= @boilerplate.permit_params %>
|
9
|
-
#
|
10
|
-
# or
|
11
|
-
#
|
12
|
-
# permit_params do
|
13
|
-
# permitted = [<%= @boilerplate.permit_params %>]
|
14
|
-
# permitted << :other if params[:action] == 'create' && current_user.admin?
|
15
|
-
# permitted
|
16
|
-
# end
|
17
|
-
<% if options.include_boilerplate? %>
|
18
|
-
# Limit actions available to your users by adding them to the 'except' array
|
19
|
-
# actions :all, except: []
|
20
|
-
|
21
|
-
# Add or remove filters (you can use any ActiveRecord scope) to toggle their
|
22
|
-
# visibility in the sidebar
|
23
|
-
<%= @boilerplate.filters %>
|
24
|
-
|
25
|
-
# Add or remove columns to toggle their visiblity in the index action
|
26
|
-
# index do
|
27
|
-
# selectable_column
|
28
|
-
# id_column
|
29
|
-
<%= @boilerplate.columns %>
|
30
|
-
# actions
|
31
|
-
# end
|
32
|
-
|
33
|
-
# Add or remove rows to toggle their visiblity in the show action
|
34
|
-
# show do |<%= class_name.downcase %>|
|
35
|
-
<%= @boilerplate.rows %>
|
36
|
-
# end
|
37
|
-
|
38
|
-
# Add or remove fields to toggle their visibility in the form
|
39
|
-
# form do |f|
|
40
|
-
# f.inputs do
|
41
|
-
<%= @boilerplate.form_inputs %>
|
42
|
-
# end
|
43
|
-
# f.actions
|
44
|
-
# end
|
45
|
-
<% end %>
|
46
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// Sass variable overrides must be declared before loading up Active Admin's styles.
|
2
|
-
//
|
3
|
-
// To view the variables that Active Admin provides, take a look at
|
4
|
-
// `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
|
5
|
-
// Active Admin source.
|
6
|
-
//
|
7
|
-
// For example, to change the sidebar width:
|
8
|
-
// $sidebar-width: 242px;
|
9
|
-
|
10
|
-
// Active Admin's got SASS!
|
11
|
-
@import "~@activeadmin/activeadmin/src/scss/mixins";
|
12
|
-
@import "~@activeadmin/activeadmin/src/scss/base";
|
13
|
-
|
14
|
-
// Overriding any non-variable Sass must be done after the fact.
|
15
|
-
// For example, to change the default status-tag color:
|
16
|
-
//
|
17
|
-
// .status_tag { background: #6090DB; }
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module ActiveAdmin
|
3
|
-
module Generators
|
4
|
-
class WebpackerGenerator < Rails::Generators::Base
|
5
|
-
|
6
|
-
source_root File.expand_path("templates", __dir__)
|
7
|
-
|
8
|
-
def install_assets
|
9
|
-
template "active_admin.js", "app/javascript/packs/active_admin.js"
|
10
|
-
template "active_admin.scss", "app/javascript/stylesheets/active_admin.scss"
|
11
|
-
template "print.scss", "app/javascript/packs/active_admin/print.scss"
|
12
|
-
|
13
|
-
copy_file "#{__dir__}/plugins/jquery.js", Rails.root.join("config/webpack/plugins/jquery.js").to_s
|
14
|
-
|
15
|
-
insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
|
16
|
-
"const jquery = require('./plugins/jquery')\n",
|
17
|
-
after: /require\(('|")@rails\/webpacker\1\);?\n/
|
18
|
-
|
19
|
-
insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
|
20
|
-
"environment.plugins.prepend('jquery', jquery)\n",
|
21
|
-
before: "module.exports"
|
22
|
-
|
23
|
-
run "yarn add @activeadmin/activeadmin"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
//= require jquery-ui/version
|
2
|
-
|
3
|
-
/*!
|
4
|
-
* jQuery UI :data 1.13.3
|
5
|
-
* https://jqueryui.com
|
6
|
-
*
|
7
|
-
* Copyright OpenJS Foundation and other contributors
|
8
|
-
* Released under the MIT license.
|
9
|
-
* https://jquery.org/license
|
10
|
-
*/
|
11
|
-
|
12
|
-
//>>label: :data Selector
|
13
|
-
//>>group: Core
|
14
|
-
//>>description: Selects elements which have data stored under the specified key.
|
15
|
-
//>>docs: https://api.jqueryui.com/data-selector/
|
16
|
-
|
17
|
-
( function( factory ) {
|
18
|
-
"use strict";
|
19
|
-
|
20
|
-
if ( typeof define === "function" && define.amd ) {
|
21
|
-
|
22
|
-
// AMD. Register as an anonymous module.
|
23
|
-
define( [ "jquery", "./version" ], factory );
|
24
|
-
} else {
|
25
|
-
|
26
|
-
// Browser globals
|
27
|
-
factory( jQuery );
|
28
|
-
}
|
29
|
-
} )( function( $ ) {
|
30
|
-
"use strict";
|
31
|
-
|
32
|
-
return $.extend( $.expr.pseudos, {
|
33
|
-
data: $.expr.createPseudo ?
|
34
|
-
$.expr.createPseudo( function( dataName ) {
|
35
|
-
return function( elem ) {
|
36
|
-
return !!$.data( elem, dataName );
|
37
|
-
};
|
38
|
-
} ) :
|
39
|
-
|
40
|
-
// Support: jQuery <1.8
|
41
|
-
function( elem, i, match ) {
|
42
|
-
return !!$.data( elem, match[ 3 ] );
|
43
|
-
}
|
44
|
-
} );
|
45
|
-
} );
|
@@ -1,51 +0,0 @@
|
|
1
|
-
//= require jquery-ui/version
|
2
|
-
|
3
|
-
/*!
|
4
|
-
* jQuery UI Disable Selection 1.13.3
|
5
|
-
* https://jqueryui.com
|
6
|
-
*
|
7
|
-
* Copyright OpenJS Foundation and other contributors
|
8
|
-
* Released under the MIT license.
|
9
|
-
* https://jquery.org/license
|
10
|
-
*/
|
11
|
-
|
12
|
-
//>>label: disableSelection
|
13
|
-
//>>group: Core
|
14
|
-
//>>description: Disable selection of text content within the set of matched elements.
|
15
|
-
//>>docs: https://api.jqueryui.com/disableSelection/
|
16
|
-
|
17
|
-
// This file is deprecated
|
18
|
-
( function( factory ) {
|
19
|
-
"use strict";
|
20
|
-
|
21
|
-
if ( typeof define === "function" && define.amd ) {
|
22
|
-
|
23
|
-
// AMD. Register as an anonymous module.
|
24
|
-
define( [ "jquery", "./version" ], factory );
|
25
|
-
} else {
|
26
|
-
|
27
|
-
// Browser globals
|
28
|
-
factory( jQuery );
|
29
|
-
}
|
30
|
-
} )( function( $ ) {
|
31
|
-
"use strict";
|
32
|
-
|
33
|
-
return $.fn.extend( {
|
34
|
-
disableSelection: ( function() {
|
35
|
-
var eventType = "onselectstart" in document.createElement( "div" ) ?
|
36
|
-
"selectstart" :
|
37
|
-
"mousedown";
|
38
|
-
|
39
|
-
return function() {
|
40
|
-
return this.on( eventType + ".ui-disableSelection", function( event ) {
|
41
|
-
event.preventDefault();
|
42
|
-
} );
|
43
|
-
};
|
44
|
-
} )(),
|
45
|
-
|
46
|
-
enableSelection: function() {
|
47
|
-
return this.off( ".ui-disableSelection" );
|
48
|
-
}
|
49
|
-
} );
|
50
|
-
|
51
|
-
} );
|
@@ -1,89 +0,0 @@
|
|
1
|
-
//= require jquery-ui/version
|
2
|
-
|
3
|
-
/*!
|
4
|
-
* jQuery UI Focusable 1.13.3
|
5
|
-
* https://jqueryui.com
|
6
|
-
*
|
7
|
-
* Copyright OpenJS Foundation and other contributors
|
8
|
-
* Released under the MIT license.
|
9
|
-
* https://jquery.org/license
|
10
|
-
*/
|
11
|
-
|
12
|
-
//>>label: :focusable Selector
|
13
|
-
//>>group: Core
|
14
|
-
//>>description: Selects elements which can be focused.
|
15
|
-
//>>docs: https://api.jqueryui.com/focusable-selector/
|
16
|
-
|
17
|
-
( function( factory ) {
|
18
|
-
"use strict";
|
19
|
-
|
20
|
-
if ( typeof define === "function" && define.amd ) {
|
21
|
-
|
22
|
-
// AMD. Register as an anonymous module.
|
23
|
-
define( [ "jquery", "./version" ], factory );
|
24
|
-
} else {
|
25
|
-
|
26
|
-
// Browser globals
|
27
|
-
factory( jQuery );
|
28
|
-
}
|
29
|
-
} )( function( $ ) {
|
30
|
-
"use strict";
|
31
|
-
|
32
|
-
// Selectors
|
33
|
-
$.ui.focusable = function( element, hasTabindex ) {
|
34
|
-
var map, mapName, img, focusableIfVisible, fieldset,
|
35
|
-
nodeName = element.nodeName.toLowerCase();
|
36
|
-
|
37
|
-
if ( "area" === nodeName ) {
|
38
|
-
map = element.parentNode;
|
39
|
-
mapName = map.name;
|
40
|
-
if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
|
41
|
-
return false;
|
42
|
-
}
|
43
|
-
img = $( "img[usemap='#" + mapName + "']" );
|
44
|
-
return img.length > 0 && img.is( ":visible" );
|
45
|
-
}
|
46
|
-
|
47
|
-
if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {
|
48
|
-
focusableIfVisible = !element.disabled;
|
49
|
-
|
50
|
-
if ( focusableIfVisible ) {
|
51
|
-
|
52
|
-
// Form controls within a disabled fieldset are disabled.
|
53
|
-
// However, controls within the fieldset's legend do not get disabled.
|
54
|
-
// Since controls generally aren't placed inside legends, we skip
|
55
|
-
// this portion of the check.
|
56
|
-
fieldset = $( element ).closest( "fieldset" )[ 0 ];
|
57
|
-
if ( fieldset ) {
|
58
|
-
focusableIfVisible = !fieldset.disabled;
|
59
|
-
}
|
60
|
-
}
|
61
|
-
} else if ( "a" === nodeName ) {
|
62
|
-
focusableIfVisible = element.href || hasTabindex;
|
63
|
-
} else {
|
64
|
-
focusableIfVisible = hasTabindex;
|
65
|
-
}
|
66
|
-
|
67
|
-
return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
|
68
|
-
};
|
69
|
-
|
70
|
-
// Support: IE 8 only
|
71
|
-
// IE 8 doesn't resolve inherit to visible/hidden for computed values
|
72
|
-
function visible( element ) {
|
73
|
-
var visibility = element.css( "visibility" );
|
74
|
-
while ( visibility === "inherit" ) {
|
75
|
-
element = element.parent();
|
76
|
-
visibility = element.css( "visibility" );
|
77
|
-
}
|
78
|
-
return visibility === "visible";
|
79
|
-
}
|
80
|
-
|
81
|
-
$.extend( $.expr.pseudos, {
|
82
|
-
focusable: function( element ) {
|
83
|
-
return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
|
84
|
-
}
|
85
|
-
} );
|
86
|
-
|
87
|
-
return $.ui.focusable;
|
88
|
-
|
89
|
-
} );
|