adminterface 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.md +1 -1
- data/README.md +61 -0
- data/Rakefile +43 -0
- data/app/assets/config/adminterface_manifest.js +1 -0
- data/app/assets/stylesheets/adminterface/_base.scss +20 -0
- data/app/assets/stylesheets/adminterface/_print.scss +56 -0
- data/app/assets/stylesheets/adminterface/components/_active_admin_comment.scss +19 -0
- data/app/assets/stylesheets/adminterface/components/_all.scss +24 -0
- data/app/assets/stylesheets/adminterface/components/_aside.scss +28 -0
- data/app/assets/stylesheets/adminterface/components/_attributes_table.scss +19 -0
- data/app/assets/stylesheets/adminterface/components/_comments.scss +7 -0
- data/app/assets/stylesheets/adminterface/components/_divider.scss +28 -0
- data/app/assets/stylesheets/adminterface/components/_filters.scss +27 -0
- data/app/assets/stylesheets/adminterface/components/_flash.scss +4 -0
- data/app/assets/stylesheets/adminterface/components/_footer.scss +4 -0
- data/app/assets/stylesheets/adminterface/components/_form.scss +219 -0
- data/app/assets/stylesheets/adminterface/components/_header.scss +30 -0
- data/app/assets/stylesheets/adminterface/components/_index.scss +1 -0
- data/app/assets/stylesheets/adminterface/components/_index_as_grid.scss +5 -0
- data/app/assets/stylesheets/adminterface/components/_index_as_table.scss +1 -0
- data/app/assets/stylesheets/adminterface/components/_index_footer.scss +19 -0
- data/app/assets/stylesheets/adminterface/components/_modal_dialog.scss +4 -0
- data/app/assets/stylesheets/adminterface/components/_pagination.scss +3 -0
- data/app/assets/stylesheets/adminterface/components/_panel.scss +21 -0
- data/app/assets/stylesheets/adminterface/components/_sidebar.scss +13 -0
- data/app/assets/stylesheets/adminterface/components/_site_title.scss +17 -0
- data/app/assets/stylesheets/adminterface/components/_table_for.scss +37 -0
- data/app/assets/stylesheets/adminterface/components/_table_tools.scss +19 -0
- data/app/assets/stylesheets/adminterface/components/_thumbnail.scss +29 -0
- data/app/assets/stylesheets/adminterface/components/_title_bar.scss +36 -0
- data/app/assets/stylesheets/adminterface/components/inputs/_all.scss +2 -0
- data/app/assets/stylesheets/adminterface/components/inputs/_password.scss +28 -0
- data/app/assets/stylesheets/adminterface/components/inputs/_text.scss +30 -0
- data/app/assets/stylesheets/adminterface/helpers/_aa_icon.scss +1 -0
- data/app/assets/stylesheets/adminterface/helpers/_all.scss +2 -0
- data/app/assets/stylesheets/adminterface/helpers/_pointer.scss +1 -0
- data/app/assets/stylesheets/adminterface/layouts/_all.scss +4 -0
- data/app/assets/stylesheets/adminterface/layouts/_base.scss +5 -0
- data/app/assets/stylesheets/adminterface/layouts/_logged_in.scss +30 -0
- data/app/assets/stylesheets/adminterface/layouts/_logged_out.scss +14 -0
- data/app/assets/stylesheets/adminterface/layouts/types/_all.scss +4 -0
- data/app/assets/stylesheets/adminterface/layouts/types/_mixins.scss +195 -0
- data/app/assets/stylesheets/adminterface/layouts/types/_navigation_aside.scss +33 -0
- data/app/assets/stylesheets/adminterface/layouts/types/_navigation_sidebar.scss +15 -0
- data/app/assets/stylesheets/adminterface/layouts/types/_navigation_top.scss +33 -0
- data/app/assets/stylesheets/adminterface/mixins/_all.scss +3 -0
- data/app/assets/stylesheets/adminterface/mixins/_layouts.scss +38 -0
- data/app/assets/stylesheets/adminterface/mixins/_utilities.scss +39 -0
- data/app/assets/stylesheets/adminterface/mixins/_variables.scss +100 -0
- data/app/assets/stylesheets/adminterface/placeholders/_aa_icon.scss +10 -0
- data/app/assets/stylesheets/adminterface/placeholders/_all.scss +3 -0
- data/app/assets/stylesheets/adminterface/placeholders/_background.scss +5 -0
- data/app/assets/stylesheets/adminterface/placeholders/_typography.scss +11 -0
- data/app/assets/stylesheets/adminterface/vendors/_all.scss +4 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/_all.scss +6 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/_variables.scss +51 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_buttons.scss +5 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_dropdowns.scss +28 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/_navs.scss +25 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/components/form/_labels.scss +5 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/content/_tables.scss +2 -0
- data/app/assets/stylesheets/adminterface/vendors/bootstrap/content/_typography.scss +2 -0
- data/app/assets/stylesheets/adminterface/vendors/flatpickr/_all.scss +2 -0
- data/app/assets/stylesheets/adminterface/vendors/flatpickr/_variables.scss +7 -0
- data/app/assets/stylesheets/adminterface/vendors/flatpickr/main.scss +50 -0
- data/app/assets/stylesheets/adminterface/vendors/tom_select/_all.scss +1 -0
- data/app/assets/stylesheets/adminterface/vendors/tom_select/_main.scss +6 -0
- data/app/assets/stylesheets/adminterface/vendors/trix/_actiontext.scss +36 -0
- data/app/assets/stylesheets/adminterface/vendors/trix/_all.scss +3 -0
- data/app/assets/stylesheets/adminterface/vendors/trix/_trix_editor.scss +86 -0
- data/app/assets/stylesheets/adminterface/vendors/trix/_variables.scss +31 -0
- data/app/javascript/adminterface/base.js +14 -0
- data/app/javascript/adminterface/config.js +129 -0
- data/app/javascript/adminterface/initializers/batch_actions.js +9 -0
- data/app/javascript/adminterface/initializers/bootstrap.js +29 -0
- data/app/javascript/adminterface/initializers/confirm_dialog.js +23 -0
- data/app/javascript/adminterface/initializers/detached_dropdown.js +16 -0
- data/app/javascript/adminterface/initializers/drawer_menu_item_toggler.js +15 -0
- data/app/javascript/adminterface/initializers/filters.js +23 -0
- data/app/javascript/adminterface/initializers/has_many.js +7 -0
- data/app/javascript/adminterface/initializers/header_toggler.js +10 -0
- data/app/javascript/adminterface/initializers/index.js +2 -0
- data/app/javascript/adminterface/initializers/per_page.js +12 -0
- data/app/javascript/adminterface/initializers/plugins/flatpickr.js +24 -0
- data/app/javascript/adminterface/initializers/plugins/input_counter.js +21 -0
- data/app/javascript/adminterface/initializers/plugins/password_visibility.js +23 -0
- data/app/javascript/adminterface/initializers/plugins/tom_select.js +24 -0
- data/app/javascript/adminterface/lib/__tests__/detached_dropdown.spec.js +70 -0
- data/app/javascript/adminterface/lib/__tests__/filters.spec.js +151 -0
- data/app/javascript/adminterface/lib/__tests__/utils.spec.js +281 -0
- data/app/javascript/adminterface/lib/batch_actions.js +106 -0
- data/app/javascript/adminterface/lib/checkbox_toggler.js +55 -0
- data/app/javascript/adminterface/lib/confirm_dialog.js +113 -0
- data/app/javascript/adminterface/lib/detached_dropdown.js +34 -0
- data/app/javascript/adminterface/lib/filters.js +34 -0
- data/app/javascript/adminterface/lib/has_many.js +122 -0
- data/app/javascript/adminterface/lib/header_toggler.js +54 -0
- data/app/javascript/adminterface/lib/input.js +108 -0
- data/app/javascript/adminterface/lib/inputs/base/groupish.js +55 -0
- data/app/javascript/adminterface/lib/inputs/base/pluginish.js +63 -0
- data/app/javascript/adminterface/lib/inputs/base_input.js +87 -0
- data/app/javascript/adminterface/lib/inputs/boolean_input.js +30 -0
- data/app/javascript/adminterface/lib/inputs/check_boxes_input.js +14 -0
- data/app/javascript/adminterface/lib/inputs/choices_input.js +96 -0
- data/app/javascript/adminterface/lib/inputs/color_input.js +14 -0
- data/app/javascript/adminterface/lib/inputs/country_input.js +90 -0
- data/app/javascript/adminterface/lib/inputs/datalist_input.js +41 -0
- data/app/javascript/adminterface/lib/inputs/date_picker_input.js +11 -0
- data/app/javascript/adminterface/lib/inputs/datetime_picker_input.js +11 -0
- data/app/javascript/adminterface/lib/inputs/hidden_input.js +21 -0
- data/app/javascript/adminterface/lib/inputs/password_input.js +13 -0
- data/app/javascript/adminterface/lib/inputs/radio_input.js +13 -0
- data/app/javascript/adminterface/lib/inputs/select_input.js +68 -0
- data/app/javascript/adminterface/lib/inputs/string_input.js +13 -0
- data/app/javascript/adminterface/lib/inputs/switch_input.js +9 -0
- data/app/javascript/adminterface/lib/inputs/text_input.js +12 -0
- data/app/javascript/adminterface/lib/inputs/time_picker_input.js +13 -0
- data/app/javascript/adminterface/lib/inputs/time_zone_input.js +66 -0
- data/app/javascript/adminterface/lib/per_page.js +18 -0
- data/app/javascript/adminterface/lib/plugins/input_counter.js +94 -0
- data/app/javascript/adminterface/lib/plugins/password_visibility.js +70 -0
- data/app/javascript/adminterface/lib/table_checkbox_toggler.js +47 -0
- data/app/javascript/adminterface/lib/utils.js +148 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +19 -0
- data/app/views/active_admin/devise/passwords/edit.html.erb +21 -0
- data/app/views/active_admin/devise/passwords/new.html.erb +19 -0
- data/app/views/active_admin/devise/registrations/new.html.erb +24 -0
- data/app/views/active_admin/devise/sessions/new.html.erb +23 -0
- data/app/views/active_admin/devise/shared/_links.html.erb +25 -0
- data/app/views/active_admin/devise/shared/_omniauth.html.erb +10 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +19 -0
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +12 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +27 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +56 -0
- data/config/locales/active_admin.en.yml +25 -0
- data/lib/adminterface/callable.rb +7 -0
- data/lib/adminterface/configs.rb +76 -0
- data/lib/adminterface/data/base.rb +11 -0
- data/lib/adminterface/data/countries.rb +44 -0
- data/lib/adminterface/data/time_zones.rb +31 -0
- data/lib/adminterface/data.rb +6 -0
- data/lib/adminterface/encryption/encryptor.rb +26 -0
- data/lib/adminterface/engine.rb +22 -0
- data/lib/adminterface/extensions/base_controller.rb +55 -0
- data/lib/adminterface/extensions/batch_actions/resource_extension.rb +64 -0
- data/lib/adminterface/extensions/batch_actions/views/batch_action_selector.rb +48 -0
- data/lib/adminterface/extensions/batch_actions/views/selection_cells.rb +39 -0
- data/lib/adminterface/extensions/dsl.rb +13 -0
- data/lib/adminterface/extensions/dynamic_settings_node.rb +26 -0
- data/lib/adminterface/extensions/filters/forms.rb +76 -0
- data/lib/adminterface/extensions/form_builder.rb +165 -0
- data/lib/adminterface/extensions/inputs/base/active_admin_config.rb +21 -0
- data/lib/adminterface/extensions/inputs/base/choices.rb +33 -0
- data/lib/adminterface/extensions/inputs/base/groupish.rb +50 -0
- data/lib/adminterface/extensions/inputs/base/html.rb +15 -0
- data/lib/adminterface/extensions/inputs/base/labelling.rb +15 -0
- data/lib/adminterface/extensions/inputs/base/pluginish.rb +56 -0
- data/lib/adminterface/extensions/inputs/base/stringish.rb +19 -0
- data/lib/adminterface/extensions/inputs/base/wrapping.rb +25 -0
- data/lib/adminterface/extensions/inputs/base.rb +19 -0
- data/lib/adminterface/extensions/inputs/boolean_input.rb +42 -0
- data/lib/adminterface/extensions/inputs/check_boxes_input.rb +34 -0
- data/lib/adminterface/extensions/inputs/color_input.rb +29 -0
- data/lib/adminterface/extensions/inputs/country_input.rb +33 -0
- data/lib/adminterface/extensions/inputs/datalist_input.rb +26 -0
- data/lib/adminterface/extensions/inputs/date_picker_input.rb +30 -0
- data/lib/adminterface/extensions/inputs/date_select_input.rb +7 -0
- data/lib/adminterface/extensions/inputs/datetime_picker_input.rb +19 -0
- data/lib/adminterface/extensions/inputs/datetime_select_input.rb +7 -0
- data/lib/adminterface/extensions/inputs/email_input.rb +23 -0
- data/lib/adminterface/extensions/inputs/file_input.rb +19 -0
- data/lib/adminterface/extensions/inputs/filters/base/search_method_select.rb +37 -0
- data/lib/adminterface/extensions/inputs/filters/base.rb +3 -0
- data/lib/adminterface/extensions/inputs/filters/boolean_input.rb +4 -0
- data/lib/adminterface/extensions/inputs/filters/check_boxes_input.rb +12 -0
- data/lib/adminterface/extensions/inputs/filters/date_picker_input.rb +4 -0
- data/lib/adminterface/extensions/inputs/filters/date_range_input.rb +50 -0
- data/lib/adminterface/extensions/inputs/filters/select_input.rb +4 -0
- data/lib/adminterface/extensions/inputs/number_input.rb +23 -0
- data/lib/adminterface/extensions/inputs/password_input.rb +23 -0
- data/lib/adminterface/extensions/inputs/phone_input.rb +23 -0
- data/lib/adminterface/extensions/inputs/radio_input.rb +41 -0
- data/lib/adminterface/extensions/inputs/range_input.rb +22 -0
- data/lib/adminterface/extensions/inputs/rich_text_area_input.rb +21 -0
- data/lib/adminterface/extensions/inputs/search_input.rb +23 -0
- data/lib/adminterface/extensions/inputs/select_input.rb +33 -0
- data/lib/adminterface/extensions/inputs/string_input.rb +19 -0
- data/lib/adminterface/extensions/inputs/switch_input.rb +11 -0
- data/lib/adminterface/extensions/inputs/text_input.rb +27 -0
- data/lib/adminterface/extensions/inputs/time_picker_input.rb +19 -0
- data/lib/adminterface/extensions/inputs/time_select_input.rb +7 -0
- data/lib/adminterface/extensions/inputs/time_zone_input.rb +33 -0
- data/lib/adminterface/extensions/inputs/url_input.rb +23 -0
- data/lib/adminterface/extensions/menu_item.rb +16 -0
- data/lib/adminterface/extensions/namespace_settings.rb +30 -0
- data/lib/adminterface/extensions/orm/active_record/comments/views/active_admin_comments.rb +122 -0
- data/lib/adminterface/extensions/resource/action_items.rb +117 -0
- data/lib/adminterface/extensions/sidebar_section.rb +35 -0
- data/lib/adminterface/extensions/view_helpers/alert_helper.rb +36 -0
- data/lib/adminterface/extensions/view_helpers/component_helper.rb +23 -0
- data/lib/adminterface/extensions/views/action_items.rb +39 -0
- data/lib/adminterface/extensions/views/columns.rb +59 -0
- data/lib/adminterface/extensions/views/components/active_admin_form.rb +47 -0
- data/lib/adminterface/extensions/views/components/attributes_table.rb +28 -0
- data/lib/adminterface/extensions/views/components/blank_slate.rb +19 -0
- data/lib/adminterface/extensions/views/components/dropdown_menu.rb +55 -0
- data/lib/adminterface/extensions/views/components/icon.rb +26 -0
- data/lib/adminterface/extensions/views/components/index_list.rb +43 -0
- data/lib/adminterface/extensions/views/components/menu.rb +18 -0
- data/lib/adminterface/extensions/views/components/menu_item.rb +64 -0
- data/lib/adminterface/extensions/views/components/paginated_collection.rb +52 -0
- data/lib/adminterface/extensions/views/components/panel.rb +71 -0
- data/lib/adminterface/extensions/views/components/scopes.rb +53 -0
- data/lib/adminterface/extensions/views/components/sidebar_section.rb +39 -0
- data/lib/adminterface/extensions/views/components/site_title.rb +36 -0
- data/lib/adminterface/extensions/views/components/status_tag.rb +26 -0
- data/lib/adminterface/extensions/views/components/table_for.rb +23 -0
- data/lib/adminterface/extensions/views/components/tabs.rb +76 -0
- data/lib/adminterface/extensions/views/footer.rb +27 -0
- data/lib/adminterface/extensions/views/header.rb +59 -0
- data/lib/adminterface/extensions/views/index_as_grid.rb +53 -0
- data/lib/adminterface/extensions/views/index_as_table.rb +77 -0
- data/lib/adminterface/extensions/views/pages/base.rb +164 -0
- data/lib/adminterface/extensions/views/pages/form.rb +27 -0
- data/lib/adminterface/extensions/views/pages/index.rb +136 -0
- data/lib/adminterface/extensions/views/pages/page.rb +18 -0
- data/lib/adminterface/extensions/views/title_bar.rb +74 -0
- data/lib/adminterface/fixtures/components.yml +73 -0
- data/lib/adminterface/fixtures/css_classes.yml +107 -0
- data/lib/adminterface/initializers/batch_actions.rb +15 -0
- data/lib/adminterface/initializers/comments.rb +13 -0
- data/lib/adminterface/initializers/configurations.rb +38 -0
- data/lib/adminterface/initializers/formtastic.rb +58 -0
- data/lib/adminterface/initializers/resource.rb +20 -0
- data/lib/adminterface/initializers/view_helpers.rb +14 -0
- data/lib/adminterface/initializers/views.rb +39 -0
- data/lib/adminterface/license.rb +18 -0
- data/lib/adminterface/licensing/base.rb +99 -0
- data/lib/adminterface/licensing/commercial.rb +7 -0
- data/lib/adminterface/licensing/notice.rb +54 -0
- data/lib/adminterface/licensing/personal.rb +13 -0
- data/lib/adminterface/public.pem +9 -0
- data/lib/adminterface/version.rb +3 -0
- data/lib/adminterface.rb +55 -0
- data/lib/generators/adminterface/comments/comments_generator.rb +29 -0
- data/lib/generators/adminterface/comments/templates/README +13 -0
- data/lib/generators/adminterface/comments/templates/active_admin_comment_action_text.rb +18 -0
- data/lib/generators/adminterface/comments/templates/migrations/drop_body_for_active_admin_comments.rb.erb +28 -0
- data/lib/generators/adminterface/configs/configs_generator.rb +19 -0
- data/lib/generators/adminterface/configs/templates/README +33 -0
- data/lib/generators/adminterface/install/install_generator.rb +41 -0
- data/lib/generators/adminterface/install/templates/dashboard.rb +32 -0
- data/lib/generators/adminterface/views/views_generator.rb +15 -0
- data/lib/generators/adminterface/webpacker/templates/README +27 -0
- data/lib/generators/adminterface/webpacker/templates/active_admin.js +12 -0
- data/lib/generators/adminterface/webpacker/templates/active_admin.scss +8 -0
- data/lib/generators/adminterface/webpacker/templates/print.scss +3 -0
- data/lib/generators/adminterface/webpacker/webpacker_generator.rb +55 -0
- data/lib/tasks/adminterface_tasks.rake +4 -0
- metadata +285 -9
- data/lib/name.rb +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module RangeInput
|
|
5
|
+
include Base
|
|
6
|
+
|
|
7
|
+
def input_html_options
|
|
8
|
+
opts = options[:input_html] || {}
|
|
9
|
+
super.merge(class: "form-range #{opts[:class]}".squish)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module ActiveAdmin
|
|
17
|
+
module Inputs
|
|
18
|
+
class RangeInput < ::Formtastic::Inputs::RangeInput
|
|
19
|
+
include ::Adminterface::Extensions::Inputs::RangeInput
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require_relative("./text_input")
|
|
2
|
+
|
|
3
|
+
module ActiveAdmin
|
|
4
|
+
module Inputs
|
|
5
|
+
class RichTextAreaInput < TextInput
|
|
6
|
+
include ::Adminterface::Extensions::Inputs::Base
|
|
7
|
+
|
|
8
|
+
def input_html_options
|
|
9
|
+
opts = super
|
|
10
|
+
opts.merge(class: "trix-content #{opts[:class]}".squish)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def to_html
|
|
14
|
+
input_wrapping do
|
|
15
|
+
label_html <<
|
|
16
|
+
builder.rich_text_area(method, input_html_options)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module SearchInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.search_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActiveAdmin
|
|
18
|
+
module Inputs
|
|
19
|
+
class SearchInput < ::Formtastic::Inputs::SearchInput
|
|
20
|
+
include ::Adminterface::Extensions::Inputs::SearchInput
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module SelectInput
|
|
5
|
+
include Base
|
|
6
|
+
prepend Base::Groupish
|
|
7
|
+
|
|
8
|
+
def to_html
|
|
9
|
+
input_wrapping do
|
|
10
|
+
label_html << input_html
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def input_html
|
|
15
|
+
select_html
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def input_html_options
|
|
19
|
+
opts = options[:input_html] || {}
|
|
20
|
+
super.merge(class: "form-select #{opts[:class]}".squish)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module ActiveAdmin
|
|
28
|
+
module Inputs
|
|
29
|
+
class SelectInput < ::Formtastic::Inputs::SelectInput
|
|
30
|
+
include ::Adminterface::Extensions::Inputs::SelectInput
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module StringInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module ActiveAdmin
|
|
14
|
+
module Inputs
|
|
15
|
+
class StringInput < ::Formtastic::Inputs::StringInput
|
|
16
|
+
include ::Adminterface::Extensions::Inputs::StringInput
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module TextInput
|
|
5
|
+
include Base
|
|
6
|
+
|
|
7
|
+
def to_html
|
|
8
|
+
input_wrapping do
|
|
9
|
+
label_html << input_html
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def input_html
|
|
14
|
+
builder.text_area(method, input_html_options)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
module ActiveAdmin
|
|
22
|
+
module Inputs
|
|
23
|
+
class TextInput < ::Formtastic::Inputs::TextInput
|
|
24
|
+
include ::Adminterface::Extensions::Inputs::TextInput
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module TimePickerInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module ActiveAdmin
|
|
14
|
+
module Inputs
|
|
15
|
+
class TimePickerInput < ::Formtastic::Inputs::TimePickerInput
|
|
16
|
+
include ::Adminterface::Extensions::Inputs::TimePickerInput
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module TimeZoneInput
|
|
5
|
+
include Base
|
|
6
|
+
prepend Base::Groupish
|
|
7
|
+
|
|
8
|
+
def to_html
|
|
9
|
+
input_wrapping do
|
|
10
|
+
label_html << input_html
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def input_html
|
|
15
|
+
builder.time_zone_select(method, priority_zones, input_options, input_html_options)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def input_html_options
|
|
19
|
+
opts = options[:input_html] || {}
|
|
20
|
+
super.merge(class: "form-select #{opts[:class]}".squish)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module ActiveAdmin
|
|
28
|
+
module Inputs
|
|
29
|
+
class TimeZoneInput < ::Formtastic::Inputs::TimeZoneInput
|
|
30
|
+
include ::Adminterface::Extensions::Inputs::TimeZoneInput
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module UrlInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.url_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActiveAdmin
|
|
18
|
+
module Inputs
|
|
19
|
+
class UrlInput < ::Formtastic::Inputs::UrlInput
|
|
20
|
+
include ::Adminterface::Extensions::Inputs::UrlInput
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module MenuItem
|
|
4
|
+
def initialize(options = {})
|
|
5
|
+
@icon = options[:icon]
|
|
6
|
+
super
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Overwrite activeadmin/lib/active_admin/menu_item.rb
|
|
13
|
+
ActiveAdmin::MenuItem.class_eval do
|
|
14
|
+
prepend Adminterface::Extensions::MenuItem
|
|
15
|
+
attr_reader :icon
|
|
16
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module NamespaceSettings
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
CONFIGS = Adminterface::Configs::DEFAULTS
|
|
7
|
+
|
|
8
|
+
included do
|
|
9
|
+
# The default component configs
|
|
10
|
+
register :components, CONFIGS[:components]
|
|
11
|
+
|
|
12
|
+
# The default css_classes
|
|
13
|
+
register :css_classes, CONFIGS[:css_classes]
|
|
14
|
+
|
|
15
|
+
# Comments
|
|
16
|
+
register :comments_pager, {window: 2}
|
|
17
|
+
register :comments_per_page, 30
|
|
18
|
+
register :comments_input, :text
|
|
19
|
+
|
|
20
|
+
# Resource
|
|
21
|
+
register :pager, {window: 2}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Overwrite activeadmin/lib/active_admin/namespace_settings.rb
|
|
28
|
+
ActiveAdmin::NamespaceSettings.class_eval do
|
|
29
|
+
include Adminterface::Extensions::NamespaceSettings
|
|
30
|
+
end
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Views
|
|
4
|
+
module Comments
|
|
5
|
+
def default_title_class
|
|
6
|
+
"title #{comments_css_classes.dig(:header, :title)}".squish
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def default_wrapper_class
|
|
10
|
+
"panel #{comments_css_classes[:wrapper]}".squish
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def default_header_class
|
|
14
|
+
"panel-header #{comments_css_classes.dig(:header, :wrapper)}".squish
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def default_body_class
|
|
18
|
+
"panel-body #{comments_css_classes[:body]}".squish
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def item_class
|
|
22
|
+
@item_class ||= comments_css_classes.dig(:item)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
protected
|
|
26
|
+
|
|
27
|
+
def build_comments
|
|
28
|
+
build_comment_form
|
|
29
|
+
|
|
30
|
+
div id: "active_admin_comments_wrap", class: "active_admin_comments" do
|
|
31
|
+
if @comments.any?
|
|
32
|
+
div class: "active_admin_comments_collection #{item_class[:group]}".squish do
|
|
33
|
+
@comments.each(&method(:build_comment))
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
div class: "paginating-footer" do
|
|
37
|
+
defaults = {theme: "active_admin", params: {anchor: "active_admin_comments_wrap"}}
|
|
38
|
+
text_node paginate @comments, **defaults.merge(configs.comments_pager)
|
|
39
|
+
div page_entries_info(@comments).html_safe, class: "pagination_information"
|
|
40
|
+
end
|
|
41
|
+
else
|
|
42
|
+
build_empty_message
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def build_comment(comment)
|
|
48
|
+
div for: comment, class: "active_admin_comment #{item_class[:wrapper]}".squish do
|
|
49
|
+
div class: "active_admin_comment_header #{item_class.dig(:header, :wrapper)}".squish do
|
|
50
|
+
div class: "active_admin_comment_meta #{item_class.dig(:header, :meta)}".squish do
|
|
51
|
+
div class: "active_admin_comment_author #{item_class.dig(:header, :author)}".squish do
|
|
52
|
+
comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
div pretty_format(comment.created_at), class: "timestamp"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
comments_actions(comment)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
div class: "active_admin_comment_body #{item_class[:body]}".squish do
|
|
62
|
+
if comment.body.is_a?(ActionText::RichText)
|
|
63
|
+
text_node comment.body
|
|
64
|
+
else
|
|
65
|
+
simple_format comment.body
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def comments_actions(comment)
|
|
72
|
+
return unless authorized?(ActiveAdmin::Auth::DESTROY, comment)
|
|
73
|
+
|
|
74
|
+
div class: "actions" do
|
|
75
|
+
dropdown_menu "",
|
|
76
|
+
button: {class: item_class[:actions]},
|
|
77
|
+
menu: {class: "dropdown-menu-right"} do
|
|
78
|
+
item(I18n.t("active_admin.comments.delete"), comments_url(comment.id),
|
|
79
|
+
method: :delete, data: {confirm: I18n.t("active_admin.comments.delete_confirmation")})
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def build_comment_form
|
|
85
|
+
return unless authorized?(ActiveAdmin::Auth::CREATE, ActiveAdmin::Comment)
|
|
86
|
+
|
|
87
|
+
input_type = configs.comments_input
|
|
88
|
+
css_classes = comments_css_classes
|
|
89
|
+
|
|
90
|
+
active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
|
|
91
|
+
f.inputs do
|
|
92
|
+
f.input :resource_type, as: :hidden, input_html: {value: ActiveAdmin::Comment.resource_type(parent.resource)}
|
|
93
|
+
f.input :resource_id, as: :hidden, input_html: {value: parent.resource.id}
|
|
94
|
+
f.input :body, as: input_type, label: false, input_html: {rows: "3"}
|
|
95
|
+
end
|
|
96
|
+
f.actions do
|
|
97
|
+
f.action :submit, label: I18n.t("active_admin.comments.add"), button_html: {class: css_classes["submit"]}
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Overwrite activeadmin/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb
|
|
107
|
+
ActiveAdmin::Comments::Views::Comments.class_eval do
|
|
108
|
+
prepend Adminterface::Extensions::Views::Comments
|
|
109
|
+
has_css_classes_for :comments
|
|
110
|
+
|
|
111
|
+
def build(resource)
|
|
112
|
+
if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
|
|
113
|
+
@resource = resource
|
|
114
|
+
@comments =
|
|
115
|
+
active_admin_authorization
|
|
116
|
+
.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name)
|
|
117
|
+
.includes(:author).public_send(Kaminari.config.page_method_name, params[:page])).per(configs.comments_per_page)
|
|
118
|
+
super(title, for: resource)
|
|
119
|
+
build_comments
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Resource
|
|
4
|
+
module ActionItems
|
|
5
|
+
def action_items_for(action, render_context = nil)
|
|
6
|
+
super.sort_by { |x| [x.group, x.priority] }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def add_default_action_items
|
|
10
|
+
add_default_new_action_item
|
|
11
|
+
add_default_edit_action_item
|
|
12
|
+
add_default_destroy_action_item
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Adds the default New link on index
|
|
16
|
+
def add_default_new_action_item
|
|
17
|
+
add_action_item :new, only: proc { components.dig(:action_items, :new, :only)&.map(&:to_sym) } do
|
|
18
|
+
if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
|
|
19
|
+
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
|
20
|
+
icon_class = active_admin_config.components.dig(:action_items, :new, :icon_class)
|
|
21
|
+
|
|
22
|
+
link_to(
|
|
23
|
+
safe_join([icon_html(icon_class), content_tag(:span, localizer.t(:new_model))]),
|
|
24
|
+
new_resource_path,
|
|
25
|
+
title: localizer.t(:new_model),
|
|
26
|
+
class: active_admin_config.components.dig(:action_items, :new, :css_class)
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Adds the default Edit link on show
|
|
33
|
+
def add_default_edit_action_item
|
|
34
|
+
add_action_item :edit, only: proc { components.dig(:action_items, :edit, :only)&.map(&:to_sym) } do
|
|
35
|
+
if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::UPDATE, resource)
|
|
36
|
+
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
|
37
|
+
icon_class = active_admin_config.components.dig(:action_items, :edit, :icon_class)
|
|
38
|
+
|
|
39
|
+
link_to(
|
|
40
|
+
safe_join([icon_html(icon_class), content_tag(:span, localizer.t(:edit_model))]),
|
|
41
|
+
edit_resource_path(resource),
|
|
42
|
+
title: localizer.t(:edit_model),
|
|
43
|
+
class: active_admin_config.components.dig(:action_items, :edit, :css_class)
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Adds the default Destroy link on show
|
|
50
|
+
def add_default_destroy_action_item
|
|
51
|
+
add_action_item :destroy, only: proc { components.dig(:action_items, :destroy, :only)&.map(&:to_sym) } do
|
|
52
|
+
if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
|
|
53
|
+
localizer = ActiveAdmin::Localizers.resource(active_admin_config)
|
|
54
|
+
icon_class = active_admin_config.components.dig(:action_items, :destroy, :icon_class)
|
|
55
|
+
confirm_dialog_config = {
|
|
56
|
+
buttons: {
|
|
57
|
+
confirm: {
|
|
58
|
+
text: I18n.t(:confirm, scope: "active_admin.confirm_dialog"),
|
|
59
|
+
class: active_admin_config.css_classes.dig(:confirm_dialog, :confirm)
|
|
60
|
+
},
|
|
61
|
+
cancel: {
|
|
62
|
+
text: I18n.t(:cancel, scope: "active_admin.confirm_dialog"),
|
|
63
|
+
class: active_admin_config.css_classes.dig(:confirm_dialog, :cancel)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
link_to(
|
|
69
|
+
safe_join([icon_html(icon_class), content_tag(:span, localizer.t(:delete_model))]),
|
|
70
|
+
resource_path(resource),
|
|
71
|
+
title: localizer.t(:delete_model),
|
|
72
|
+
class: active_admin_config.components.dig(:action_items, :destroy, :css_class),
|
|
73
|
+
method: :delete, data: {confirm: localizer.t(:delete_confirmation), "aa-confirm-dialog": confirm_dialog_config}
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
module ActionItem
|
|
81
|
+
def display_on?(action, render_context = self)
|
|
82
|
+
@options[:only] = Array(return_or_proc_exec(@options[:only])) if @options[:only]
|
|
83
|
+
@options[:except] = Array(return_or_proc_exec(@options[:except])) if @options[:except]
|
|
84
|
+
super
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def group
|
|
88
|
+
@options[:group] || 99
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def priority
|
|
92
|
+
@options[:priority] || 99
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
private
|
|
96
|
+
|
|
97
|
+
def return_or_proc_exec(option)
|
|
98
|
+
option.is_a?(Proc) ? option.call : option
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def normalize_display_options!
|
|
102
|
+
@options[:only] = @options[:only] if @options[:only]
|
|
103
|
+
@options[:except] = @options[:except] if @options[:except]
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Overwrite activeadmin/lib/active_admin/resource/action_items.rb
|
|
111
|
+
ActiveAdmin::Resource::ActionItems.module_eval do
|
|
112
|
+
prepend Adminterface::Extensions::Resource::ActionItems
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
ActiveAdmin::ActionItem.class_eval do
|
|
116
|
+
prepend Adminterface::Extensions::Resource::ActionItem
|
|
117
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module SidebarSection
|
|
4
|
+
def initialize(*args, &block)
|
|
5
|
+
options = args.extract_options!
|
|
6
|
+
name = args.first
|
|
7
|
+
@position = options[:position]&.to_s
|
|
8
|
+
super(name, options, &block)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def id
|
|
12
|
+
return if name.blank?
|
|
13
|
+
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def title
|
|
18
|
+
return if name.blank?
|
|
19
|
+
|
|
20
|
+
super
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def partial_name
|
|
24
|
+
return options[:partial] if name.blank?
|
|
25
|
+
|
|
26
|
+
super
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
ActiveAdmin::SidebarSection.class_eval do
|
|
33
|
+
prepend Adminterface::Extensions::SidebarSection
|
|
34
|
+
attr_accessor :position
|
|
35
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module AlertHelper
|
|
5
|
+
def flashes_html
|
|
6
|
+
flash.each do |type, msg|
|
|
7
|
+
concat(content_tag(:div, msg, class: "flash flash_#{type} alert #{flash_css_classes[type.to_sym]}".squish))
|
|
8
|
+
end
|
|
9
|
+
nil
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def devise_error_messages!
|
|
13
|
+
return "" unless devise_error_messages?
|
|
14
|
+
|
|
15
|
+
safe_join [devise_error_html]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def devise_error_messages?
|
|
19
|
+
!resource.errors.empty?
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def devise_error_html
|
|
25
|
+
messages = resource.errors.full_messages.join(", ")
|
|
26
|
+
content_tag :div, messages, class: "alert #{flash_css_classes[:error]}"
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
ActiveAdmin::ViewHelpers.module_eval do
|
|
34
|
+
prepend Adminterface::Extensions::ViewHelpers::AlertHelper
|
|
35
|
+
has_css_classes_for :flash
|
|
36
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module ViewHelpers
|
|
4
|
+
module ComponentHelper
|
|
5
|
+
def site_title(namespace)
|
|
6
|
+
Arbre::Context.new({}, self) do
|
|
7
|
+
site_title namespace, false
|
|
8
|
+
end.content
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def footer(namespace)
|
|
12
|
+
Arbre::Context.new({}, self) do
|
|
13
|
+
footer namespace
|
|
14
|
+
end.content
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
ActiveAdmin::ViewHelpers.module_eval do
|
|
22
|
+
prepend Adminterface::Extensions::ViewHelpers::ComponentHelper
|
|
23
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Views
|
|
4
|
+
module ActionItems
|
|
5
|
+
private
|
|
6
|
+
|
|
7
|
+
def link_to(*args, &block)
|
|
8
|
+
options = args.extract_options!
|
|
9
|
+
options[:class] ||= action_items_css_classes[:item]
|
|
10
|
+
text_node super(*args, options, &block)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def icon_html(icon)
|
|
14
|
+
return if icon.blank?
|
|
15
|
+
|
|
16
|
+
Arbre::Context.new({}, self) do
|
|
17
|
+
aa_icon(icon)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def default_class_name
|
|
22
|
+
"#{super} #{action_items_css_classes[:group]}".squish
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Overwrite activeadmin/lib/active_admin/views/action_items.rb
|
|
30
|
+
ActiveAdmin::Views::ActionItems.class_eval do
|
|
31
|
+
prepend Adminterface::Extensions::Views::ActionItems
|
|
32
|
+
has_css_classes_for :action_items
|
|
33
|
+
|
|
34
|
+
def build(action_items)
|
|
35
|
+
action_items.each do |action_item|
|
|
36
|
+
instance_exec(&action_item.block)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|