activeadmin 2.6.1 → 3.2.3
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 +438 -9
- data/CONTRIBUTING.md +12 -36
- data/README.md +8 -8
- data/app/assets/javascripts/active_admin/base.js +27 -25
- data/app/assets/stylesheets/active_admin/_base.scss +53 -37
- data/app/assets/stylesheets/active_admin/_forms.scss +2 -13
- data/app/assets/stylesheets/active_admin/_header.scss +37 -3
- data/app/assets/stylesheets/active_admin/_normalize.scss +25 -123
- 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 +7 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +5 -2
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +9 -6
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +10 -7
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +2 -2
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +12 -0
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +6 -4
- data/app/javascript/active_admin/initializers/has-many.js +4 -1
- data/app/javascript/active_admin/initializers/per-page.js +1 -1
- data/app/javascript/active_admin/lib/checkbox-toggler.js +3 -3
- data/app/javascript/active_admin/lib/dropdown-menu.js +1 -1
- data/app/javascript/active_admin/lib/modal-dialog.js +7 -7
- data/app/javascript/active_admin/lib/per-page.js +1 -1
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +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/shared/_links.erb +1 -1
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +18 -7
- data/config/locales/ar.yml +6 -13
- data/config/locales/az.yml +0 -7
- data/config/locales/bg.yml +0 -7
- data/config/locales/bs.yml +0 -7
- data/config/locales/ca.yml +0 -7
- data/config/locales/cs.yml +0 -7
- data/config/locales/da.yml +0 -7
- data/config/locales/de-CH.yml +0 -7
- data/config/locales/de.yml +0 -8
- data/config/locales/el.yml +0 -7
- data/config/locales/en-CA.yml +0 -7
- data/config/locales/en-GB.yml +0 -7
- data/config/locales/en.yml +0 -8
- data/config/locales/eo.yml +0 -8
- data/config/locales/es-MX.yml +2 -8
- data/config/locales/es.yml +2 -10
- data/config/locales/fa.yml +0 -7
- data/config/locales/fi.yml +0 -7
- data/config/locales/fr.yml +3 -11
- data/config/locales/he.yml +0 -9
- data/config/locales/hr.yml +0 -7
- data/config/locales/hu.yml +0 -8
- data/config/locales/id.yml +0 -7
- data/config/locales/it.yml +18 -8
- data/config/locales/ja.yml +2 -10
- data/config/locales/ko.yml +1 -8
- data/config/locales/lt.yml +0 -8
- data/config/locales/lv.yml +0 -7
- data/config/locales/mk.yml +0 -8
- data/config/locales/nb.yml +0 -8
- data/config/locales/nl.yml +1 -9
- data/config/locales/pl.yml +0 -8
- data/config/locales/pt-BR.yml +0 -8
- data/config/locales/pt-PT.yml +0 -7
- data/config/locales/ro.yml +3 -9
- data/config/locales/ru.yml +0 -6
- data/config/locales/sk.yml +0 -8
- data/config/locales/sv-SE.yml +58 -39
- data/config/locales/tr.yml +0 -11
- data/config/locales/uk.yml +0 -6
- data/config/locales/vi.yml +38 -19
- data/config/locales/zh-CN.yml +34 -23
- data/config/locales/zh-TW.yml +0 -7
- data/lib/active_admin/abstract_view_factory.rb +1 -0
- data/lib/active_admin/application.rb +19 -19
- data/lib/active_admin/application_settings.rb +4 -3
- data/lib/active_admin/asset_registration.rb +4 -3
- data/lib/active_admin/authorization_adapter.rb +6 -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 +25 -17
- data/lib/active_admin/dependency.rb +12 -15
- 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 +17 -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 +6 -6
- 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 +9 -8
- data/lib/active_admin/filters/formtastic_addons.rb +3 -7
- data/lib/active_admin/filters/resource_extension.rb +6 -5
- data/lib/active_admin/filters.rb +8 -7
- data/lib/active_admin/form_builder.rb +25 -20
- data/lib/active_admin/generators/boilerplate.rb +2 -1
- 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 +7 -6
- 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 +3 -2
- data/lib/active_admin/inputs/filters/numeric_input.rb +2 -1
- data/lib/active_admin/inputs/filters/select_input.rb +5 -2
- data/lib/active_admin/inputs/filters/string_input.rb +2 -1
- 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 +8 -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 +16 -15
- data/lib/active_admin/namespace_settings.rb +9 -5
- data/lib/active_admin/order_clause.rb +2 -1
- data/lib/active_admin/orm/active_record/comments/comment.rb +12 -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 +21 -20
- data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
- data/lib/active_admin/orm/active_record/comments.rb +28 -27
- 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 +58 -16
- data/lib/active_admin/resource/action_items.rb +6 -5
- data/lib/active_admin/resource/attributes.rb +9 -1
- data/lib/active_admin/resource/belongs_to.rb +3 -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 +1 -0
- data/lib/active_admin/resource/naming.rb +5 -4
- 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 +6 -7
- 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 +20 -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 +7 -28
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -0
- data/lib/active_admin/resource_controller/sidebars.rb +1 -0
- data/lib/active_admin/resource_controller/streaming.rb +9 -7
- data/lib/active_admin/resource_controller.rb +13 -11
- 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 +2 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
- data/lib/active_admin/view_helpers/display_helper.rb +23 -8
- 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 +8 -11
- 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 +19 -18
- 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 +18 -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 +16 -19
- data/lib/active_admin/views/pages/base.rb +17 -11
- data/lib/active_admin/views/pages/form.rb +1 -0
- data/lib/active_admin/views/pages/index.rb +15 -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 +2 -7
- 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 -61
- 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 +27 -3
- 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/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/vendor/assets/javascripts/jquery-ui/data.js +12 -8
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +10 -7
- data/vendor/assets/javascripts/jquery-ui/focusable.js +12 -9
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +60 -57
- data/vendor/assets/javascripts/jquery-ui/form.js +15 -12
- data/vendor/assets/javascripts/jquery-ui/ie.js +5 -2
- data/vendor/assets/javascripts/jquery-ui/keycode.js +11 -7
- data/vendor/assets/javascripts/jquery-ui/labels.js +46 -40
- data/vendor/assets/javascripts/jquery-ui/plugin.js +5 -2
- data/vendor/assets/javascripts/jquery-ui/position.js +30 -17
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +6 -2
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +6 -2
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +10 -7
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +11 -8
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +10 -7
- data/vendor/assets/javascripts/jquery-ui/version.js +6 -3
- data/vendor/assets/javascripts/jquery-ui/widget.js +53 -30
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +87 -24
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +276 -273
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +15 -11
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +182 -62
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +53 -36
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +28 -19
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +22 -11
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +47 -26
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +186 -125
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +20 -20
- metadata +48 -114
- data/docs/.gitignore +0 -1
- data/docs/0-installation.md +0 -118
- data/docs/1-general-configuration.md +0 -224
- data/docs/10-custom-pages.md +0 -150
- data/docs/11-decorators.md +0 -59
- data/docs/12-arbre-components.md +0 -214
- data/docs/13-authorization-adapter.md +0 -285
- data/docs/14-gotchas.md +0 -138
- data/docs/2-resource-customization.md +0 -466
- data/docs/3-index-pages/custom-index.md +0 -35
- data/docs/3-index-pages/index-as-block.md +0 -19
- data/docs/3-index-pages/index-as-blog.md +0 -69
- data/docs/3-index-pages/index-as-grid.md +0 -27
- data/docs/3-index-pages/index-as-table.md +0 -234
- data/docs/3-index-pages.md +0 -328
- data/docs/4-csv-format.md +0 -74
- data/docs/5-forms.md +0 -232
- data/docs/6-show-pages.md +0 -81
- data/docs/7-sidebars.md +0 -75
- data/docs/8-custom-actions.md +0 -177
- data/docs/9-batch-actions.md +0 -237
- data/docs/CNAME +0 -1
- data/docs/Gemfile +0 -3
- data/docs/Gemfile.lock +0 -248
- data/docs/README.md +0 -24
- data/docs/_config.yml +0 -4
- data/docs/_includes/footer.html +0 -8
- data/docs/_includes/google-analytics.html +0 -16
- data/docs/_includes/head.html +0 -7
- data/docs/_includes/toc.html +0 -98
- data/docs/_includes/top-menu.html +0 -17
- data/docs/_layouts/default.html +0 -21
- data/docs/documentation.md +0 -60
- data/docs/images/activeadmin.png +0 -0
- data/docs/images/code-header.png +0 -0
- data/docs/images/divider.png +0 -0
- data/docs/images/features.png +0 -0
- data/docs/images/tidelift.svg +0 -14
- data/docs/index.html +0 -226
- data/docs/stylesheets/main.css +0 -1205
- data/lib/active_admin/deprecation.rb +0 -10
- data/lib/ransack_ext.rb +0 -20
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
- /data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
data/CONTRIBUTING.md
CHANGED
|
@@ -25,8 +25,7 @@ git checkout -b 325-add-japanese-translations
|
|
|
25
25
|
|
|
26
26
|
### Get the test suite running
|
|
27
27
|
|
|
28
|
-
Make sure you're using a recent
|
|
29
|
-
least version `1.14.3`.
|
|
28
|
+
Make sure you're using a recent Ruby version.
|
|
30
29
|
|
|
31
30
|
You'll also need chrome installed in order to run cucumber scenarios.
|
|
32
31
|
|
|
@@ -56,14 +55,14 @@ Now you should be able to run the entire suite using:
|
|
|
56
55
|
bin/rake
|
|
57
56
|
```
|
|
58
57
|
|
|
59
|
-
The
|
|
60
|
-
|
|
58
|
+
The task will generate a sample Rails application in `tmp/test_apps` to run the
|
|
59
|
+
test suite against.
|
|
61
60
|
|
|
62
61
|
If you want to test against a Rails version different from the latest, make sure
|
|
63
62
|
you use the correct Gemfile, for example:
|
|
64
63
|
|
|
65
64
|
```sh
|
|
66
|
-
export BUNDLE_GEMFILE=gemfiles/
|
|
65
|
+
export BUNDLE_GEMFILE=gemfiles/rails_61/Gemfile
|
|
67
66
|
```
|
|
68
67
|
|
|
69
68
|
**Warning** SCSS assets are aimed to be used indifferently with Sprockets **and** webpacker.
|
|
@@ -108,29 +107,6 @@ with the db:
|
|
|
108
107
|
bin/rake local db:migrate
|
|
109
108
|
```
|
|
110
109
|
|
|
111
|
-
### Get the style right
|
|
112
|
-
|
|
113
|
-
Your patch should follow the same conventions & pass the same code quality
|
|
114
|
-
checks as the rest of the project. `bin/rake lint` will give you feedback in
|
|
115
|
-
this regard. You can check & fix style issues by running each linter
|
|
116
|
-
individually. Run `bin/rake -T lint` to see the available linters.
|
|
117
|
-
|
|
118
|
-
### Add a changelog entry
|
|
119
|
-
|
|
120
|
-
If your PR includes user-observable changes, you'll be asked to add a changelog
|
|
121
|
-
entry following the existing changelog format.
|
|
122
|
-
|
|
123
|
-
The changelog format is the following:
|
|
124
|
-
|
|
125
|
-
* One line per PR describing your fix or enhancement.
|
|
126
|
-
* Entries end with a dot, followed by "[#pr-number] by [@github-username]".
|
|
127
|
-
* Entries are added under the "Unreleased" section at the top of the file, under
|
|
128
|
-
the "Bug Fixes" or "Enhancements" subsection.
|
|
129
|
-
* References to github usernames and pull requests use [shortcut reference
|
|
130
|
-
links].
|
|
131
|
-
* Your github username reference definition is included in the correct
|
|
132
|
-
alphabetical position at the bottom of the file.
|
|
133
|
-
|
|
134
110
|
### Make a Pull Request
|
|
135
111
|
|
|
136
112
|
At this point, you should switch back to your master branch and make sure it's
|
|
@@ -152,12 +128,12 @@ git push --set-upstream origin 325-add-japanese-translations
|
|
|
152
128
|
|
|
153
129
|
Finally, go to GitHub and [make a Pull Request][] :D
|
|
154
130
|
|
|
155
|
-
|
|
156
|
-
about quality, so your PR won't be merged until all tests pass. It's
|
|
157
|
-
but it's possible that your changes pass tests in one Rails version
|
|
158
|
-
another. In that case, you'll have to setup your development
|
|
159
|
-
explained in step 3) to use the problematic Rails version, and
|
|
160
|
-
what's going on!
|
|
131
|
+
Github Actions will run our test suite against all supported Rails versions. We
|
|
132
|
+
care about quality, so your PR won't be merged until all tests pass. It's
|
|
133
|
+
unlikely, but it's possible that your changes pass tests in one Rails version
|
|
134
|
+
but fail in another. In that case, you'll have to setup your development
|
|
135
|
+
environment (as explained in step 3) to use the problematic Rails version, and
|
|
136
|
+
investigate what's going on!
|
|
161
137
|
|
|
162
138
|
### Keeping your Pull Request updated
|
|
163
139
|
|
|
@@ -190,12 +166,12 @@ met.
|
|
|
190
166
|
|
|
191
167
|
Maintainers need to do the following to push out a release:
|
|
192
168
|
|
|
193
|
-
* Make sure all pull requests are in and that changelog is current
|
|
194
169
|
* Switch to the master branch and make sure it's up to date.
|
|
195
170
|
* Make sure you have [chandler] properly configured. Chandler is used to
|
|
196
171
|
automatically submit github release notes from the changelog right after
|
|
197
172
|
pushing the gem to rubygems.
|
|
198
173
|
* Run one of `bin/rake release:prepare_{prerelease,prepatch,patch,preminor,minor,premajor,major}`, push the result and create a PR.
|
|
174
|
+
* Review and merge the PR. The generated changelog in the PR should include all user visible changes you intend to ship.
|
|
199
175
|
* Run `bin/rake release` from the target branch once the PR is merged.
|
|
200
176
|
|
|
201
177
|
[chandler]: https://github.com/mattbrictson/chandler#2-configure-credentials
|
|
@@ -204,7 +180,7 @@ Maintainers need to do the following to push out a release:
|
|
|
204
180
|
[fork Active Admin]: https://help.github.com/articles/fork-a-repo
|
|
205
181
|
[make a pull request]: https://help.github.com/articles/creating-a-pull-request
|
|
206
182
|
[git rebasing]: http://git-scm.com/book/en/Git-Branching-Rebasing
|
|
207
|
-
[interactive rebase]: https://help.github.com/
|
|
183
|
+
[interactive rebase]: https://help.github.com/en/github/using-git/about-git-rebase
|
|
208
184
|
[shortcut reference links]: https://github.github.com/gfm/#shortcut-reference-link
|
|
209
185
|
[Rollup]: https://rollupjs.org/guide/en/#quick-start
|
|
210
186
|
[Yarn]: https://yarnpkg.com/en/docs/install
|
data/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
creating elegant backends for website administration.
|
|
5
5
|
|
|
6
6
|
[![Version ][rubygems_badge]][rubygems]
|
|
7
|
-
[![
|
|
7
|
+
[![Github Actions ][actions_badge]][actions]
|
|
8
8
|
[![Coverage ][coverage_badge]][coverage]
|
|
9
9
|
[![Tidelift ][tidelift_badge]][tidelift]
|
|
10
10
|
[![Inch CI ][inch_badge]][inch]
|
|
@@ -85,23 +85,23 @@ Thanks to [Tidelift][tidelift] and all our Tidelift subscribers.
|
|
|
85
85
|
Thanks to [Open Collective][opencollective contributors] and all our Open Collective contributors.
|
|
86
86
|
|
|
87
87
|
[Arbre]: https://github.com/activeadmin/arbre
|
|
88
|
-
[Devise]: https://github.com/
|
|
89
|
-
[Formtastic]: https://github.com/
|
|
88
|
+
[Devise]: https://github.com/heartcombo/devise
|
|
89
|
+
[Formtastic]: https://github.com/formtastic/formtastic
|
|
90
90
|
[Inherited Resources]: https://github.com/activeadmin/inherited_resources
|
|
91
91
|
[Kaminari]: https://github.com/kaminari/kaminari
|
|
92
92
|
[Ransack]: https://github.com/activerecord-hackery/ransack
|
|
93
93
|
|
|
94
94
|
[rubygems_badge]: http://img.shields.io/gem/v/activeadmin.svg
|
|
95
95
|
[rubygems]: https://rubygems.org/gems/activeadmin
|
|
96
|
-
[
|
|
97
|
-
[
|
|
98
|
-
[coverage_badge]: https://
|
|
99
|
-
[coverage]: https://
|
|
96
|
+
[actions_badge]: https://github.com/activeadmin/activeadmin/workflows/ci/badge.svg
|
|
97
|
+
[actions]: https://github.com/activeadmin/activeadmin/actions
|
|
98
|
+
[coverage_badge]: https://codecov.io/gh/activeadmin/activeadmin/branch/master/graph/badge.svg?token=NAjeBdkQXW
|
|
99
|
+
[coverage]: https://codecov.io/gh/activeadmin/activeadmin
|
|
100
100
|
[inch_badge]: http://inch-ci.org/github/activeadmin/activeadmin.svg?branch=master
|
|
101
101
|
[inch]: http://inch-ci.org/github/activeadmin/activeadmin
|
|
102
102
|
[tidelift_badge]: https://tidelift.com/badges/github/activeadmin/activeadmin
|
|
103
103
|
[tidelift]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=readme
|
|
104
|
-
[tidelift_enterprise]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=referral&utm_campaign=
|
|
104
|
+
[tidelift_enterprise]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=referral&utm_campaign=enterprise
|
|
105
105
|
[tidelift_support]: https://tidelift.com/subscription/pkg/rubygems-activeadmin?utm_source=rubygems-activeadmin&utm_medium=referral&utm_campaign=github&utm_content=support
|
|
106
106
|
|
|
107
107
|
[docs]: http://activeadmin.info/0-installation.html
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
//= require_self
|
|
12
12
|
|
|
13
13
|
(function(global, factory) {
|
|
14
|
-
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("jquery"), require("jquery-ui/ui/widgets/datepicker"), require("jquery-ui/ui/widgets/dialog"), require("jquery-ui/ui/widgets/sortable"), require("jquery-ui/ui/widgets/tabs"), require("jquery-ui/ui/widget"), require("jquery-ujs")) : typeof define === "function" && define.amd ? define([ "exports", "jquery", "jquery-ui/ui/widgets/datepicker", "jquery-ui/ui/widgets/dialog", "jquery-ui/ui/widgets/sortable", "jquery-ui/ui/widgets/tabs", "jquery-ui/ui/widget", "jquery-ujs" ], factory) : (global = global || self,
|
|
14
|
+
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("jquery"), require("jquery-ui/ui/widgets/datepicker"), require("jquery-ui/ui/widgets/dialog"), require("jquery-ui/ui/widgets/sortable"), require("jquery-ui/ui/widgets/tabs"), require("jquery-ui/ui/widget"), require("jquery-ujs")) : typeof define === "function" && define.amd ? define([ "exports", "jquery", "jquery-ui/ui/widgets/datepicker", "jquery-ui/ui/widgets/dialog", "jquery-ui/ui/widgets/sortable", "jquery-ui/ui/widgets/tabs", "jquery-ui/ui/widget", "jquery-ujs" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
|
|
15
15
|
factory(global.ActiveAdmin = {}));
|
|
16
16
|
})(this, function(exports) {
|
|
17
17
|
"use strict";
|
|
@@ -27,18 +27,17 @@
|
|
|
27
27
|
function ModalDialog(message, inputs, callback) {
|
|
28
28
|
var html = '<form id="dialog_confirm" title="' + message + '"><ul>';
|
|
29
29
|
for (var name in inputs) {
|
|
30
|
-
var
|
|
30
|
+
var opts, wrapper;
|
|
31
31
|
var type = inputs[name];
|
|
32
32
|
if (/^(datepicker|checkbox|text|number)$/.test(type)) {
|
|
33
33
|
wrapper = "input";
|
|
34
34
|
} else if (type === "textarea") {
|
|
35
35
|
wrapper = "textarea";
|
|
36
36
|
} else if ($.isArray(type)) {
|
|
37
|
-
var _ref = [ "select",
|
|
37
|
+
var _ref = [ "select", type, "" ];
|
|
38
38
|
wrapper = _ref[0];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
type = _ref[3];
|
|
39
|
+
opts = _ref[1];
|
|
40
|
+
type = _ref[2];
|
|
42
41
|
} else {
|
|
43
42
|
throw new Error("Unsupported input type: {" + name + ": " + type + "}");
|
|
44
43
|
}
|
|
@@ -46,29 +45,28 @@
|
|
|
46
45
|
html += "<li>\n <label>" + (name.charAt(0).toUpperCase() + name.slice(1)) + "</label>\n <" + wrapper + ' name="' + name + '" class="' + klass + '" type="' + type + '">' + (opts ? function() {
|
|
47
46
|
var result = [];
|
|
48
47
|
opts.forEach(function(v) {
|
|
49
|
-
var $elem = $("<"
|
|
48
|
+
var $elem = $("<option></option>");
|
|
50
49
|
if ($.isArray(v)) {
|
|
51
50
|
$elem.text(v[0]).val(v[1]);
|
|
52
51
|
} else {
|
|
53
52
|
$elem.text(v);
|
|
54
53
|
}
|
|
55
|
-
result.push($elem.wrap("<div>").parent().html());
|
|
54
|
+
result.push($elem.wrap("<div></div>").parent().html());
|
|
56
55
|
});
|
|
57
56
|
return result;
|
|
58
57
|
}().join("") : "") + ("</" + wrapper + ">") + "</li>";
|
|
59
58
|
var _ref2 = [];
|
|
60
59
|
wrapper = _ref2[0];
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
klass = _ref2[4];
|
|
60
|
+
opts = _ref2[1];
|
|
61
|
+
type = _ref2[2];
|
|
62
|
+
klass = _ref2[3];
|
|
65
63
|
}
|
|
66
64
|
html += "</ul></form>";
|
|
67
65
|
var form = $(html).appendTo("body");
|
|
68
66
|
$("body").trigger("modal_dialog:before_open", [ form ]);
|
|
69
67
|
form.dialog({
|
|
70
68
|
modal: true,
|
|
71
|
-
open: function open(
|
|
69
|
+
open: function open(_event, _ui) {
|
|
72
70
|
$("body").trigger("modal_dialog:after_open", [ form ]);
|
|
73
71
|
},
|
|
74
72
|
dialogClass: "active_admin_dialog",
|
|
@@ -83,7 +81,7 @@
|
|
|
83
81
|
}
|
|
84
82
|
});
|
|
85
83
|
}
|
|
86
|
-
var onDOMReady = function onDOMReady() {
|
|
84
|
+
var onDOMReady$2 = function onDOMReady() {
|
|
87
85
|
$(".batch_actions_selector li a").off("click confirm:complete");
|
|
88
86
|
$(".batch_actions_selector li a").on("click", function(event) {
|
|
89
87
|
var _this = this;
|
|
@@ -127,7 +125,7 @@
|
|
|
127
125
|
});
|
|
128
126
|
}
|
|
129
127
|
};
|
|
130
|
-
$(document).ready(onDOMReady).on("page:load turbolinks:load", onDOMReady);
|
|
128
|
+
$(document).ready(onDOMReady$2).on("page:load turbolinks:load", onDOMReady$2);
|
|
131
129
|
var CheckboxToggler = function() {
|
|
132
130
|
function CheckboxToggler(options, container) {
|
|
133
131
|
this.options = options;
|
|
@@ -136,7 +134,7 @@
|
|
|
136
134
|
this._bind();
|
|
137
135
|
}
|
|
138
136
|
var _proto = CheckboxToggler.prototype;
|
|
139
|
-
_proto.option = function option(
|
|
137
|
+
_proto.option = function option(_key, _value) {};
|
|
140
138
|
_proto._init = function _init() {
|
|
141
139
|
if (!this.container) {
|
|
142
140
|
throw new Error("Container element not found");
|
|
@@ -159,7 +157,7 @@
|
|
|
159
157
|
return _this._didChangeToggleAllCheckbox();
|
|
160
158
|
});
|
|
161
159
|
};
|
|
162
|
-
_proto._didChangeCheckbox = function _didChangeCheckbox(
|
|
160
|
+
_proto._didChangeCheckbox = function _didChangeCheckbox(_checkbox) {
|
|
163
161
|
var numChecked = this.checkboxes.filter(":checked").length;
|
|
164
162
|
var allChecked = numChecked === this.checkboxes.length;
|
|
165
163
|
var someChecked = numChecked > 0 && numChecked < this.checkboxes.length;
|
|
@@ -394,7 +392,6 @@
|
|
|
394
392
|
$(document).on("change", '.has_many_container[data-sortable] :input[name$="[_destroy]"]', function() {
|
|
395
393
|
recompute_positions($(this).closest(".has_many"));
|
|
396
394
|
});
|
|
397
|
-
init_sortable();
|
|
398
395
|
$(document).on("has_many_add:after", ".has_many_container", init_sortable);
|
|
399
396
|
});
|
|
400
397
|
var init_sortable = function init_sortable() {
|
|
@@ -428,6 +425,7 @@
|
|
|
428
425
|
}
|
|
429
426
|
});
|
|
430
427
|
};
|
|
428
|
+
$(document).ready(init_sortable).on("page:load turbolinks:load", init_sortable);
|
|
431
429
|
var PerPage = function() {
|
|
432
430
|
function PerPage(element) {
|
|
433
431
|
this.element = element;
|
|
@@ -464,7 +462,7 @@
|
|
|
464
462
|
return PerPage;
|
|
465
463
|
}();
|
|
466
464
|
(function($) {
|
|
467
|
-
$(document).on("change", ".pagination_per_page > select", function(
|
|
465
|
+
$(document).on("change", ".pagination_per_page > select", function(_event) {
|
|
468
466
|
PerPage._jQueryInterface.call($(this), "update");
|
|
469
467
|
});
|
|
470
468
|
$.fn["perPage"] = PerPage._jQueryInterface;
|
|
@@ -473,7 +471,14 @@
|
|
|
473
471
|
function _inheritsLoose(subClass, superClass) {
|
|
474
472
|
subClass.prototype = Object.create(superClass.prototype);
|
|
475
473
|
subClass.prototype.constructor = subClass;
|
|
476
|
-
subClass
|
|
474
|
+
_setPrototypeOf(subClass, superClass);
|
|
475
|
+
}
|
|
476
|
+
function _setPrototypeOf(o, p) {
|
|
477
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
478
|
+
o.__proto__ = p;
|
|
479
|
+
return o;
|
|
480
|
+
};
|
|
481
|
+
return _setPrototypeOf(o, p);
|
|
477
482
|
}
|
|
478
483
|
var TableCheckboxToggler = function(_CheckboxToggler) {
|
|
479
484
|
_inheritsLoose(TableCheckboxToggler, _CheckboxToggler);
|
|
@@ -503,17 +508,14 @@
|
|
|
503
508
|
return TableCheckboxToggler;
|
|
504
509
|
}(CheckboxToggler);
|
|
505
510
|
$.widget.bridge("tableCheckboxToggler", TableCheckboxToggler);
|
|
506
|
-
var onDOMReady
|
|
511
|
+
var onDOMReady = function onDOMReady() {
|
|
507
512
|
return $("#active_admin_content .tabs").tabs();
|
|
508
513
|
};
|
|
509
|
-
$(document).ready(onDOMReady
|
|
514
|
+
$(document).ready(onDOMReady).on("page:load turbolinks:load", onDOMReady);
|
|
510
515
|
function modal_dialog(message, inputs, callback) {
|
|
511
516
|
console.warn("ActiveAdmin.modal_dialog is deprecated in favor of ActiveAdmin.ModalDialog, please update usage.");
|
|
512
517
|
return ModalDialog(message, inputs, callback);
|
|
513
518
|
}
|
|
514
519
|
exports.ModalDialog = ModalDialog;
|
|
515
520
|
exports.modal_dialog = modal_dialog;
|
|
516
|
-
Object.defineProperty(exports, "__esModule", {
|
|
517
|
-
value: true
|
|
518
|
-
});
|
|
519
521
|
});
|
|
@@ -1,41 +1,57 @@
|
|
|
1
1
|
/* Active Admin CSS */
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
@media screen {
|
|
3
|
+
// Normalize
|
|
4
|
+
@import "./normalize";
|
|
4
5
|
|
|
5
|
-
// Partials
|
|
6
|
-
@import "./typography";
|
|
7
|
-
@import "./header";
|
|
8
|
-
@import "./forms";
|
|
9
|
-
@import "./components/comments";
|
|
10
|
-
@import "./components/flash_messages";
|
|
11
|
-
@import "./components/date_picker";
|
|
12
|
-
@import "./components/tables";
|
|
13
|
-
@import "./components/batch_actions";
|
|
14
|
-
@import "./components/modal_dialog";
|
|
15
|
-
@import "./components/blank_slates";
|
|
16
|
-
@import "./components/breadcrumbs";
|
|
17
|
-
@import "./components/dropdown_menu";
|
|
18
|
-
@import "./components/buttons";
|
|
19
|
-
@import "./components/grid";
|
|
20
|
-
@import "./components/links";
|
|
21
|
-
@import "./components/pagination";
|
|
22
|
-
@import "./components/panels";
|
|
23
|
-
@import "./components/columns";
|
|
24
|
-
@import "./components/scopes";
|
|
25
|
-
@import "./components/status_tags";
|
|
26
|
-
@import "./components/table_tools";
|
|
27
|
-
@import "./components/index_list";
|
|
28
|
-
@import "./components/unsupported_browser";
|
|
29
|
-
@import "./components/tabs";
|
|
30
|
-
@import "./pages/logged_out";
|
|
31
|
-
@import "./structure/footer";
|
|
32
|
-
@import "./structure/main_structure";
|
|
33
|
-
@import "./structure/title_bar";
|
|
6
|
+
// Partials
|
|
7
|
+
@import "./typography";
|
|
8
|
+
@import "./header";
|
|
9
|
+
@import "./forms";
|
|
10
|
+
@import "./components/comments";
|
|
11
|
+
@import "./components/flash_messages";
|
|
12
|
+
@import "./components/date_picker";
|
|
13
|
+
@import "./components/tables";
|
|
14
|
+
@import "./components/batch_actions";
|
|
15
|
+
@import "./components/modal_dialog";
|
|
16
|
+
@import "./components/blank_slates";
|
|
17
|
+
@import "./components/breadcrumbs";
|
|
18
|
+
@import "./components/dropdown_menu";
|
|
19
|
+
@import "./components/buttons";
|
|
20
|
+
@import "./components/grid";
|
|
21
|
+
@import "./components/links";
|
|
22
|
+
@import "./components/pagination";
|
|
23
|
+
@import "./components/panels";
|
|
24
|
+
@import "./components/columns";
|
|
25
|
+
@import "./components/scopes";
|
|
26
|
+
@import "./components/status_tags";
|
|
27
|
+
@import "./components/table_tools";
|
|
28
|
+
@import "./components/index_list";
|
|
29
|
+
@import "./components/unsupported_browser";
|
|
30
|
+
@import "./components/tabs";
|
|
31
|
+
@import "./pages/logged_out";
|
|
32
|
+
@import "./structure/footer";
|
|
33
|
+
@import "./structure/main_structure";
|
|
34
|
+
@import "./structure/title_bar";
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
html {
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
*,
|
|
41
|
+
*:before,
|
|
42
|
+
*:after {
|
|
43
|
+
box-sizing: inherit;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
body {
|
|
47
|
+
@include sans-family;
|
|
48
|
+
line-height: 1.5;
|
|
49
|
+
font-size: 72%;
|
|
50
|
+
background: $body-background-color;
|
|
51
|
+
color: $text-color;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@media print {
|
|
56
|
+
@import "./print";
|
|
41
57
|
}
|
|
@@ -171,7 +171,7 @@ form {
|
|
|
171
171
|
&.boolean {
|
|
172
172
|
min-height: 1.1em;
|
|
173
173
|
label {
|
|
174
|
-
width:
|
|
174
|
+
width: 100%;
|
|
175
175
|
padding-left:20%;
|
|
176
176
|
padding-right: 10px;
|
|
177
177
|
text-transform: none !important;
|
|
@@ -220,9 +220,8 @@ form {
|
|
|
220
220
|
/* Buttons */
|
|
221
221
|
|
|
222
222
|
input[type=submit], input[type=button], button {
|
|
223
|
-
@include dark-button;
|
|
224
223
|
cursor: pointer;
|
|
225
|
-
|
|
224
|
+
@include dark-button;
|
|
226
225
|
}
|
|
227
226
|
|
|
228
227
|
.buttons, .actions {
|
|
@@ -250,8 +249,6 @@ form {
|
|
|
250
249
|
|
|
251
250
|
// -------------------------------------- Sidebar Forms
|
|
252
251
|
|
|
253
|
-
$sidebar-inner-content-width: $sidebar-width - ($section-padding * 2);
|
|
254
|
-
|
|
255
252
|
.sidebar_section {
|
|
256
253
|
|
|
257
254
|
label {
|
|
@@ -274,13 +271,6 @@ $sidebar-inner-content-width: $sidebar-width - ($section-padding * 2);
|
|
|
274
271
|
|
|
275
272
|
// -------------------------------------- Filter Forms
|
|
276
273
|
|
|
277
|
-
$filter-field-seperator-width: 12px;
|
|
278
|
-
|
|
279
|
-
$side-by-side-filter-input-width: ($sidebar-inner-content-width / 2) - ($text-input-horizontal-padding * 2) - $filter-field-seperator-width;
|
|
280
|
-
$side-by-side-filter-select-width: ($sidebar-inner-content-width / 2) - $filter-field-seperator-width;
|
|
281
|
-
|
|
282
|
-
$date-range-filter-input-width: ($sidebar-inner-content-width / 2) - ($filter-field-seperator-width / 2);
|
|
283
|
-
|
|
284
274
|
form.filter_form {
|
|
285
275
|
.filter_form_field {
|
|
286
276
|
margin-bottom: 10px;
|
|
@@ -313,7 +303,6 @@ form.filter_form {
|
|
|
313
303
|
|
|
314
304
|
&.filter_date_range {
|
|
315
305
|
input[type=text] {
|
|
316
|
-
box-sizing: border-box;
|
|
317
306
|
width: $date-range-filter-input-width;
|
|
318
307
|
|
|
319
308
|
+ input {
|
|
@@ -52,6 +52,11 @@
|
|
|
52
52
|
margin: 0;
|
|
53
53
|
padding: 0;
|
|
54
54
|
|
|
55
|
+
li {
|
|
56
|
+
/* Hover on li, display the ul */
|
|
57
|
+
&:hover > ul { display: block;}
|
|
58
|
+
}
|
|
59
|
+
|
|
55
60
|
& > li {
|
|
56
61
|
display: inline-block;
|
|
57
62
|
margin-right: 4px;
|
|
@@ -95,8 +100,6 @@
|
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
|
|
98
|
-
/* Hover on li, display the ul */
|
|
99
|
-
&:hover ul { display: block;}
|
|
100
103
|
/* Drop down menus */
|
|
101
104
|
ul {
|
|
102
105
|
background: $hover-menu-item-background;
|
|
@@ -114,6 +117,7 @@
|
|
|
114
117
|
z-index: 1010;
|
|
115
118
|
|
|
116
119
|
li {
|
|
120
|
+
position: relative;
|
|
117
121
|
margin: 0px;
|
|
118
122
|
a {
|
|
119
123
|
background: none;
|
|
@@ -124,10 +128,40 @@
|
|
|
124
128
|
&.current {
|
|
125
129
|
a { @include rounded(0) }
|
|
126
130
|
}
|
|
131
|
+
|
|
132
|
+
&.has_nested > a {
|
|
133
|
+
background: url($menu-arrow-right-light-icon-url) no-repeat calc(100% - 7px) 55%;
|
|
134
|
+
padding-right: 20px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
&.has_nested:hover > a {
|
|
138
|
+
background: url($menu-arrow-right-dark-icon-url) no-repeat calc(100% - 7px) 55%;
|
|
139
|
+
color: #fff;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
ul {
|
|
143
|
+
@include rounded-all(10px,10px,10px,10px);
|
|
144
|
+
margin-top: 0;
|
|
145
|
+
top: -3px;
|
|
146
|
+
left: 100%;
|
|
147
|
+
|
|
148
|
+
/* Create an invisible backdrop that adds 8px margin around the dropdown menu or submenu
|
|
149
|
+
that maintains the hover. This makes it much easier to navigate to submenus in
|
|
150
|
+
particular without losing hover accientally, especially near rounded corners. */
|
|
151
|
+
&:after {
|
|
152
|
+
content: "";
|
|
153
|
+
display: block;
|
|
154
|
+
position: absolute;
|
|
155
|
+
top: -8px;
|
|
156
|
+
left: -8px;
|
|
157
|
+
height: calc(100% + 16px);
|
|
158
|
+
width: calc(100% + 16px);
|
|
159
|
+
z-index: -2;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
127
162
|
}
|
|
128
163
|
}
|
|
129
164
|
}
|
|
130
|
-
|
|
131
165
|
}
|
|
132
166
|
|
|
133
167
|
#tabs {
|