ui_bibz 2.4.0 → 2.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +4 -0
- data/.github/workflows/ruby.yml +2 -2
- data/.overcommit.yml +5 -0
- data/.rubocop.yml +87 -0
- data/.rubocop_todo.yml +25 -0
- data/Gemfile +5 -3
- data/Gemfile.lock +99 -56
- data/README.md +1 -0
- data/Rakefile +8 -6
- data/app/assets/stylesheets/fix_addon.sass +0 -1
- data/config/initializers/simple_form_init.rb +3 -1
- data/config/initializers/will_paginate.rb +11 -6
- data/lib/generators/ui_bibz/install_generator.rb +6 -5
- data/lib/generators/ui_bibz/templates/ui_bibz_initializer.rb +1 -1
- data/lib/tasks/ui_bibz_tasks.rake +2 -0
- data/lib/ui_bibz.rb +91 -100
- data/lib/ui_bibz/concerns/models/searchable.rb +56 -61
- data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -9
- data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +26 -26
- data/lib/ui_bibz/helpers/ui/core/icons_helper.rb +6 -6
- data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +5 -5
- data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +5 -4
- data/lib/ui_bibz/helpers/ui/core/navigations_helper.rb +9 -9
- data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +11 -11
- data/lib/ui_bibz/helpers/ui/core/windows_helper.rb +3 -3
- data/lib/ui_bibz/helpers/ui/core_helper.rb +2 -0
- data/lib/ui_bibz/helpers/ui/ux_helper.rb +12 -12
- data/lib/ui_bibz/helpers/utils_helper.rb +8 -11
- data/lib/ui_bibz/infos.rb +9 -7
- data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +40 -39
- data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +6 -5
- data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +8 -6
- data/lib/ui_bibz/inputs/ui_bibz_inputs/string_input.rb +18 -18
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_auto_complete_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_box_switch_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_group_input.rb +6 -5
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_date_picker_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_dropdown_select_field_input.rb +3 -3
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_formula_field_input.rb +5 -4
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_markdown_editor_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_column_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_number_field_input.rb +4 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input.rb +7 -7
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_range_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_select_field_input.rb +4 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input.rb +3 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_text_field_input.rb +9 -2
- data/lib/ui_bibz/rails/engine.rb +11 -15
- data/lib/ui_bibz/ui/base.rb +10 -6
- data/lib/ui_bibz/ui/core/boxes/card.rb +31 -32
- data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +7 -8
- data/lib/ui_bibz/ui/core/boxes/card_column.rb +11 -12
- data/lib/ui_bibz/ui/core/boxes/card_deck.rb +11 -12
- data/lib/ui_bibz/ui/core/boxes/card_group.rb +11 -12
- data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +5 -6
- data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +5 -6
- data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +5 -6
- data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +11 -12
- data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +7 -8
- data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +12 -13
- data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +6 -7
- data/lib/ui_bibz/ui/core/boxes/components/card_list_group.rb +4 -5
- data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +5 -6
- data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +5 -6
- data/lib/ui_bibz/ui/core/component.rb +22 -20
- data/lib/ui_bibz/ui/core/forms/buttons/button.rb +14 -15
- data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +14 -15
- data/lib/ui_bibz/ui/core/forms/buttons/button_link.rb +5 -6
- data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +11 -11
- data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +5 -6
- data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +5 -6
- data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +5 -6
- data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +10 -11
- data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +8 -9
- data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +5 -6
- data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +6 -7
- data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +4 -5
- data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +22 -23
- data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +3 -5
- data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +4 -5
- data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_link.rb +6 -7
- data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +21 -22
- data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +8 -9
- data/lib/ui_bibz/ui/core/forms/files/file_field.rb +5 -6
- data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +10 -11
- data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +3 -4
- data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +3 -4
- data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +9 -9
- data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +6 -7
- data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +9 -10
- data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +13 -14
- data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +6 -7
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +4 -4
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +4 -4
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +3 -3
- data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +24 -25
- data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -5
- data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +6 -7
- data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +6 -6
- data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +5 -6
- data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +5 -6
- data/lib/ui_bibz/ui/core/icons/glyph.rb +13 -14
- data/lib/ui_bibz/ui/core/icons/glyph_group.rb +16 -17
- data/lib/ui_bibz/ui/core/icons/star.rb +7 -9
- data/lib/ui_bibz/ui/core/layouts/col.rb +20 -21
- data/lib/ui_bibz/ui/core/layouts/container.rb +5 -6
- data/lib/ui_bibz/ui/core/layouts/row.rb +4 -5
- data/lib/ui_bibz/ui/core/lists/components/list.rb +19 -20
- data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +4 -5
- data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +5 -6
- data/lib/ui_bibz/ui/core/lists/list_group.rb +15 -16
- data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +5 -6
- data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +7 -8
- data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +6 -7
- data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +12 -13
- data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +7 -8
- data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +4 -5
- data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +8 -9
- data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +8 -9
- data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +5 -6
- data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +8 -8
- data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +6 -7
- data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +6 -7
- data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +5 -6
- data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +7 -7
- data/lib/ui_bibz/ui/core/navigations/link.rb +6 -7
- data/lib/ui_bibz/ui/core/navigations/nav.rb +20 -27
- data/lib/ui_bibz/ui/core/navigations/navbar.rb +23 -24
- data/lib/ui_bibz/ui/core/navigations/pagination.rb +9 -12
- data/lib/ui_bibz/ui/core/navigations/tab_group.rb +7 -8
- data/lib/ui_bibz/ui/core/navigations/toolbar.rb +14 -15
- data/lib/ui_bibz/ui/core/notifications/alert.rb +11 -12
- data/lib/ui_bibz/ui/core/notifications/badge.rb +7 -8
- data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +5 -6
- data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +8 -9
- data/lib/ui_bibz/ui/core/notifications/components/bar.rb +11 -12
- data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +5 -6
- data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +7 -8
- data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +12 -13
- data/lib/ui_bibz/ui/core/notifications/spinner.rb +11 -12
- data/lib/ui_bibz/ui/core/notifications/toast.rb +9 -10
- data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +4 -5
- data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +4 -5
- data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +6 -7
- data/lib/ui_bibz/ui/core/windows/modal.rb +8 -9
- data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +13 -15
- data/lib/ui_bibz/ui/extensions/core/component/klass_extension.rb +9 -10
- data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +22 -21
- data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +9 -9
- data/lib/ui_bibz/ui/extensions/core/forms/surround_extension.rb +8 -10
- data/lib/ui_bibz/ui/ux/containers/components/panel_body.rb +5 -6
- data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +6 -7
- data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +6 -7
- data/lib/ui_bibz/ui/ux/containers/components/panel_footer.rb +5 -6
- data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +6 -7
- data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +12 -12
- data/lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb +5 -6
- data/lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb +5 -6
- data/lib/ui_bibz/ui/ux/containers/panel.rb +21 -22
- data/lib/ui_bibz/ui/ux/tables/components/actions.rb +14 -16
- data/lib/ui_bibz/ui/ux/tables/components/as.rb +8 -9
- data/lib/ui_bibz/ui/ux/tables/components/column.rb +4 -4
- data/lib/ui_bibz/ui/ux/tables/components/columns.rb +4 -3
- data/lib/ui_bibz/ui/ux/tables/components/store.rb +5 -7
- data/lib/ui_bibz/ui/ux/tables/components/thead.rb +5 -6
- data/lib/ui_bibz/ui/ux/tables/extensions/actionable.rb +24 -23
- data/lib/ui_bibz/ui/ux/tables/extensions/paginable.rb +8 -10
- data/lib/ui_bibz/ui/ux/tables/extensions/searchable.rb +9 -9
- data/lib/ui_bibz/ui/ux/tables/extensions/sortable.rb +26 -26
- data/lib/ui_bibz/ui/ux/tables/table.rb +32 -39
- data/lib/ui_bibz/ui/ux/tables/table_card.rb +18 -26
- data/lib/ui_bibz/ui/ux/tables/table_pagination.rb +15 -18
- data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +15 -18
- data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +19 -23
- data/lib/ui_bibz/utils/glyph_changer.rb +13 -13
- data/lib/ui_bibz/utils/internationalization.rb +10 -7
- data/lib/ui_bibz/utils/screwdriver.rb +7 -5
- data/test/dummy/Rakefile +3 -1
- data/test/dummy/app/controllers/application_controller.rb +2 -0
- data/test/dummy/app/controllers/users_controller.rb +15 -14
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/application_record.rb +2 -0
- data/test/dummy/app/models/continent.rb +2 -0
- data/test/dummy/app/models/country.rb +2 -0
- data/test/dummy/app/models/user.rb +3 -0
- data/test/dummy/bin/bundle +3 -1
- data/test/dummy/bin/rails +3 -1
- data/test/dummy/bin/rake +2 -0
- data/test/dummy/bin/setup +10 -8
- data/test/dummy/config.ru +2 -0
- data/test/dummy/config/application.rb +5 -4
- data/test/dummy/config/boot.rb +4 -2
- data/test/dummy/config/environment.rb +3 -1
- data/test/dummy/config/environments/development.rb +2 -0
- data/test/dummy/config/environments/production.rb +2 -0
- data/test/dummy/config/environments/test.rb +2 -0
- data/test/dummy/config/initializers/assets.rb +2 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
- data/test/dummy/config/initializers/inflections.rb +2 -0
- data/test/dummy/config/initializers/mime_types.rb +2 -0
- data/test/dummy/config/initializers/session_store.rb +2 -0
- data/test/dummy/config/initializers/simple_form_bootstrap.rb +3 -1
- data/test/dummy/config/initializers/ui_bibz.rb +1 -1
- data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
- data/test/dummy/config/routes.rb +2 -0
- data/test/dummy/db/migrate/20150123191805_create_users.rb +2 -0
- data/test/dummy/db/migrate/20170309084406_continents.rb +2 -0
- data/test/dummy/db/migrate/20170309084453_countries.rb +2 -0
- data/test/dummy/db/schema.rb +22 -22
- data/test/dummy/test/models/user_test.rb +2 -0
- data/test/factories/user.rb +6 -4
- data/test/simple_form_test.rb +33 -39
- data/test/store_test.rb +10 -9
- data/test/support/factory_bot.rb +9 -5
- data/test/test_helper.rb +8 -8
- data/test/ui/core/boxes/card_test.rb +28 -26
- data/test/ui/core/boxes/jumbotron_test.rb +4 -3
- data/test/ui/core/component_test.rb +4 -4
- data/test/ui/core/forms/buttons/button_group_test.rb +8 -7
- data/test/ui/core/forms/buttons/button_link_test.rb +16 -14
- data/test/ui/core/forms/buttons/button_refresh_test.rb +5 -5
- data/test/ui/core/forms/buttons/button_test.rb +25 -23
- data/test/ui/core/forms/choices/box_switch_field_test.rb +62 -62
- data/test/ui/core/forms/choices/checkbox_field_test.rb +7 -6
- data/test/ui/core/forms/choices/choice_group_test.rb +6 -5
- data/test/ui/core/forms/choices/radio_field_test.rb +7 -6
- data/test/ui/core/forms/dates/date_picker_field_test.rb +12 -11
- data/test/ui/core/forms/dropdowns/dropdown_test.rb +12 -11
- data/test/ui/core/forms/files/text_field_test.rb +7 -6
- data/test/ui/core/forms/numbers/formula_field_test.rb +7 -6
- data/test/ui/core/forms/numbers/number_field_test.rb +12 -11
- data/test/ui/core/forms/numbers/range_field_test.rb +12 -11
- data/test/ui/core/forms/selects/dropdown_select_field_test.rb +61 -60
- data/test/ui/core/forms/selects/multi_column_field_test.rb +14 -13
- data/test/ui/core/forms/selects/multi_select_field_test.rb +19 -18
- data/test/ui/core/forms/selects/select_field_test.rb +13 -13
- data/test/ui/core/forms/surrounds/surround_field_test.rb +54 -54
- data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +7 -6
- data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -7
- data/test/ui/core/forms/texts/text_field_test.rb +17 -16
- data/test/ui/core/icons/glyph_group_test.rb +8 -8
- data/test/ui/core/icons/glyph_test.rb +4 -4
- data/test/ui/core/icons/star_test.rb +37 -36
- data/test/ui/core/layouts/col_test.rb +11 -10
- data/test/ui/core/layouts/container_test.rb +3 -2
- data/test/ui/core/layouts/row_test.rb +4 -3
- data/test/ui/core/lists/list_group_test.rb +7 -6
- data/test/ui/core/navigations/breadcrumb_test.rb +12 -14
- data/test/ui/core/navigations/link_test.rb +9 -8
- data/test/ui/core/navigations/nav_test.rb +22 -21
- data/test/ui/core/navigations/navbar_test.rb +11 -11
- data/test/ui/core/navigations/pagination_test.rb +14 -13
- data/test/ui/core/navigations/tab_group_test.rb +22 -21
- data/test/ui/core/navigations/toolbar_test.rb +4 -3
- data/test/ui/core/notifications/alert_test.rb +5 -4
- data/test/ui/core/notifications/badge_test.rb +5 -4
- data/test/ui/core/notifications/progress_bar_test.rb +13 -13
- data/test/ui/core/notifications/spinner_test.rb +9 -8
- data/test/ui/core/notifications/toast_test.rb +3 -2
- data/test/ui/core/windows/modal_test.rb +3 -2
- data/test/ui/ux/containers/panel_test.rb +7 -6
- data/test/ui/ux/tables/table_test.rb +33 -33
- data/test/ui_bibz_test.rb +3 -1
- data/ui_bibz.gemspec +32 -28
- data/vendor/assets/fonts/fa-brands-400.eot +0 -0
- data/vendor/assets/fonts/fa-brands-400.svg +2 -2
- data/vendor/assets/fonts/fa-brands-400.ttf +0 -0
- data/vendor/assets/fonts/fa-brands-400.woff +0 -0
- data/vendor/assets/fonts/fa-brands-400.woff2 +0 -0
- data/vendor/assets/fonts/fa-regular-400.eot +0 -0
- data/vendor/assets/fonts/fa-regular-400.svg +2 -2
- data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
- data/vendor/assets/fonts/fa-regular-400.woff +0 -0
- data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
- data/vendor/assets/fonts/fa-solid-900.eot +0 -0
- data/vendor/assets/fonts/fa-solid-900.svg +241 -3
- data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
- data/vendor/assets/fonts/fa-solid-900.woff +0 -0
- data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
- data/vendor/assets/javascripts/all.js +57 -7
- data/vendor/assets/javascripts/all.min.js +2 -2
- data/vendor/assets/stylesheets/all.min.css +2 -2
- data/vendor/assets/stylesheets/fontawesome/_icons.scss +31 -0
- data/vendor/assets/stylesheets/fontawesome/_variables.scss +34 -3
- data/vendor/assets/stylesheets/fontawesome/brands.scss +1 -1
- data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +1 -1
- data/vendor/assets/stylesheets/fontawesome/regular.scss +1 -1
- data/vendor/assets/stylesheets/fontawesome/solid.scss +1 -1
- data/vendor/assets/stylesheets/fontawesome/v4-shims.scss +1 -1
- metadata +74 -42
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
unless defined?(SimpleForm).nil?
|
2
4
|
SimpleForm.setup do |config|
|
3
5
|
# Namespaces where SimpleForm should look for custom input classes that
|
4
6
|
# override default inputs.
|
5
|
-
config.custom_inputs_namespaces <<
|
7
|
+
config.custom_inputs_namespaces << 'UiBibzInputs'
|
6
8
|
end
|
7
9
|
end
|
@@ -1,9 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'will_paginate/view_helpers/action_view'
|
2
4
|
|
3
5
|
module WillPaginate
|
4
6
|
module ActionView
|
5
7
|
def will_paginate(collection = nil, options = {})
|
6
|
-
|
8
|
+
if collection.is_a? Hash
|
9
|
+
options = collection
|
10
|
+
collection = nil
|
11
|
+
end
|
7
12
|
collection ||= infer_collection_from_controller
|
8
13
|
|
9
14
|
options = options.symbolize_keys
|
@@ -21,10 +26,10 @@ module WillPaginate
|
|
21
26
|
def to_html
|
22
27
|
list_items = pagination.map do |item|
|
23
28
|
case item
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
29
|
+
when Integer
|
30
|
+
page_number(item)
|
31
|
+
else
|
32
|
+
send(item)
|
28
33
|
end
|
29
34
|
end.join(@options[:link_separator])
|
30
35
|
|
@@ -33,7 +38,7 @@ module WillPaginate
|
|
33
38
|
end
|
34
39
|
|
35
40
|
def container_attributes
|
36
|
-
super.except(
|
41
|
+
super.except(:link_options)
|
37
42
|
end
|
38
43
|
|
39
44
|
protected
|
@@ -1,16 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails/generators'
|
2
4
|
module UiBibz
|
3
5
|
module Generators
|
4
6
|
class InstallGenerator < ::Rails::Generators::Base
|
5
|
-
source_root File.expand_path(
|
6
|
-
desc
|
7
|
+
source_root File.expand_path('templates', __dir__)
|
8
|
+
desc 'Creates Ui Bibz initializer for your application'
|
7
9
|
|
8
10
|
def copy_initializer
|
9
|
-
template
|
11
|
+
template 'ui_bibz_initializer.rb', 'config/initializers/ui_bibz.rb'
|
10
12
|
|
11
|
-
puts
|
13
|
+
puts 'Install complete in config/initializers/ui_bibz.rb. Now you can configure the library!'
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
16
|
-
|
data/lib/ui_bibz.rb
CHANGED
@@ -1,40 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'action_view'
|
2
4
|
require 'will_paginate'
|
3
5
|
require 'will-paginate-i18n'
|
4
6
|
|
5
7
|
module UiBibzForm
|
6
|
-
|
7
|
-
autoload :UiBibzFormBuilder, "ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder"
|
8
|
-
|
8
|
+
autoload :UiBibzFormBuilder, 'ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder'
|
9
9
|
end
|
10
10
|
|
11
11
|
module UiBibzInputs
|
12
|
-
|
13
|
-
autoload :
|
14
|
-
autoload :
|
15
|
-
autoload :
|
16
|
-
autoload :
|
17
|
-
autoload :
|
18
|
-
autoload :
|
19
|
-
autoload :
|
20
|
-
autoload :
|
21
|
-
autoload :
|
22
|
-
autoload :
|
23
|
-
autoload :
|
24
|
-
autoload :
|
25
|
-
autoload :
|
26
|
-
autoload :
|
27
|
-
autoload :
|
28
|
-
autoload :
|
29
|
-
autoload :
|
30
|
-
autoload :
|
31
|
-
autoload :UiRangeFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_range_field_input"
|
32
|
-
|
12
|
+
autoload :BaseInput, 'ui_bibz/inputs/ui_bibz_inputs/base_input'
|
13
|
+
autoload :CollectionInput, 'ui_bibz/inputs/ui_bibz_inputs/collection_input'
|
14
|
+
autoload :StringInput, 'ui_bibz/inputs/ui_bibz_inputs/string_input'
|
15
|
+
autoload :UiAutoCompleteFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_auto_complete_field_input'
|
16
|
+
autoload :UiChoiceGroupInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_choice_group_input'
|
17
|
+
autoload :UiDatePickerFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_date_picker_field_input'
|
18
|
+
autoload :UiDropdownSelectFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_dropdown_select_field_input'
|
19
|
+
autoload :UiFormulaFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_formula_field_input'
|
20
|
+
autoload :UiMarkdownEditorFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_markdown_editor_field_input'
|
21
|
+
autoload :UiMultiColumnFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_multi_column_field_input'
|
22
|
+
autoload :UiMultiSelectFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input'
|
23
|
+
autoload :UiNumberFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_number_field_input'
|
24
|
+
autoload :UiRadioFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input'
|
25
|
+
autoload :UiSelectFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_select_field_input'
|
26
|
+
autoload :UiBoxSwitchFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_box_switch_field_input'
|
27
|
+
autoload :UiSwitchFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input'
|
28
|
+
autoload :UiTextFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_text_field_input'
|
29
|
+
autoload :UiFileFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input'
|
30
|
+
autoload :UiRangeFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_range_field_input'
|
33
31
|
end
|
34
32
|
|
35
33
|
module UiBibz
|
36
|
-
|
37
|
-
@@configured = false
|
34
|
+
@@configured = false # rubocop:disable Style/ClassVars
|
38
35
|
|
39
36
|
# Configuration of Ui Bibz
|
40
37
|
class << self
|
@@ -47,7 +44,7 @@ module UiBibz
|
|
47
44
|
|
48
45
|
def self.configure
|
49
46
|
self.configuration ||= Configuration.new
|
50
|
-
@@configured = true
|
47
|
+
@@configured = true # rubocop:disable Style/ClassVars
|
51
48
|
yield(configuration)
|
52
49
|
end
|
53
50
|
|
@@ -63,162 +60,156 @@ module UiBibz
|
|
63
60
|
|
64
61
|
# Add modules
|
65
62
|
module Utils
|
66
|
-
autoload :Screwdriver,
|
67
|
-
autoload :GlyphChanger,
|
63
|
+
autoload :Screwdriver, 'ui_bibz/utils/screwdriver'
|
64
|
+
autoload :GlyphChanger, 'ui_bibz/utils/glyph_changer'
|
68
65
|
end
|
69
66
|
|
70
67
|
module Ui
|
71
68
|
# Base
|
72
|
-
autoload :Base,
|
69
|
+
autoload :Base, 'ui_bibz/ui/base'
|
73
70
|
|
74
71
|
# Core
|
75
72
|
module Core
|
76
|
-
|
77
73
|
module Boxes
|
78
|
-
autoload :Card,
|
79
|
-
autoload :CardAccordion,
|
80
|
-
autoload :CardColumn,
|
81
|
-
autoload :CardDeck,
|
82
|
-
autoload :CardGroup,
|
83
|
-
autoload :Jumbotron,
|
74
|
+
autoload :Card, 'ui_bibz/ui/core/boxes/card'
|
75
|
+
autoload :CardAccordion, 'ui_bibz/ui/core/boxes/card_accordion'
|
76
|
+
autoload :CardColumn, 'ui_bibz/ui/core/boxes/card_column'
|
77
|
+
autoload :CardDeck, 'ui_bibz/ui/core/boxes/card_deck'
|
78
|
+
autoload :CardGroup, 'ui_bibz/ui/core/boxes/card_group'
|
79
|
+
autoload :Jumbotron, 'ui_bibz/ui/core/boxes/jumbotron'
|
84
80
|
end
|
85
81
|
|
86
82
|
module Forms
|
87
|
-
|
88
83
|
module Dropdowns
|
89
|
-
autoload :Dropdown,
|
90
|
-
autoload :SplitDropdown,
|
84
|
+
autoload :Dropdown, 'ui_bibz/ui/core/forms/dropdowns/dropdown'
|
85
|
+
autoload :SplitDropdown, 'ui_bibz/ui/core/forms/dropdowns/split_dropdown'
|
91
86
|
end
|
92
87
|
|
93
88
|
module Dates
|
94
|
-
autoload :DatePickerField,
|
89
|
+
autoload :DatePickerField, 'ui_bibz/ui/core/forms/dates/date_picker_field'
|
95
90
|
end
|
96
91
|
|
97
92
|
module Choices
|
98
|
-
autoload :SwitchField,
|
99
|
-
autoload :BoxSwitchField,
|
100
|
-
autoload :CheckboxField,
|
101
|
-
autoload :RadioField,
|
102
|
-
autoload :ChoiceGroup,
|
93
|
+
autoload :SwitchField, 'ui_bibz/ui/core/forms/choices/switch_field'
|
94
|
+
autoload :BoxSwitchField, 'ui_bibz/ui/core/forms/choices/box_switch_field'
|
95
|
+
autoload :CheckboxField, 'ui_bibz/ui/core/forms/choices/checkbox_field'
|
96
|
+
autoload :RadioField, 'ui_bibz/ui/core/forms/choices/radio_field'
|
97
|
+
autoload :ChoiceGroup, 'ui_bibz/ui/core/forms/choices/choice_group'
|
103
98
|
end
|
104
99
|
|
105
100
|
module Files
|
106
|
-
autoload :FileField,
|
101
|
+
autoload :FileField, 'ui_bibz/ui/core/forms/files/file_field'
|
107
102
|
end
|
108
103
|
|
109
104
|
module Numbers
|
110
|
-
autoload :FormulaField,
|
111
|
-
autoload :NumberField,
|
112
|
-
autoload :RangeField,
|
105
|
+
autoload :FormulaField, 'ui_bibz/ui/core/forms/numbers/formula_field'
|
106
|
+
autoload :NumberField, 'ui_bibz/ui/core/forms/numbers/number_field'
|
107
|
+
autoload :RangeField, 'ui_bibz/ui/core/forms/numbers/range_field'
|
113
108
|
end
|
114
109
|
|
115
110
|
module Selects
|
116
|
-
autoload :AbstractSelect,
|
117
|
-
autoload :DropdownSelectField,
|
118
|
-
autoload :SelectField,
|
119
|
-
autoload :MultiColumnField,
|
120
|
-
autoload :MultiSelectField,
|
111
|
+
autoload :AbstractSelect, 'ui_bibz/ui/core/forms/selects/abstract_select'
|
112
|
+
autoload :DropdownSelectField, 'ui_bibz/ui/core/forms/selects/dropdown_select_field'
|
113
|
+
autoload :SelectField, 'ui_bibz/ui/core/forms/selects/select_field'
|
114
|
+
autoload :MultiColumnField, 'ui_bibz/ui/core/forms/selects/multi_column_field'
|
115
|
+
autoload :MultiSelectField, 'ui_bibz/ui/core/forms/selects/multi_select_field'
|
121
116
|
end
|
122
117
|
|
123
118
|
module Buttons
|
124
|
-
autoload :Button,
|
125
|
-
autoload :ButtonGroup,
|
126
|
-
autoload :ButtonLink,
|
127
|
-
autoload :ButtonRefresh,
|
119
|
+
autoload :Button, 'ui_bibz/ui/core/forms/buttons/button'
|
120
|
+
autoload :ButtonGroup, 'ui_bibz/ui/core/forms/buttons/button_group'
|
121
|
+
autoload :ButtonLink, 'ui_bibz/ui/core/forms/buttons/button_link'
|
122
|
+
autoload :ButtonRefresh, 'ui_bibz/ui/core/forms/buttons/button_refresh'
|
128
123
|
end
|
129
124
|
|
130
125
|
module Surrounds
|
131
|
-
autoload :SurroundField,
|
126
|
+
autoload :SurroundField, 'ui_bibz/ui/core/forms/surrounds/surround_field'
|
132
127
|
end
|
133
128
|
|
134
129
|
module Texts
|
135
|
-
autoload :AutoCompleteField,
|
136
|
-
autoload :TextField,
|
130
|
+
autoload :AutoCompleteField, 'ui_bibz/ui/core/forms/texts/auto_complete_field'
|
131
|
+
autoload :TextField, 'ui_bibz/ui/core/forms/texts/text_field'
|
137
132
|
end
|
138
133
|
|
139
134
|
module Textareas
|
140
|
-
autoload :MarkdownEditorField,
|
135
|
+
autoload :MarkdownEditorField, 'ui_bibz/ui/core/forms/textareas/markdown_editor_field'
|
141
136
|
end
|
142
|
-
|
143
137
|
end
|
144
138
|
|
145
139
|
module Icons
|
146
|
-
autoload :Glyph,
|
147
|
-
autoload :GlyphGroup,
|
148
|
-
autoload :Star,
|
140
|
+
autoload :Glyph, 'ui_bibz/ui/core/icons/glyph'
|
141
|
+
autoload :GlyphGroup, 'ui_bibz/ui/core/icons/glyph_group'
|
142
|
+
autoload :Star, 'ui_bibz/ui/core/icons/star'
|
149
143
|
end
|
150
144
|
|
151
145
|
module Layouts
|
152
|
-
autoload :Row,
|
153
|
-
autoload :Col,
|
154
|
-
autoload :Container,
|
146
|
+
autoload :Row, 'ui_bibz/ui/core/layouts/row'
|
147
|
+
autoload :Col, 'ui_bibz/ui/core/layouts/col'
|
148
|
+
autoload :Container, 'ui_bibz/ui/core/layouts/container'
|
155
149
|
end
|
156
150
|
|
157
151
|
module Lists
|
158
|
-
autoload :ListGroup,
|
159
|
-
autoload :List,
|
152
|
+
autoload :ListGroup, 'ui_bibz/ui/core/lists/list_group'
|
153
|
+
autoload :List, 'ui_bibz/ui/core/lists/components/list'
|
160
154
|
end
|
161
155
|
|
162
156
|
module Navigations
|
163
|
-
autoload :Breadcrumb,
|
164
|
-
autoload :Link,
|
165
|
-
autoload :Nav,
|
166
|
-
autoload :Navbar,
|
167
|
-
autoload :Pagination,
|
168
|
-
autoload :TabGroup,
|
169
|
-
autoload :Toolbar,
|
157
|
+
autoload :Breadcrumb, 'ui_bibz/ui/core/navigations/breadcrumb'
|
158
|
+
autoload :Link, 'ui_bibz/ui/core/navigations/link'
|
159
|
+
autoload :Nav, 'ui_bibz/ui/core/navigations/nav'
|
160
|
+
autoload :Navbar, 'ui_bibz/ui/core/navigations/navbar'
|
161
|
+
autoload :Pagination, 'ui_bibz/ui/core/navigations/pagination'
|
162
|
+
autoload :TabGroup, 'ui_bibz/ui/core/navigations/tab_group'
|
163
|
+
autoload :Toolbar, 'ui_bibz/ui/core/navigations/toolbar'
|
170
164
|
end
|
171
165
|
|
172
166
|
module Notifications
|
173
|
-
autoload :Alert,
|
174
|
-
autoload :Badge,
|
175
|
-
autoload :ProgressBar,
|
176
|
-
autoload :Spinner,
|
177
|
-
autoload :Toast,
|
167
|
+
autoload :Alert, 'ui_bibz/ui/core/notifications/alert'
|
168
|
+
autoload :Badge, 'ui_bibz/ui/core/notifications/badge'
|
169
|
+
autoload :ProgressBar, 'ui_bibz/ui/core/notifications/progress_bar'
|
170
|
+
autoload :Spinner, 'ui_bibz/ui/core/notifications/spinner'
|
171
|
+
autoload :Toast, 'ui_bibz/ui/core/notifications/toast'
|
178
172
|
end
|
179
173
|
|
180
174
|
module Windows
|
181
|
-
autoload :Modal,
|
175
|
+
autoload :Modal, 'ui_bibz/ui/core/windows/modal'
|
182
176
|
end
|
183
177
|
|
184
178
|
# Other section
|
185
|
-
autoload :Component,
|
179
|
+
autoload :Component, 'ui_bibz/ui/core/component'
|
186
180
|
end
|
187
181
|
|
188
182
|
# Ux
|
189
183
|
module Ux
|
190
|
-
|
191
184
|
# Table section
|
192
185
|
module Tables
|
193
|
-
autoload :Table,
|
194
|
-
autoload :TableCard,
|
195
|
-
autoload :TableSearchField,
|
196
|
-
autoload :TablePagination,
|
197
|
-
autoload :TablePaginationPerPage,
|
186
|
+
autoload :Table, 'ui_bibz/ui/ux/tables/table'
|
187
|
+
autoload :TableCard, 'ui_bibz/ui/ux/tables/table_card'
|
188
|
+
autoload :TableSearchField, 'ui_bibz/ui/ux/tables/table_search_field'
|
189
|
+
autoload :TablePagination, 'ui_bibz/ui/ux/tables/table_pagination'
|
190
|
+
autoload :TablePaginationPerPage, 'ui_bibz/ui/ux/tables/table_pagination_per_page'
|
198
191
|
end
|
199
192
|
|
200
193
|
module Containers
|
201
|
-
autoload :Panel,
|
194
|
+
autoload :Panel, 'ui_bibz/ui/ux/containers/panel'
|
202
195
|
end
|
203
|
-
|
204
196
|
end
|
205
197
|
end
|
206
198
|
|
207
199
|
module Helpers
|
208
200
|
module Ui
|
209
|
-
autoload :CoreHelper,
|
210
|
-
autoload :UxHelper,
|
201
|
+
autoload :CoreHelper, 'ui_bibz/helpers/ui/core_helper'
|
202
|
+
autoload :UxHelper, 'ui_bibz/helpers/ui/ux_helper'
|
211
203
|
module Core end
|
212
204
|
end
|
213
|
-
autoload :UtilsHelper,
|
205
|
+
autoload :UtilsHelper, 'ui_bibz/helpers/utils_helper'
|
214
206
|
end
|
215
207
|
|
216
208
|
module Concerns
|
217
209
|
module Models
|
218
|
-
autoload :Searchable,
|
210
|
+
autoload :Searchable, 'ui_bibz/concerns/models/searchable'
|
219
211
|
end
|
220
212
|
end
|
221
|
-
|
222
213
|
end
|
223
214
|
|
224
|
-
require
|
215
|
+
require 'ui_bibz/rails/engine'
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module UiBibz::Concerns::Models::Searchable
|
2
4
|
extend ActiveSupport::Concern
|
3
5
|
|
4
6
|
included do
|
5
7
|
# Maybe create a class to put all methods of table_search_pagination
|
6
|
-
def self.table_search_pagination
|
8
|
+
def self.table_search_pagination(params, session, args = {})
|
7
9
|
@params = params.permit!
|
8
10
|
@session = session
|
9
11
|
@arguments = args
|
@@ -12,22 +14,20 @@ module UiBibz::Concerns::Models::Searchable
|
|
12
14
|
OpenStruct.new(generate_parameters)
|
13
15
|
end
|
14
16
|
|
15
|
-
private
|
16
|
-
|
17
17
|
def self.generate_parameters
|
18
18
|
{
|
19
|
-
controller:
|
20
|
-
param_id:
|
21
|
-
params:
|
22
|
-
direction:
|
23
|
-
search:
|
24
|
-
sort:
|
25
|
-
action:
|
26
|
-
column_id:
|
27
|
-
id:
|
28
|
-
records:
|
19
|
+
controller: @params[:controller],
|
20
|
+
param_id: @params[:id],
|
21
|
+
params: @params,
|
22
|
+
direction: @params[:direction],
|
23
|
+
search: @params[:search],
|
24
|
+
sort: @params[:sort],
|
25
|
+
action: @params[:action],
|
26
|
+
column_id: @params[:column_id],
|
27
|
+
id: @arguments[:store_id],
|
28
|
+
records: search_sort_paginate,
|
29
29
|
searchable_attributes: @searchable_attributes,
|
30
|
-
model:
|
30
|
+
model: create_model
|
31
31
|
}
|
32
32
|
end
|
33
33
|
|
@@ -37,22 +37,20 @@ module UiBibz::Concerns::Models::Searchable
|
|
37
37
|
|
38
38
|
# If there is more one table in html page
|
39
39
|
def self.initialize_params
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
40
|
+
return unless good_store_id?
|
41
|
+
|
42
|
+
@tmp_params = {
|
43
|
+
search: @params[:search],
|
44
|
+
per_page: @params[:per_page],
|
45
|
+
page: new_search? ? nil : @params[:page],
|
46
|
+
sort: @params[:sort],
|
47
|
+
direction: @params[:direction]
|
48
|
+
}
|
50
49
|
end
|
51
50
|
|
52
|
-
|
53
51
|
def self.search
|
54
52
|
sql = all
|
55
|
-
column_args =
|
53
|
+
column_args = fetch_column_args
|
56
54
|
|
57
55
|
# Add joins
|
58
56
|
sql = joins(column_args[:joins]) if column_args[:joins]
|
@@ -69,91 +67,90 @@ module UiBibz::Concerns::Models::Searchable
|
|
69
67
|
generate_sql sql, column_args
|
70
68
|
end
|
71
69
|
|
72
|
-
def self.generate_sql
|
70
|
+
def self.generate_sql(sql, column_args)
|
73
71
|
column_args[:count].nil? ? generate_default_sql(sql) : generate_count_sql(sql)
|
74
72
|
end
|
75
73
|
|
76
|
-
def self.generate_default_sql
|
77
|
-
if
|
78
|
-
sql.paginate(:
|
74
|
+
def self.generate_default_sql(sql)
|
75
|
+
if sorting?
|
76
|
+
sql.paginate(page: @tmp_params[:page], per_page: @session[:per_page])
|
79
77
|
else
|
80
|
-
sql.reorder(order_sql).paginate(:
|
78
|
+
sql.reorder(order_sql).paginate(page: @tmp_params[:page], per_page: @session[:per_page])
|
81
79
|
end
|
82
80
|
end
|
83
81
|
|
84
|
-
def self.generate_count_sql
|
85
|
-
sq = "SELECT * FROM (#{
|
86
|
-
|
82
|
+
def self.generate_count_sql(sql)
|
83
|
+
sq = "SELECT * FROM (#{sql.group(table_name + '.id').to_sql}) countable ORDER BY countable.count #{@tmp_params[:direction] || asc}"
|
84
|
+
paginate_by_sql(sq, page: @tmp_params[:page], per_page: @session[:per_page])
|
87
85
|
end
|
88
86
|
|
89
|
-
def self.generate_select_count_sort_query
|
90
|
-
sql.select("#{
|
87
|
+
def self.generate_select_count_sort_query(sql, column_args)
|
88
|
+
sql.select("#{table_name}.*, count(#{column_args[:column]}.*)")
|
91
89
|
end
|
92
90
|
|
93
|
-
def self.generate_parent_sort_query
|
94
|
-
sql.select("#{
|
91
|
+
def self.generate_parent_sort_query(sql)
|
92
|
+
sql.select("#{table_name}2.*, #{@tmp_params[:sort]} AS parent_name").from("#{table_name} #{table_name}2").joins("LEFT OUTER JOIN #{table_name} ON #{table_name}2.parent_id = #{table_name}.id")
|
95
93
|
end
|
96
94
|
|
97
|
-
def self.
|
95
|
+
def self.fetch_column_args
|
98
96
|
column_args = {}
|
99
|
-
if !@arguments[:sortable].nil? && @params[:custom_sort]
|
100
|
-
column_args = [@arguments[:sortable]].flatten.detect{|f| f[:column] = @params[:column_name] } || {}
|
101
|
-
end
|
97
|
+
column_args = [@arguments[:sortable]].flatten.detect { |f| f[:column] = @params[:column_name] } || {} if !@arguments[:sortable].nil? && @params[:custom_sort]
|
102
98
|
column_args
|
103
99
|
end
|
104
100
|
|
105
|
-
def self.
|
101
|
+
def self.sorting?
|
106
102
|
@tmp_params[:sort].nil? || @tmp_params[:direction].nil?
|
107
103
|
end
|
108
104
|
|
109
|
-
def self.search_by_query
|
105
|
+
def self.search_by_query(sql)
|
110
106
|
raise 'Add searchable_attributes method in Model' if @searchable_attributes.nil?
|
107
|
+
|
111
108
|
sql_query = []
|
112
109
|
sql_attributes = {}
|
113
110
|
search_patterns = @tmp_params[:search].strip.gsub(/(?<=[\\s])\\s*|^\\s+|\\s+$/, '').downcase
|
114
111
|
|
115
112
|
search_patterns_tmp = search_patterns.scan(/"(.*?)"/).flatten
|
116
113
|
search_patterns = search_patterns.gsub(/"(.*?)"/, '').split(' ')
|
117
|
-
search_patterns
|
114
|
+
search_patterns << search_patterns_tmp
|
118
115
|
|
119
116
|
search_patterns.flatten.each_with_index do |pattern, i|
|
120
117
|
sql_subquery = []
|
121
118
|
@searchable_attributes.each do |attribute|
|
122
|
-
if attribute.
|
119
|
+
if attribute.is_a?(Hash)
|
123
120
|
if attribute == :as
|
124
|
-
attribute.
|
125
|
-
sql_subquery << "lower(#{
|
126
|
-
sql_attributes = sql_attributes.merge(Hash["#{
|
121
|
+
attribute.each_value do |value|
|
122
|
+
sql_subquery << "lower(#{value}) LIKE :#{value}_#{i}"
|
123
|
+
sql_attributes = sql_attributes.merge(Hash["#{value}_#{i}".to_sym, "%#{pattern}%"])
|
127
124
|
end
|
128
125
|
else
|
129
126
|
key_name = attribute.keys.first.to_s.pluralize
|
130
|
-
attribute.
|
131
|
-
sql_subquery << "lower(#{
|
132
|
-
sql_attributes = sql_attributes.merge(Hash["#{
|
127
|
+
attribute.each_value do |value|
|
128
|
+
sql_subquery << "lower(#{key_name}.#{value}) LIKE :#{key_name}_#{value}_#{i}"
|
129
|
+
sql_attributes = sql_attributes.merge(Hash["#{key_name}_#{value}_#{i}".to_sym, "%#{pattern}%"])
|
133
130
|
end
|
134
131
|
end
|
135
132
|
else
|
136
|
-
sql_subquery << "lower(#{
|
137
|
-
sql_attributes = sql_attributes.merge(Hash["#{
|
133
|
+
sql_subquery << "lower(#{to_s.underscore.pluralize.split('/').last}.#{attribute}) LIKE :#{attribute}_#{i}"
|
134
|
+
sql_attributes = sql_attributes.merge(Hash["#{attribute}_#{i}".to_sym, "%#{pattern}%"])
|
138
135
|
end
|
139
136
|
end
|
140
|
-
sql_query <<
|
137
|
+
sql_query << '(' + sql_subquery.join(' OR ') + ')'
|
141
138
|
end
|
142
139
|
|
143
140
|
sql.where([sql_query.join(' AND '), sql_attributes])
|
144
141
|
end
|
145
142
|
|
146
143
|
def self.order_sql
|
147
|
-
|
144
|
+
sorting? ? "#{table_name}.id asc" : "#{@tmp_params[:sort]} #{@tmp_params[:direction]}"
|
148
145
|
end
|
149
146
|
|
150
147
|
def self.search_sort_paginate
|
151
148
|
@session[:per_page] = @tmp_params[:per_page] unless @tmp_params[:per_page].nil?
|
152
|
-
|
149
|
+
search
|
153
150
|
end
|
154
151
|
|
155
152
|
# If there's several table in the same page
|
156
|
-
def self.
|
153
|
+
def self.good_store_id?
|
157
154
|
@arguments[:store_id] == @params[:store_id]
|
158
155
|
end
|
159
156
|
|
@@ -163,7 +160,6 @@ module UiBibz::Concerns::Models::Searchable
|
|
163
160
|
end
|
164
161
|
|
165
162
|
module ClassMethods
|
166
|
-
|
167
163
|
# => searchable_attributes :name, :address
|
168
164
|
# or
|
169
165
|
# => searchable_attributes user: :name
|
@@ -172,9 +168,8 @@ module UiBibz::Concerns::Models::Searchable
|
|
172
168
|
# or
|
173
169
|
# => search_attributes :name, as: [:mybuildcolumn1, :mybuild_column2]
|
174
170
|
#
|
175
|
-
def searchable_attributes
|
171
|
+
def searchable_attributes(*args)
|
176
172
|
@searchable_attributes ||= args
|
177
173
|
end
|
178
174
|
end
|
179
|
-
|
180
175
|
end
|