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,15 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module Base
|
|
5
|
+
module Html
|
|
6
|
+
def input_html_options
|
|
7
|
+
options = super
|
|
8
|
+
options[:class] = "#{options[:class]} form-control".squish
|
|
9
|
+
options.merge(plugins_options)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module Base
|
|
5
|
+
module Pluginish
|
|
6
|
+
class Config
|
|
7
|
+
attr_reader :name, :configs, :options
|
|
8
|
+
|
|
9
|
+
def initialize(configs, options)
|
|
10
|
+
@name = configs[:name]
|
|
11
|
+
@configs = configs
|
|
12
|
+
@options = options[@name.underscore.to_sym]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def attributes
|
|
16
|
+
return {} unless enabled?
|
|
17
|
+
|
|
18
|
+
{"aa-#{name}": options.is_a?(Hash) ? options : defaults}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def defaults
|
|
22
|
+
@defaults ||= configs[:options] || {}
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def enabled?
|
|
26
|
+
(!options.eql?(false) && configs[:default].eql?(true)) ||
|
|
27
|
+
(options.present? || options.eql?(true))
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def plugins_configs
|
|
32
|
+
plugins&.map { |plugin| Config.new(plugin, options).attributes } || []
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def plugins_options
|
|
36
|
+
{data: plugins_configs.inject(&:merge)}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def plugin?(name)
|
|
40
|
+
!!plugins_options.dig(:data, "aa-#{name}".to_sym)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
def plugins
|
|
46
|
+
inputs_config.dig(plugins_configs_key, :js)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def plugins_configs_key
|
|
50
|
+
self.class.name.underscore.split("/").last.gsub("_input", "").to_sym
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module Base
|
|
5
|
+
module Stringish
|
|
6
|
+
def to_html
|
|
7
|
+
input_wrapping do
|
|
8
|
+
label_html << input_html
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def input_html
|
|
13
|
+
builder.text_field(method, input_html_options)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module Base
|
|
5
|
+
module Wrapping
|
|
6
|
+
def input_wrapping(&block)
|
|
7
|
+
html = input_wrapping_html(&block)
|
|
8
|
+
template.concat(html) if template.output_buffer && template.assigns[:has_many_block]
|
|
9
|
+
html
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def input_wrapping_html(&block)
|
|
13
|
+
template.content_tag(:div,
|
|
14
|
+
[template.capture(&block), error_html, hint_html].join("\n").html_safe,
|
|
15
|
+
wrapper_html_options)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def wrapper_classes
|
|
19
|
+
"#{super} mb-3"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require_relative("./base/active_admin_config")
|
|
2
|
+
require_relative("./base/html")
|
|
3
|
+
require_relative("./base/labelling")
|
|
4
|
+
require_relative("./base/wrapping")
|
|
5
|
+
require_relative("./base/pluginish")
|
|
6
|
+
|
|
7
|
+
module Adminterface
|
|
8
|
+
module Extensions
|
|
9
|
+
module Inputs
|
|
10
|
+
module Base
|
|
11
|
+
include Html
|
|
12
|
+
include Labelling
|
|
13
|
+
include Wrapping
|
|
14
|
+
include Pluginish
|
|
15
|
+
include ActiveAdminConfig
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module BooleanInput
|
|
5
|
+
include Base
|
|
6
|
+
|
|
7
|
+
def to_html
|
|
8
|
+
input_wrapping do
|
|
9
|
+
template.content_tag :div, class: boolean_wrapper_class do
|
|
10
|
+
hidden_field_html +
|
|
11
|
+
check_box_html +
|
|
12
|
+
label_html
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def input_html_options
|
|
18
|
+
opts = options[:input_html] || {}
|
|
19
|
+
super.merge(class: "form-check-input #{opts[:class]}".squish)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def label_html_options
|
|
23
|
+
super.merge(class: "form-check-label")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def boolean_wrapper_class
|
|
29
|
+
"form-check"
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
module ActiveAdmin
|
|
37
|
+
module Inputs
|
|
38
|
+
class BooleanInput < ::Formtastic::Inputs::BooleanInput
|
|
39
|
+
include Adminterface::Extensions::Inputs::BooleanInput
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module CheckBoxesInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Choices
|
|
7
|
+
|
|
8
|
+
def choice_html(choice)
|
|
9
|
+
checkbox_input(choice) +
|
|
10
|
+
template.content_tag(
|
|
11
|
+
:label, choice_label(choice),
|
|
12
|
+
label_html_options.merge(for: choice_input_dom_id(choice))
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def input_html_options
|
|
17
|
+
super.merge(class: "form-check-input")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def label_html_options
|
|
21
|
+
super.merge(class: "form-check-label")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
module ActiveAdmin
|
|
29
|
+
module Inputs
|
|
30
|
+
class CheckBoxesInput < ::Formtastic::Inputs::CheckBoxesInput
|
|
31
|
+
include ::Adminterface::Extensions::Inputs::CheckBoxesInput
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module ColorInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.color_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def input_html_options
|
|
14
|
+
opts = super
|
|
15
|
+
opts[:class] = "#{opts[:class]} form-control-color".squish
|
|
16
|
+
opts
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
module ActiveAdmin
|
|
24
|
+
module Inputs
|
|
25
|
+
class ColorInput < ::Formtastic::Inputs::ColorInput
|
|
26
|
+
include ::Adminterface::Extensions::Inputs::ColorInput
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module CountryInput
|
|
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.country_select(method, priority_countries, 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 CountryInput < ::Formtastic::Inputs::CountryInput
|
|
30
|
+
include ::Adminterface::Extensions::Inputs::CountryInput
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module DatalistInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def to_html
|
|
10
|
+
@name = input_html_options[:id].gsub(/_id$/, "")
|
|
11
|
+
input_wrapping do
|
|
12
|
+
label_html << input_html << data_list_html
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
module ActiveAdmin
|
|
21
|
+
module Inputs
|
|
22
|
+
class DatalistInput < ::Formtastic::Inputs::DatalistInput
|
|
23
|
+
include ::Adminterface::Extensions::Inputs::DatalistInput
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module DatePickerInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html_options
|
|
10
|
+
opts = super
|
|
11
|
+
opts[:class] = "#{opts[:class]} form-control".squish
|
|
12
|
+
opts
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
module ActiveAdmin
|
|
20
|
+
module Inputs
|
|
21
|
+
class DatePickerInput < ::Formtastic::Inputs::DatePickerInput
|
|
22
|
+
include ::Adminterface::Extensions::Inputs::DatePickerInput
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Overwrite activeadmin/lib/active_admin/inputs/datepicker_input.rb
|
|
28
|
+
ActiveAdmin::Inputs::DatepickerInput.class_eval do
|
|
29
|
+
prepend ::Adminterface::Extensions::Inputs::DatePickerInput
|
|
30
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module DatetimePickerInput
|
|
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 DatetimePickerInput < ::Formtastic::Inputs::DatetimePickerInput
|
|
16
|
+
include ::Adminterface::Extensions::Inputs::DatetimePickerInput
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module EmailInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.email_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActiveAdmin
|
|
18
|
+
module Inputs
|
|
19
|
+
class EmailInput < ::Formtastic::Inputs::EmailInput
|
|
20
|
+
include ::Adminterface::Extensions::Inputs::EmailInput
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module ActiveAdmin
|
|
2
|
+
module Inputs
|
|
3
|
+
class FileInput < ::Formtastic::Inputs::FileInput
|
|
4
|
+
include ::Adminterface::Extensions::Inputs::Base
|
|
5
|
+
prepend ::Adminterface::Extensions::Inputs::Base::Groupish
|
|
6
|
+
|
|
7
|
+
# @TODO: use custom component so we can change the translations in I18n YAML files
|
|
8
|
+
def to_html
|
|
9
|
+
input_wrapping do
|
|
10
|
+
label_html << input_html
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def input_html
|
|
15
|
+
builder.file_field(method, input_html_options)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
module Base
|
|
6
|
+
module SearchMethodSelect
|
|
7
|
+
def to_html
|
|
8
|
+
input_wrapping do
|
|
9
|
+
label_html << fields_html
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def fields_html
|
|
14
|
+
template.content_tag :div, class: "row g-3" do
|
|
15
|
+
template.content_tag(:div, select_html, class: "col") +
|
|
16
|
+
template.content_tag(:div, input_html, class: "col")
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def select_html
|
|
21
|
+
template.select_tag(
|
|
22
|
+
"",
|
|
23
|
+
template.options_for_select(filter_options, current_filter),
|
|
24
|
+
class: "form-select"
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Overwrite activeadmin/lib/active_admin/inputs/filters/base/search_method_select.rb
|
|
35
|
+
ActiveAdmin::Inputs::Filters::Base::SearchMethodSelect.module_eval do
|
|
36
|
+
prepend Adminterface::Extensions::Inputs::Filters::Base::SearchMethodSelect
|
|
37
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Overwrite activeadmin/lib/active_admin/inputs/filters/check_boxes_input.rb
|
|
2
|
+
ActiveAdmin::Inputs::Filters::CheckBoxesInput.class_eval do
|
|
3
|
+
prepend ::Adminterface::Extensions::Inputs::CheckBoxesInput
|
|
4
|
+
|
|
5
|
+
def choices_group_wrapping(&block)
|
|
6
|
+
template.content_tag(:ol, template.capture(&block), choices_group_wrapping_html_options)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def choice_wrapping(html_options, &block)
|
|
10
|
+
template.content_tag(:li, template.capture(&block), html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module Filters
|
|
5
|
+
module DateRangeInput
|
|
6
|
+
def to_html
|
|
7
|
+
input_wrapping do
|
|
8
|
+
[
|
|
9
|
+
label_html,
|
|
10
|
+
fields
|
|
11
|
+
].join("\n")&.html_safe
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def fields
|
|
16
|
+
template.content_tag :div, class: "row g-3" do
|
|
17
|
+
template.content_tag(:div, gt_input, class: "col") +
|
|
18
|
+
template.content_tag(:div, lt_input, class: "col")
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def input_html_options_for(input_name, placeholder)
|
|
23
|
+
opts = super
|
|
24
|
+
opts[:class] = "#{opts[:class]} form-control".squish
|
|
25
|
+
opts.merge(plugins_options)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def plugins_configs_key
|
|
31
|
+
:date_picker
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def gt_input
|
|
35
|
+
builder.text_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def lt_input
|
|
39
|
+
builder.text_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder))
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Overwrite activeadmin/lib/active_admin/inputs/filters/date_range_input.rb
|
|
48
|
+
ActiveAdmin::Inputs::Filters::DateRangeInput.class_eval do
|
|
49
|
+
prepend Adminterface::Extensions::Inputs::Filters::DateRangeInput
|
|
50
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module NumberInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.number_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActiveAdmin
|
|
18
|
+
module Inputs
|
|
19
|
+
class NumberInput < ::Formtastic::Inputs::NumberInput
|
|
20
|
+
include ::Adminterface::Extensions::Inputs::NumberInput
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module PasswordInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.password_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActiveAdmin
|
|
18
|
+
module Inputs
|
|
19
|
+
class PasswordInput < ::Formtastic::Inputs::PasswordInput
|
|
20
|
+
include ::Adminterface::Extensions::Inputs::PasswordInput
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module PhoneInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Stringish
|
|
7
|
+
prepend Base::Groupish
|
|
8
|
+
|
|
9
|
+
def input_html
|
|
10
|
+
builder.phone_field(method, input_html_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActiveAdmin
|
|
18
|
+
module Inputs
|
|
19
|
+
class PhoneInput < ::Formtastic::Inputs::PhoneInput
|
|
20
|
+
include ::Adminterface::Extensions::Inputs::PhoneInput
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Adminterface
|
|
2
|
+
module Extensions
|
|
3
|
+
module Inputs
|
|
4
|
+
module RadioInput
|
|
5
|
+
include Base
|
|
6
|
+
include Base::Choices
|
|
7
|
+
|
|
8
|
+
def choice_html(choice)
|
|
9
|
+
radio_html(choice) +
|
|
10
|
+
template.content_tag(
|
|
11
|
+
:label, choice_label(choice),
|
|
12
|
+
label_html_options.merge(for: choice_input_dom_id(choice))
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def label_html_options
|
|
17
|
+
super.merge(class: "form-check-label")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def radio_html(choice)
|
|
23
|
+
builder.radio_button(
|
|
24
|
+
input_name,
|
|
25
|
+
choice_value(choice),
|
|
26
|
+
input_html_options.merge(choice_html_options(choice))
|
|
27
|
+
.merge(required: false, class: "form-check-input")
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
module ActiveAdmin
|
|
36
|
+
module Inputs
|
|
37
|
+
class RadioInput < ::Formtastic::Inputs::RadioInput
|
|
38
|
+
include ::Adminterface::Extensions::Inputs::RadioInput
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|