ui_bibz 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.overcommit.yml +5 -0
- data/.rubocop.yml +52 -0
- data/.rubocop_todo.yml +25 -0
- data/Gemfile +5 -3
- data/Gemfile.lock +25 -1
- data/Rakefile +8 -6
- 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 +3 -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 +3 -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 +3 -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 +2 -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 +28 -34
- 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
- metadata +73 -42
@@ -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
|
@@ -1,5 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module UiBibz::Helpers::Ui::Core::BoxesHelper
|
3
4
|
# Card Component
|
4
5
|
#
|
5
6
|
# +options+ (Hash)
|
@@ -7,8 +8,8 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
7
8
|
#
|
8
9
|
# Option +tap: true+ is required if you want add +header+, +block+ or
|
9
10
|
# +footer+.
|
10
|
-
def ui_card
|
11
|
-
if
|
11
|
+
def ui_card(content = nil, options = nil, html_options = nil, &block)
|
12
|
+
if tap?(content, options)
|
12
13
|
UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
|
13
14
|
else
|
14
15
|
UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
|
@@ -20,7 +21,7 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
20
21
|
# +options+ (Hash)
|
21
22
|
# +html_options+ (Hash)
|
22
23
|
#
|
23
|
-
def ui_card_accordion
|
24
|
+
def ui_card_accordion(content = nil, options = nil, html_options = nil, &block)
|
24
25
|
UiBibz::Ui::Core::Boxes::CardAccordion.new(content, options, html_options).tap(&block).render
|
25
26
|
end
|
26
27
|
|
@@ -28,7 +29,7 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
28
29
|
#
|
29
30
|
# +options+ (Hash)
|
30
31
|
# +html_options+ (Hash)
|
31
|
-
def ui_card_group
|
32
|
+
def ui_card_group(content = nil, options = nil, html_options = nil, &block)
|
32
33
|
UiBibz::Ui::Core::Boxes::CardGroup.new(content, options, html_options).tap(&block).render
|
33
34
|
end
|
34
35
|
|
@@ -36,7 +37,7 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
36
37
|
#
|
37
38
|
# +options+ (Hash)
|
38
39
|
# +html_options+ (Hash)
|
39
|
-
def ui_card_deck
|
40
|
+
def ui_card_deck(content = nil, options = nil, html_options = nil, &block)
|
40
41
|
UiBibz::Ui::Core::Boxes::CardDeck.new(content, options, html_options).tap(&block).render
|
41
42
|
end
|
42
43
|
|
@@ -44,7 +45,7 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
44
45
|
#
|
45
46
|
# +options+ (Hash)
|
46
47
|
# +html_options+ (Hash)
|
47
|
-
def ui_card_column
|
48
|
+
def ui_card_column(content = nil, options = nil, html_options = nil, &block)
|
48
49
|
UiBibz::Ui::Core::Boxes::CardColumn.new(content, options, html_options).tap(&block).render
|
49
50
|
end
|
50
51
|
|
@@ -52,8 +53,7 @@ module UiBibz::Helpers::Ui::Core::BoxesHelper
|
|
52
53
|
#
|
53
54
|
# +options+ (Hash)
|
54
55
|
# +html_options+ (Hash)
|
55
|
-
def ui_jumbotron
|
56
|
+
def ui_jumbotron(content = nil, options = nil, html_options = nil, &block)
|
56
57
|
UiBibz::Ui::Core::Boxes::Jumbotron.new(content, options, html_options, &block).render
|
57
58
|
end
|
58
|
-
|
59
59
|
end
|
@@ -1,10 +1,11 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
module UiBibz::Helpers::Ui::Core::FormsHelper
|
3
4
|
# Button Component
|
4
5
|
#
|
5
6
|
# +options+ (Hash)
|
6
7
|
# +html_options+ (Hash)
|
7
|
-
def ui_button
|
8
|
+
def ui_button(content = nil, options = nil, html_options = nil, &block)
|
8
9
|
UiBibz::Ui::Core::Forms::Buttons::Button.new(content, options, html_options, &block).render
|
9
10
|
end
|
10
11
|
|
@@ -12,7 +13,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
12
13
|
#
|
13
14
|
# +options+ (Hash)
|
14
15
|
# +html_options+ (Hash)
|
15
|
-
def ui_choice_group
|
16
|
+
def ui_choice_group(content = nil, options = nil, html_options = nil, &block)
|
16
17
|
UiBibz::Ui::Core::Forms::Choices::ChoiceGroup.new(content, options, html_options).tap(&block).render
|
17
18
|
end
|
18
19
|
|
@@ -20,7 +21,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
20
21
|
#
|
21
22
|
# +options+ (Hash)
|
22
23
|
# +html_options+ (Hash)
|
23
|
-
def ui_button_group
|
24
|
+
def ui_button_group(content = nil, options = nil, html_options = nil, &block)
|
24
25
|
UiBibz::Ui::Core::Forms::Buttons::ButtonGroup.new(content, options, html_options).tap(&block).render
|
25
26
|
end
|
26
27
|
|
@@ -28,7 +29,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
28
29
|
#
|
29
30
|
# +options+ (Hash)
|
30
31
|
# +html_options+ (Hash)
|
31
|
-
def ui_button_link
|
32
|
+
def ui_button_link(content = nil, options = nil, html_options = nil, &block)
|
32
33
|
UiBibz::Ui::Core::Forms::Buttons::ButtonLink.new(content, options, html_options, &block).render
|
33
34
|
end
|
34
35
|
|
@@ -36,7 +37,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
36
37
|
#
|
37
38
|
# +options+ (Hash)
|
38
39
|
# +html_options+ (Hash)
|
39
|
-
def ui_date_picker_field
|
40
|
+
def ui_date_picker_field(content = nil, options = nil, html_options = nil, &block)
|
40
41
|
UiBibz::Ui::Core::Forms::Dates::DatePickerField.new(content, options, html_options, &block).render
|
41
42
|
end
|
42
43
|
|
@@ -44,7 +45,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
44
45
|
#
|
45
46
|
# +options+ (Hash)
|
46
47
|
# +html_options+ (Hash)
|
47
|
-
def ui_markdown_editor_field
|
48
|
+
def ui_markdown_editor_field(content = nil, options = nil, html_options = nil, &block)
|
48
49
|
UiBibz::Ui::Core::Forms::Textareas::MarkdownEditorField.new(content, options, html_options, &block).render
|
49
50
|
end
|
50
51
|
|
@@ -52,7 +53,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
52
53
|
#
|
53
54
|
# +options+ (Hash)
|
54
55
|
# +html_options+ (Hash)
|
55
|
-
def ui_multi_column_field
|
56
|
+
def ui_multi_column_field(content = nil, options = nil, html_options = nil, &block)
|
56
57
|
UiBibz::Ui::Core::Forms::Selects::MultiColumnField.new(content, options, html_options, &block).render
|
57
58
|
end
|
58
59
|
|
@@ -60,7 +61,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
60
61
|
#
|
61
62
|
# +options+ (Hash)
|
62
63
|
# +html_options+ (Hash)
|
63
|
-
def ui_multi_select_field
|
64
|
+
def ui_multi_select_field(content = nil, options = nil, html_options = nil, &block)
|
64
65
|
UiBibz::Ui::Core::Forms::Selects::MultiSelectField.new(content, options, html_options, &block).render
|
65
66
|
end
|
66
67
|
|
@@ -68,7 +69,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
68
69
|
#
|
69
70
|
# +options+ (Hash)
|
70
71
|
# +html_options+ (Hash)
|
71
|
-
def ui_formula_field
|
72
|
+
def ui_formula_field(content = nil, options = nil, html_options = nil, &block)
|
72
73
|
UiBibz::Ui::Core::Forms::Numbers::FormulaField.new(content, options, html_options, &block).render
|
73
74
|
end
|
74
75
|
|
@@ -76,7 +77,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
76
77
|
#
|
77
78
|
# +options+ (Hash)
|
78
79
|
# +html_options+ (Hash)
|
79
|
-
def ui_text_field
|
80
|
+
def ui_text_field(content = nil, options = nil, html_options = nil, &block)
|
80
81
|
UiBibz::Ui::Core::Forms::Texts::TextField.new(content, options, html_options, &block).render
|
81
82
|
end
|
82
83
|
|
@@ -84,7 +85,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
84
85
|
#
|
85
86
|
# +options+ (Hash)
|
86
87
|
# +html_options+ (Hash)
|
87
|
-
def ui_box_switch_field
|
88
|
+
def ui_box_switch_field(content = nil, options = nil, html_options = nil, &block)
|
88
89
|
UiBibz::Ui::Core::Forms::Choices::BoxSwitchField.new(content, options, html_options, &block).render
|
89
90
|
end
|
90
91
|
|
@@ -92,7 +93,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
92
93
|
#
|
93
94
|
# +options+ (Hash)
|
94
95
|
# +html_options+ (Hash)
|
95
|
-
def ui_switch_field
|
96
|
+
def ui_switch_field(content = nil, options = nil, html_options = nil, &block)
|
96
97
|
UiBibz::Ui::Core::Forms::Choices::SwitchField.new(content, options, html_options, &block).render
|
97
98
|
end
|
98
99
|
|
@@ -100,7 +101,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
100
101
|
#
|
101
102
|
# +options+ (Hash)
|
102
103
|
# +html_options+ (Hash)
|
103
|
-
def ui_checkbox_field
|
104
|
+
def ui_checkbox_field(content = nil, options = nil, html_options = nil, &block)
|
104
105
|
UiBibz::Ui::Core::Forms::Choices::CheckboxField.new(content, options, html_options, &block).render
|
105
106
|
end
|
106
107
|
|
@@ -108,7 +109,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
108
109
|
#
|
109
110
|
# +options+ (Hash)
|
110
111
|
# +html_options+ (Hash)
|
111
|
-
def ui_radio_field
|
112
|
+
def ui_radio_field(content = nil, options = nil, html_options = nil, &block)
|
112
113
|
UiBibz::Ui::Core::Forms::Choices::RadioField.new(content, options, html_options, &block).render
|
113
114
|
end
|
114
115
|
|
@@ -116,7 +117,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
116
117
|
#
|
117
118
|
# +options+ (Hash)
|
118
119
|
# +html_options+ (Hash)
|
119
|
-
def ui_select_field
|
120
|
+
def ui_select_field(content = nil, options = nil, html_options = nil, &block)
|
120
121
|
UiBibz::Ui::Core::Forms::Selects::SelectField.new(content, options, html_options, &block).render
|
121
122
|
end
|
122
123
|
|
@@ -124,7 +125,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
124
125
|
#
|
125
126
|
# +options+ (Hash)
|
126
127
|
# +html_options+ (Hash)
|
127
|
-
def ui_dropdown_select_field
|
128
|
+
def ui_dropdown_select_field(content = nil, options = nil, html_options = nil, &block)
|
128
129
|
UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new(content, options, html_options, &block).render
|
129
130
|
end
|
130
131
|
|
@@ -132,7 +133,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
132
133
|
#
|
133
134
|
# +options+ (Hash)
|
134
135
|
# +html_options+ (Hash)
|
135
|
-
def ui_auto_complete_field
|
136
|
+
def ui_auto_complete_field(content = nil, options = nil, html_options = nil, &block)
|
136
137
|
UiBibz::Ui::Core::Forms::Texts::AutoCompleteField.new(content, options, html_options, &block).render
|
137
138
|
end
|
138
139
|
|
@@ -140,8 +141,8 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
140
141
|
#
|
141
142
|
# +options+ (Hash)
|
142
143
|
# +html_options+ (Hash)
|
143
|
-
def ui_surround_field
|
144
|
-
|
144
|
+
def ui_surround_field(content = nil, options = nil, html_options = nil, &block)
|
145
|
+
UiBibz::Ui::Core::Forms::Surrounds::SurroundField.new(content, options, html_options).tap(&block).render
|
145
146
|
end
|
146
147
|
|
147
148
|
# Dropdown Component
|
@@ -149,7 +150,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
149
150
|
# +name+ (String) [Required]
|
150
151
|
# +options+ (Hash)
|
151
152
|
# +html_options+ (Hash)
|
152
|
-
def ui_dropdown
|
153
|
+
def ui_dropdown(name, options = nil, html_options = nil, &block)
|
153
154
|
UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new(name, options, html_options).tap(&block).render
|
154
155
|
end
|
155
156
|
|
@@ -158,7 +159,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
158
159
|
# +name+ (String) [Required]
|
159
160
|
# +options+ (Hash)
|
160
161
|
# +html_options+ (Hash)
|
161
|
-
def ui_split_dropdown
|
162
|
+
def ui_split_dropdown(name, options = nil, html_options = nil, &block)
|
162
163
|
UiBibz::Ui::Core::Forms::Dropdowns::SplitDropdown.new(name, options, html_options).tap(&block).render
|
163
164
|
end
|
164
165
|
|
@@ -167,7 +168,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
167
168
|
# +name+ (String) [Required]
|
168
169
|
# +options+ (Hash)
|
169
170
|
# +html_options+ (Hash)
|
170
|
-
def ui_number_field
|
171
|
+
def ui_number_field(name, options = nil, html_options = nil, &block)
|
171
172
|
UiBibz::Ui::Core::Forms::Numbers::NumberField.new(name, options, html_options, &block).render
|
172
173
|
end
|
173
174
|
|
@@ -176,7 +177,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
176
177
|
# +name+ (String) [Required]
|
177
178
|
# +options+ (Hash)
|
178
179
|
# +html_options+ (Hash)
|
179
|
-
def ui_range_field
|
180
|
+
def ui_range_field(name, options = nil, html_options = nil, &block)
|
180
181
|
UiBibz::Ui::Core::Forms::Numbers::RangeField.new(name, options, html_options, &block).render
|
181
182
|
end
|
182
183
|
|
@@ -185,8 +186,7 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
185
186
|
# +name+ (String) [Required]
|
186
187
|
# +options+ (Hash)
|
187
188
|
# +html_options+ (Hash)
|
188
|
-
def ui_file_field
|
189
|
+
def ui_file_field(name, options = nil, html_options = nil, &block)
|
189
190
|
UiBibz::Ui::Core::Forms::Files::FileField.new(name, options, html_options, &block).render
|
190
191
|
end
|
191
192
|
end
|
192
|
-
|