wice_grid 3.6.2 → 4.1.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/.circleci/config.yml +41 -0
- data/.circleci/run-build-locally.sh +7 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- data/.gitignore +5 -2
- data/Appraisals +11 -0
- data/CHANGELOG.md +38 -1
- data/Gemfile.lock +299 -0
- data/README.md +77 -34
- data/config/locales/ja.yml +3 -3
- data/gemfiles/rails_5.0.gemfile +7 -0
- data/gemfiles/rails_5.0.gemfile.lock +291 -0
- data/gemfiles/rails_5.1.gemfile +7 -0
- data/gemfiles/rails_5.1.gemfile.lock +291 -0
- data/gemfiles/rails_5.2.gemfile +7 -0
- data/gemfiles/rails_5.2.gemfile.lock +299 -0
- data/lib/wice/columns.rb +13 -6
- data/lib/wice/columns/column_integer.rb +11 -1
- data/lib/wice/columns/column_rails_datetime_helper.rb +3 -2
- data/lib/wice/columns/column_range.rb +6 -4
- data/lib/wice/grid_renderer.rb +23 -7
- data/lib/wice/helpers/bs_calendar_helpers.rb +9 -1
- data/lib/wice/helpers/wice_grid_view_helpers.rb +6 -6
- data/lib/wice/wice_grid_controller.rb +7 -5
- data/lib/wice/wice_grid_core_ext.rb +5 -1
- data/lib/wice/wice_grid_misc.rb +1 -1
- data/lib/wice_grid.rb +86 -59
- data/spec/acceptance_helper.rb +58 -0
- data/spec/features/action_column_request_spec.rb +280 -0
- data/spec/features/adding_rows_request_spec.rb +21 -0
- data/spec/features/all_records_request_spec.rb +18 -0
- data/spec/features/auto_reloads2_request_spec.rb +349 -0
- data/spec/features/auto_reloads3_request_spec.rb +130 -0
- data/spec/features/auto_reloads_request_spec.rb +348 -0
- data/spec/features/basics1_request_spec.rb +11 -0
- data/spec/features/basics2_request_spec.rb +10 -0
- data/spec/features/basics3_request_spec.rb +29 -0
- data/spec/features/basics4_request_spec.rb +19 -0
- data/spec/features/basics5_request_spec.rb +13 -0
- data/spec/features/basics6_request_spec.rb +22 -0
- data/spec/features/blockless_column_definition_spec.rb +27 -0
- data/spec/features/buttons_request_spec.rb +172 -0
- data/spec/features/csv_and_detached_filters_spec.rb +10 -0
- data/spec/features/csv_export_request_spec.rb +13 -0
- data/spec/features/custom_filter_params_request_spec.rb +29 -0
- data/spec/features/custom_filters1_request_spec.rb +155 -0
- data/spec/features/custom_filters2_request_spec.rb +53 -0
- data/spec/features/custom_filters3_request_spec.rb +50 -0
- data/spec/features/custom_filters4_request_spec.rb +13 -0
- data/spec/features/custom_ordering_on_calculated_request_spec.rb +30 -0
- data/spec/features/custom_ordering_request_spec.rb +36 -0
- data/spec/features/custom_ordering_with_arel_request_spec.rb +36 -0
- data/spec/features/custom_ordering_with_proc_request_spec.rb +44 -0
- data/spec/features/custom_ordering_with_ruby_request_spec.rb +30 -0
- data/spec/features/dates_request_spec.rb +56 -0
- data/spec/features/detached_filters_spec.rb +10 -0
- data/spec/features/detached_filters_two_grids_spec.rb +127 -0
- data/spec/features/disable_all_filters_spec.rb +22 -0
- data/spec/features/hiding_checkboxes_in_action_column_request_spec.rb +294 -0
- data/spec/features/integration_with_application_view_request_spec.rb +43 -0
- data/spec/features/integration_with_forms_request_spec.rb +141 -0
- data/spec/features/joining_tables_spec.rb +40 -0
- data/spec/features/localization_request_spec.rb +24 -0
- data/spec/features/many_grids_on_page_request_spec.rb +104 -0
- data/spec/features/negation_request_spec.rb +25 -0
- data/spec/features/no_records_request_spec.rb +26 -0
- data/spec/features/numeric_filters_request_spec.rb +10 -0
- data/spec/features/resultset_processings2_request_spec.rb +27 -0
- data/spec/features/resultset_processings_request_spec.rb +30 -0
- data/spec/features/saved_queries_request_spec.rb +120 -0
- data/spec/features/shared.rb +1005 -0
- data/spec/features/shared_detached_filters.rb +158 -0
- data/spec/features/styling_spec.rb +15 -0
- data/spec/features/two_associations_spec.rb +48 -0
- data/spec/features/upper_pagination_panel_request_spec.rb +23 -0
- data/spec/features/when_filtered_spec.rb +209 -0
- data/spec/fixtures/.gitkeep +0 -0
- data/spec/fixtures/companies.yml +21 -0
- data/spec/fixtures/priorities.yml +31 -0
- data/spec/fixtures/project_roles.yml +25 -0
- data/spec/fixtures/projects.yml +22 -0
- data/spec/fixtures/statuses.yml +55 -0
- data/spec/fixtures/tasks.yml +751 -0
- data/spec/fixtures/tasks_users.yml +2089 -0
- data/spec/fixtures/users.yml +61 -0
- data/spec/fixtures/versions.yml +78 -0
- data/spec/models/company_spec.rb +6 -0
- data/spec/models/priority_spec.rb +6 -0
- data/spec/models/project_spec.rb +11 -0
- data/spec/models/status_spec.rb +6 -0
- data/spec/models/task_spec.rb +12 -0
- data/spec/models/user_project_participation_spec.rb +7 -0
- data/spec/models/user_spec.rb +12 -0
- data/spec/models/version_spec.rb +5 -0
- data/spec/rails_helper.rb +15 -0
- data/spec/spec_helper.rb +10 -9
- data/spec/support/test_app/Rakefile +3 -0
- data/spec/support/test_app/app/assets/javascripts/application.js +20 -0
- data/spec/support/test_app/app/assets/javascripts/common.js.coffee +6 -0
- data/spec/support/test_app/app/assets/javascripts/jquery.ui.datepicker.locales.js +56 -0
- data/spec/support/test_app/app/assets/stylesheets/adding_rows.scss +3 -0
- data/spec/support/test_app/app/assets/stylesheets/application.scss +46 -0
- data/spec/support/test_app/app/assets/stylesheets/csv_and_detached_filters.scss +3 -0
- data/spec/support/test_app/app/assets/stylesheets/many_grids_on_page.scss +3 -0
- data/spec/support/test_app/app/controllers/action_column_controller.rb +15 -0
- data/spec/support/test_app/app/controllers/adding_rows_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/all_records_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/application_controller.rb +99 -0
- data/spec/support/test_app/app/controllers/auto_reloads2_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/auto_reloads3_controller.rb +20 -0
- data/spec/support/test_app/app/controllers/auto_reloads_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/basics1_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/basics2_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/basics3_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/basics4_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/basics5_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/basics6_controller.rb +11 -0
- data/spec/support/test_app/app/controllers/blockless_column_definition_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/buttons_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/csv_and_detached_filters_controller.rb +13 -0
- data/spec/support/test_app/app/controllers/csv_export_controller.rb +28 -0
- data/spec/support/test_app/app/controllers/custom_filter_params_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/custom_filters1_controller.rb +9 -0
- data/spec/support/test_app/app/controllers/custom_filters2_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/custom_filters3_controller.rb +12 -0
- data/spec/support/test_app/app/controllers/custom_filters4_controller.rb +12 -0
- data/spec/support/test_app/app/controllers/custom_ordering_controller.rb +18 -0
- data/spec/support/test_app/app/controllers/custom_ordering_on_calculated_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/custom_ordering_with_arel_controller.rb +18 -0
- data/spec/support/test_app/app/controllers/custom_ordering_with_proc_controller.rb +11 -0
- data/spec/support/test_app/app/controllers/custom_ordering_with_ruby_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/dates_controller.rb +8 -0
- data/spec/support/test_app/app/controllers/detached_filters_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/detached_filters_two_grids_controller.rb +7 -0
- data/spec/support/test_app/app/controllers/disable_all_filters_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/hiding_checkboxes_in_action_column_controller.rb +13 -0
- data/spec/support/test_app/app/controllers/home_controller.rb +3 -0
- data/spec/support/test_app/app/controllers/integration_with_application_view_controller.rb +16 -0
- data/spec/support/test_app/app/controllers/integration_with_forms_controller.rb +11 -0
- data/spec/support/test_app/app/controllers/joining_tables_controller.rb +11 -0
- data/spec/support/test_app/app/controllers/localization_controller.rb +26 -0
- data/spec/support/test_app/app/controllers/many_grids_on_page_controller.rb +7 -0
- data/spec/support/test_app/app/controllers/negation_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/no_records_controller.rb +8 -0
- data/spec/support/test_app/app/controllers/null_values_controller.rb +10 -0
- data/spec/support/test_app/app/controllers/numeric_filters_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/queries_controller.rb +4 -0
- data/spec/support/test_app/app/controllers/resultset_processings2_controller.rb +29 -0
- data/spec/support/test_app/app/controllers/resultset_processings_controller.rb +30 -0
- data/spec/support/test_app/app/controllers/saved_queries_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/styling_controller.rb +7 -0
- data/spec/support/test_app/app/controllers/tasks_controller.rb +14 -0
- data/spec/support/test_app/app/controllers/two_associations_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/upper_pagination_panel_controller.rb +6 -0
- data/spec/support/test_app/app/controllers/when_filtered_controller.rb +6 -0
- data/spec/support/test_app/app/helpers/application_helper.rb +82 -0
- data/spec/support/test_app/app/mailers/.gitkeep +0 -0
- data/spec/support/test_app/app/models/.gitkeep +0 -0
- data/spec/support/test_app/app/models/company.rb +5 -0
- data/spec/support/test_app/app/models/populate.rb +84 -0
- data/spec/support/test_app/app/models/priority.rb +10 -0
- data/spec/support/test_app/app/models/project.rb +14 -0
- data/spec/support/test_app/app/models/project_role.rb +3 -0
- data/spec/support/test_app/app/models/status.rb +10 -0
- data/spec/support/test_app/app/models/task.rb +11 -0
- data/spec/support/test_app/app/models/to_dropdown_mixin.rb +16 -0
- data/spec/support/test_app/app/models/user.rb +8 -0
- data/spec/support/test_app/app/models/user_project_participation.rb +6 -0
- data/spec/support/test_app/app/models/version.rb +6 -0
- data/spec/support/test_app/app/views/action_column/_grid.html.erb +35 -0
- data/spec/support/test_app/app/views/action_column/index.html.haml +45 -0
- data/spec/support/test_app/app/views/adding_rows/_grid.html.erb +58 -0
- data/spec/support/test_app/app/views/adding_rows/index.html.haml +37 -0
- data/spec/support/test_app/app/views/all_records/_grid.html.erb +30 -0
- data/spec/support/test_app/app/views/all_records/index.html.haml +12 -0
- data/spec/support/test_app/app/views/auto_reloads/_grid.html.erb +32 -0
- data/spec/support/test_app/app/views/auto_reloads/index.html.haml +15 -0
- data/spec/support/test_app/app/views/auto_reloads2/_grid.html.erb +32 -0
- data/spec/support/test_app/app/views/auto_reloads2/index.html.haml +65 -0
- data/spec/support/test_app/app/views/auto_reloads3/_grid.html.erb +25 -0
- data/spec/support/test_app/app/views/auto_reloads3/index.html.haml +78 -0
- data/spec/support/test_app/app/views/basics1/_grid.html.erb +26 -0
- data/spec/support/test_app/app/views/basics1/index.html.haml +13 -0
- data/spec/support/test_app/app/views/basics2/_grid.html.erb +27 -0
- data/spec/support/test_app/app/views/basics2/index.html.haml +12 -0
- data/spec/support/test_app/app/views/basics3/_grid.html.erb +28 -0
- data/spec/support/test_app/app/views/basics3/index.html.haml +13 -0
- data/spec/support/test_app/app/views/basics4/_grid.html.erb +21 -0
- data/spec/support/test_app/app/views/basics4/index.html.haml +12 -0
- data/spec/support/test_app/app/views/basics5/_grid.html.erb +19 -0
- data/spec/support/test_app/app/views/basics5/index.html.haml +12 -0
- data/spec/support/test_app/app/views/basics6/_grid.html.erb +19 -0
- data/spec/support/test_app/app/views/basics6/index.html.haml +23 -0
- data/spec/support/test_app/app/views/blockless_column_definition/_grid.html.erb +19 -0
- data/spec/support/test_app/app/views/blockless_column_definition/index.html.haml +15 -0
- data/spec/support/test_app/app/views/buttons/_grid.html.erb +20 -0
- data/spec/support/test_app/app/views/buttons/index.html.haml +30 -0
- data/spec/support/test_app/app/views/csv_and_detached_filters/_grid.html.erb +23 -0
- data/spec/support/test_app/app/views/csv_and_detached_filters/index.html.haml +58 -0
- data/spec/support/test_app/app/views/csv_export/_projects_grid.html.erb +17 -0
- data/spec/support/test_app/app/views/csv_export/_tasks_grid.html.erb +43 -0
- data/spec/support/test_app/app/views/csv_export/index.html.haml +90 -0
- data/spec/support/test_app/app/views/custom_filter_params/_grid.html.erb +12 -0
- data/spec/support/test_app/app/views/custom_filter_params/index.html.haml +12 -0
- data/spec/support/test_app/app/views/custom_filters1/_g1.html.erb +8 -0
- data/spec/support/test_app/app/views/custom_filters1/_g2.html.erb +9 -0
- data/spec/support/test_app/app/views/custom_filters1/_g3.html.erb +9 -0
- data/spec/support/test_app/app/views/custom_filters1/_g4.html.erb +8 -0
- data/spec/support/test_app/app/views/custom_filters1/index.html.haml +30 -0
- data/spec/support/test_app/app/views/custom_filters2/_grid.html.erb +30 -0
- data/spec/support/test_app/app/views/custom_filters2/index.html.haml +41 -0
- data/spec/support/test_app/app/views/custom_filters3/_grid.html.erb +18 -0
- data/spec/support/test_app/app/views/custom_filters3/index.html.haml +16 -0
- data/spec/support/test_app/app/views/custom_filters4/_grid.html.erb +20 -0
- data/spec/support/test_app/app/views/custom_filters4/index.html.haml +12 -0
- data/spec/support/test_app/app/views/custom_ordering/_grid.html.erb +10 -0
- data/spec/support/test_app/app/views/custom_ordering/index.html.haml +24 -0
- data/spec/support/test_app/app/views/custom_ordering_on_calculated/_grid.html.erb +14 -0
- data/spec/support/test_app/app/views/custom_ordering_on_calculated/index.html.haml +23 -0
- data/spec/support/test_app/app/views/custom_ordering_with_arel/_grid.html.erb +10 -0
- data/spec/support/test_app/app/views/custom_ordering_with_arel/index.html.haml +24 -0
- data/spec/support/test_app/app/views/custom_ordering_with_proc/_grid.html.erb +10 -0
- data/spec/support/test_app/app/views/custom_ordering_with_proc/index.html.haml +21 -0
- data/spec/support/test_app/app/views/custom_ordering_with_ruby/_grid.html.erb +10 -0
- data/spec/support/test_app/app/views/custom_ordering_with_ruby/index.html.haml +23 -0
- data/spec/support/test_app/app/views/dates/_grid.html.erb +25 -0
- data/spec/support/test_app/app/views/dates/index.html.haml +52 -0
- data/spec/support/test_app/app/views/detached_filters/_grid.html.erb +23 -0
- data/spec/support/test_app/app/views/detached_filters/index.html.haml +79 -0
- data/spec/support/test_app/app/views/detached_filters_two_grids/_grid.html.erb +23 -0
- data/spec/support/test_app/app/views/detached_filters_two_grids/index.html.haml +85 -0
- data/spec/support/test_app/app/views/disable_all_filters/_grid.html.erb +21 -0
- data/spec/support/test_app/app/views/disable_all_filters/index.html.haml +14 -0
- data/spec/support/test_app/app/views/hiding_checkboxes_in_action_column/_grid.html.erb +34 -0
- data/spec/support/test_app/app/views/hiding_checkboxes_in_action_column/index.html.haml +32 -0
- data/spec/support/test_app/app/views/integration_with_application_view/_grid.html.erb +27 -0
- data/spec/support/test_app/app/views/integration_with_application_view/index.html.haml +33 -0
- data/spec/support/test_app/app/views/integration_with_forms/_grid.html.erb +23 -0
- data/spec/support/test_app/app/views/integration_with_forms/index.html.haml +18 -0
- data/spec/support/test_app/app/views/joining_tables/_grid.html.erb +23 -0
- data/spec/support/test_app/app/views/joining_tables/index.html.haml +26 -0
- data/spec/support/test_app/app/views/layouts/application.html.haml +61 -0
- data/spec/support/test_app/app/views/localization/_grid.html.erb +36 -0
- data/spec/support/test_app/app/views/localization/index.html.haml +20 -0
- data/spec/support/test_app/app/views/many_grids_on_page/_tasks_grid1.html.erb +12 -0
- data/spec/support/test_app/app/views/many_grids_on_page/_tasks_grid2.html.erb +12 -0
- data/spec/support/test_app/app/views/many_grids_on_page/index.html.haml +26 -0
- data/spec/support/test_app/app/views/negation/_grid.html.erb +30 -0
- data/spec/support/test_app/app/views/negation/index.html.haml +15 -0
- data/spec/support/test_app/app/views/no_records/_empty_grid.html.haml +1 -0
- data/spec/support/test_app/app/views/no_records/_grid1.html.erb +11 -0
- data/spec/support/test_app/app/views/no_records/_grid2.html.erb +9 -0
- data/spec/support/test_app/app/views/no_records/_grid3.html.erb +9 -0
- data/spec/support/test_app/app/views/no_records/index.html.haml +24 -0
- data/spec/support/test_app/app/views/null_values/_grid.html.erb +17 -0
- data/spec/support/test_app/app/views/null_values/index.html.haml +21 -0
- data/spec/support/test_app/app/views/numeric_filters/_grid.html.erb +19 -0
- data/spec/support/test_app/app/views/numeric_filters/index.html.haml +12 -0
- data/spec/support/test_app/app/views/resultset_processings/_grid.html.erb +27 -0
- data/spec/support/test_app/app/views/resultset_processings/index.html.haml +50 -0
- data/spec/support/test_app/app/views/resultset_processings2/_grid.html.erb +27 -0
- data/spec/support/test_app/app/views/resultset_processings2/index.html.haml +48 -0
- data/spec/support/test_app/app/views/saved_queries/_grid.html.erb +30 -0
- data/spec/support/test_app/app/views/saved_queries/index.html.haml +15 -0
- data/spec/support/test_app/app/views/styling/_grid1.html.erb +12 -0
- data/spec/support/test_app/app/views/styling/_grid2.html.erb +31 -0
- data/spec/support/test_app/app/views/styling/index.html.haml +65 -0
- data/spec/support/test_app/app/views/tasks/_grid.html.erb +19 -0
- data/spec/support/test_app/app/views/tasks/index.html.haml +1 -0
- data/spec/support/test_app/app/views/two_associations/_grid.html.erb +13 -0
- data/spec/support/test_app/app/views/two_associations/index.html.haml +13 -0
- data/spec/support/test_app/app/views/upper_pagination_panel/_grid.html.erb +27 -0
- data/spec/support/test_app/app/views/upper_pagination_panel/index.html.haml +14 -0
- data/spec/support/test_app/app/views/when_filtered/_grid.html.erb +19 -0
- data/spec/support/test_app/app/views/when_filtered/index.html.haml +15 -0
- data/spec/support/test_app/bin/rails +4 -0
- data/spec/support/test_app/bin/rake +4 -0
- data/spec/support/test_app/config.ru +5 -0
- data/spec/support/test_app/config/application.rb +70 -0
- data/spec/support/test_app/config/boot.rb +7 -0
- data/spec/support/test_app/config/database.travis.yml +27 -0
- data/spec/support/test_app/config/database.yml +16 -0
- data/spec/support/test_app/config/database.yml.mysql +19 -0
- data/spec/support/test_app/config/database.yml.postgresql +18 -0
- data/spec/support/test_app/config/environment.rb +6 -0
- data/spec/support/test_app/config/environments/development.rb +34 -0
- data/spec/support/test_app/config/environments/production.rb +66 -0
- data/spec/support/test_app/config/environments/test.rb +34 -0
- data/spec/support/test_app/config/initializers/backtrace_silencers.rb +8 -0
- data/spec/support/test_app/config/initializers/inflections.rb +16 -0
- data/spec/support/test_app/config/initializers/mime_types.rb +6 -0
- data/spec/support/test_app/config/initializers/secret_token.rb +12 -0
- data/spec/support/test_app/config/initializers/session_store.rb +9 -0
- data/spec/support/test_app/config/initializers/wice_grid_config.rb +163 -0
- data/spec/support/test_app/config/initializers/wrap_parameters.rb +15 -0
- data/spec/support/test_app/config/locales/en.yml +5 -0
- data/spec/support/test_app/config/locales/wice_grid.yml +550 -0
- data/spec/support/test_app/config/puma.rb +15 -0
- data/spec/support/test_app/config/routes.rb +125 -0
- data/spec/support/test_app/db/migrate/20120224193505_create_tasks.rb +27 -0
- data/spec/support/test_app/db/migrate/20120224193517_create_users.rb +12 -0
- data/spec/support/test_app/db/migrate/20120224193522_create_projects.rb +14 -0
- data/spec/support/test_app/db/migrate/20120224193529_create_priorities.rb +13 -0
- data/spec/support/test_app/db/migrate/20120224193537_create_statuses.rb +13 -0
- data/spec/support/test_app/db/migrate/20120224193543_create_versions.rb +15 -0
- data/spec/support/test_app/db/migrate/20120224193550_create_project_roles.rb +12 -0
- data/spec/support/test_app/db/migrate/20120224193610_create_companies.rb +12 -0
- data/spec/support/test_app/db/migrate/20120224195351_create_user_project_participations.rb +16 -0
- data/spec/support/test_app/db/migrate/20120224195521_add_tasks_users.rb +11 -0
- data/spec/support/test_app/db/migrate/20120610091944_create_wice_grid_serialized_queries.rb +14 -0
- data/spec/support/test_app/db/schema.rb +139 -0
- data/spec/support/test_app/db/seeds.rb +10 -0
- data/spec/support/test_app/lib/ar_fixtures.rb +100 -0
- data/spec/support/test_app/lib/assets/.gitkeep +0 -0
- data/spec/support/test_app/lib/tasks/.gitkeep +0 -0
- data/spec/support/test_app/lib/tasks/ar_fixtures.rake +45 -0
- data/spec/support/test_app/public/404.html +26 -0
- data/spec/support/test_app/public/422.html +26 -0
- data/spec/support/test_app/public/500.html +25 -0
- data/spec/support/test_app/public/favicon.ico +0 -0
- data/spec/support/test_app/public/robots.txt +5 -0
- data/spec/wice/grid_output_buffer_spec.rb +2 -2
- data/spec/wice/table_column_matrix_spec.rb +1 -1
- data/vendor/assets/javascripts/wice_grid_init.js.coffee +16 -4
- data/vendor/assets/javascripts/wice_grid_saved_queries_init.js.coffee +1 -0
- data/wice_grid.gemspec +29 -9
- metadata +606 -62
- data/release_notes/RELEASE_NOTES_3.2.pre1.rdoc +0 -81
- data/release_notes/RELEASE_NOTES_3.2.pre2.rdoc +0 -6
- data/release_notes/RELEASE_NOTES_3.3.0.rdoc +0 -21
- data/spec/support/wice_grid_test_config.rb +0 -173
- data/test/readme.txt +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
.well
|
|
2
|
+
%h2= current_page_title
|
|
3
|
+
%p
|
|
4
|
+
%code negation: true
|
|
5
|
+
adds a checkox to a text filter. The checked checkbox is the logical
|
|
6
|
+
%i NOT
|
|
7
|
+
\- it changes the semantics of a text filter to
|
|
8
|
+
%b not
|
|
9
|
+
showing all records with a matching substring.
|
|
10
|
+
|
|
11
|
+
= show_code
|
|
12
|
+
|
|
13
|
+
.row-fluid
|
|
14
|
+
.col-md-12
|
|
15
|
+
= render 'grid'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.well No records found
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.well
|
|
2
|
+
%h2= current_page_title
|
|
3
|
+
%p
|
|
4
|
+
What if there no records to render in a grid?
|
|
5
|
+
There are three ways to define what to show in this case:
|
|
6
|
+
%ul
|
|
7
|
+
%li
|
|
8
|
+
%code blank_slate
|
|
9
|
+
with a block. This looks like a column definition, but the value
|
|
10
|
+
returned by the block is rendred when there are no records.
|
|
11
|
+
%li
|
|
12
|
+
%code blank_slate
|
|
13
|
+
whithout a block, but with one string argument.
|
|
14
|
+
%li
|
|
15
|
+
%code blank_slate
|
|
16
|
+
with parameter
|
|
17
|
+
%code partial: "partial_name"
|
|
18
|
+
which defines a partial to render.
|
|
19
|
+
|
|
20
|
+
= show_code
|
|
21
|
+
|
|
22
|
+
.example1= render 'grid1'
|
|
23
|
+
.example2= render 'grid2'
|
|
24
|
+
.example3= render 'grid3'
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<%= grid(@tasks_grid) do |g|
|
|
2
|
+
|
|
3
|
+
g.column name: 'ID', attribute: 'id', filter: false
|
|
4
|
+
|
|
5
|
+
g.column name: 'Title', attribute: 'title'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
g.column name: 'Priority', attribute: 'priority_id',
|
|
9
|
+
custom_filter: [['NOT DEFINED', 'null'], ['DEFINED', 'not null']] + Priority.to_dropdown do |task|
|
|
10
|
+
task.priority.name if task.priority
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
g.column do |task|
|
|
15
|
+
link_to('Edit', edit_task_path(task))
|
|
16
|
+
end
|
|
17
|
+
end -%>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.well
|
|
2
|
+
%h2= current_page_title
|
|
3
|
+
%p
|
|
4
|
+
Strings
|
|
5
|
+
%code null
|
|
6
|
+
and
|
|
7
|
+
%code not null
|
|
8
|
+
in
|
|
9
|
+
%code custom_filter
|
|
10
|
+
values
|
|
11
|
+
are treated speacially and result in
|
|
12
|
+
%code IS NULL
|
|
13
|
+
and
|
|
14
|
+
%code IS NOT NULL
|
|
15
|
+
WHERE-clauses.
|
|
16
|
+
|
|
17
|
+
= show_code
|
|
18
|
+
|
|
19
|
+
.row-fluid
|
|
20
|
+
.col-md-12
|
|
21
|
+
= render 'grid'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<%= grid(@tasks_grid) do |g|
|
|
2
|
+
|
|
3
|
+
g.column name: 'ID', attribute: 'id', filter_type: :range
|
|
4
|
+
|
|
5
|
+
g.column name: 'Title', attribute: 'title'
|
|
6
|
+
|
|
7
|
+
g.column name: 'Description', attribute: 'description'
|
|
8
|
+
|
|
9
|
+
g.column name: 'Archived', attribute: 'archived' do |task|
|
|
10
|
+
task.archived? ? 'Yes' : 'No'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
g.column name: 'Due Date', attribute: 'due_date'
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
g.column do |task|
|
|
17
|
+
link_to('Edit', edit_task_path(task))
|
|
18
|
+
end
|
|
19
|
+
end -%>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
.well
|
|
2
|
+
%h2= current_page_title
|
|
3
|
+
%p
|
|
4
|
+
By default the filter for numeric columns is a one input field filter which checks for equality. You can also use a range filter which check if the value is with a range. Use
|
|
5
|
+
%code filter_type: :range
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
= show_code
|
|
9
|
+
|
|
10
|
+
.row-fluid
|
|
11
|
+
.col-md-12
|
|
12
|
+
= render 'grid'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<%= grid(@tasks_grid, hide_submit_button: true) do |g|
|
|
2
|
+
|
|
3
|
+
g.column name: 'ID', attribute: 'id', filter: false
|
|
4
|
+
|
|
5
|
+
g.column name: 'Title', attribute: 'title', auto_reload: true
|
|
6
|
+
|
|
7
|
+
g.column name: 'Priority', attribute: 'priority_id', custom_filter: Priority.to_dropdown, auto_reload: true do |task|
|
|
8
|
+
task.priority.name if task.priority
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
g.column name: 'Status', attribute: 'status_id', custom_filter: Status.to_dropdown, auto_reload: true do |task|
|
|
12
|
+
task.status.name if task.status
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
g.column name: 'Project Name', attribute: 'project_id', custom_filter: Project.to_dropdown, auto_reload: true do |task|
|
|
16
|
+
task.project.name if task.project
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
g.column name: 'Archived', attribute: 'archived', auto_reload: true do |task|
|
|
20
|
+
task.archived? ? 'Yes' : 'No'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
g.column name: 'Added', attribute: 'created_at', auto_reload: true do |task|
|
|
24
|
+
task.created_at.to_s(:short)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end -%>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
.well
|
|
2
|
+
%h2= current_page_title
|
|
3
|
+
%p
|
|
4
|
+
In addition to
|
|
5
|
+
%a{href: integration_with_application_view_index_path}
|
|
6
|
+
%code current_page_records
|
|
7
|
+
and
|
|
8
|
+
%a{href: integration_with_application_view_index_path}
|
|
9
|
+
%code current_page_records
|
|
10
|
+
helpers
|
|
11
|
+
a callback can be setup in the controller which is executed when a grid page is rendered.
|
|
12
|
+
Though the results of that processing is rendered on page, normally such callbacks are used
|
|
13
|
+
for some kind of background processing. Please notice that the callback is executed
|
|
14
|
+
%em after
|
|
15
|
+
the controller action and thus all controller instance variables have already been injected inti the view,
|
|
16
|
+
that is why the current example has a definition of
|
|
17
|
+
%code @one_page_records
|
|
18
|
+
%em before
|
|
19
|
+
the callback, so that the object is injected into the view and the callback block has access to the object as well.
|
|
20
|
+
|
|
21
|
+
The callback can be setup separately as a block:
|
|
22
|
+
|
|
23
|
+
:plain
|
|
24
|
+
<pre>
|
|
25
|
+
@grid.with_paginated_resultset do |records|
|
|
26
|
+
...
|
|
27
|
+
end
|
|
28
|
+
</pre>
|
|
29
|
+
|
|
30
|
+
or as an argument of
|
|
31
|
+
%code initialize_grid
|
|
32
|
+
where the value is the name of the method to be invoked:
|
|
33
|
+
|
|
34
|
+
:plain
|
|
35
|
+
<pre>
|
|
36
|
+
@grid = initialize_grid(Task,
|
|
37
|
+
with_paginated_resultset: :process_records
|
|
38
|
+
)
|
|
39
|
+
</pre>
|
|
40
|
+
|
|
41
|
+
= show_code
|
|
42
|
+
|
|
43
|
+
= render 'grid'
|
|
44
|
+
|
|
45
|
+
.row-fluid
|
|
46
|
+
.col-md-12
|
|
47
|
+
.well
|
|
48
|
+
= @one_page_records.size
|
|
49
|
+
records on the current page:
|
|
50
|
+
= @one_page_records.map(&:id).to_sentence
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<%= grid(@tasks_grid, hide_submit_button: true) do |g|
|
|
2
|
+
|
|
3
|
+
g.column name: 'ID', attribute: 'id', filter: false
|
|
4
|
+
|
|
5
|
+
g.column name: 'Title', attribute: 'title', auto_reload: true
|
|
6
|
+
|
|
7
|
+
g.column name: 'Priority', attribute: 'priority_id', custom_filter: Priority.to_dropdown, auto_reload: true do |task|
|
|
8
|
+
task.priority.name if task.priority
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
g.column name: 'Status', attribute: 'status_id', custom_filter: Status.to_dropdown, auto_reload: true do |task|
|
|
12
|
+
task.status.name if task.status
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
g.column name: 'Project Name', attribute: 'project_id', custom_filter: Project.to_dropdown, auto_reload: true do |task|
|
|
16
|
+
task.project.name if task.project
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
g.column name: 'Archived', attribute: 'archived', auto_reload: true do |task|
|
|
20
|
+
task.archived? ? 'Yes' : 'No'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
g.column name: 'Added', attribute: 'created_at', auto_reload: true do |task|
|
|
24
|
+
task.created_at.to_s(:short)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end -%>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.well
|
|
2
|
+
%h2= current_page_title
|
|
3
|
+
%p
|
|
4
|
+
In addition to the
|
|
5
|
+
%a{href: resultset_processings_path}
|
|
6
|
+
%code with_paginated_resultset
|
|
7
|
+
callback
|
|
8
|
+
there is callback
|
|
9
|
+
%code with_resultset
|
|
10
|
+
\.
|
|
11
|
+
|
|
12
|
+
%p
|
|
13
|
+
Just like
|
|
14
|
+
%code with_paginated_resultset
|
|
15
|
+
it can be defined as a block and as a symbol referring to a method in the controller.
|
|
16
|
+
|
|
17
|
+
%p
|
|
18
|
+
The difference is that the value submitted to the method or the callback is not a list of
|
|
19
|
+
all records but an ActiveRelation object which can be used to obtain all records.
|
|
20
|
+
|
|
21
|
+
In the example on this page the list of all records is only obtained when button
|
|
22
|
+
%code Show IDs of records throughout all pages
|
|
23
|
+
is clicked.
|
|
24
|
+
|
|
25
|
+
%p
|
|
26
|
+
Normally
|
|
27
|
+
%code with_resultset
|
|
28
|
+
is used
|
|
29
|
+
for some kind of background processing.
|
|
30
|
+
The results of callback are rendered on page only for the sake of the demonstration.
|
|
31
|
+
|
|
32
|
+
= show_code
|
|
33
|
+
|
|
34
|
+
= form_tag(resultset_processings2_index_path, method: :get) do
|
|
35
|
+
= dump_filter_parameters_as_hidden_fields(@tasks_grid)
|
|
36
|
+
= hidden_field :process_selected_tasks, 1
|
|
37
|
+
%button#process.btn.btn-primary{type: 'submit'} Show IDs of records throughout all pages
|
|
38
|
+
|
|
39
|
+
.example
|
|
40
|
+
= render 'grid'
|
|
41
|
+
|
|
42
|
+
-unless controller.selected_tasks.blank?
|
|
43
|
+
.row-fluid
|
|
44
|
+
.col-md-12
|
|
45
|
+
.well
|
|
46
|
+
= controller.selected_tasks.size
|
|
47
|
+
records on all pages:
|
|
48
|
+
= controller.selected_tasks.map(&:id).to_sentence
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<%= grid(@tasks_grid, show_filters: :always) do |g|
|
|
2
|
+
|
|
3
|
+
g.column name: 'ID', attribute: 'id', filter: false
|
|
4
|
+
|
|
5
|
+
g.column name: 'Title', attribute: 'title'
|
|
6
|
+
|
|
7
|
+
g.column name: 'Priority', attribute: 'priority_id', custom_filter: Priority.to_dropdown do |task|
|
|
8
|
+
task.priority.name if task.priority
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
g.column name: 'Status', attribute: 'status_id', custom_filter: Status.to_dropdown do |task|
|
|
12
|
+
task.status.name if task.status
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
g.column name: 'Project Name', attribute: 'project_id', custom_filter: Project.to_dropdown do |task|
|
|
16
|
+
task.project.name if task.project
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
g.column name: 'Archived', attribute: 'archived' do |task|
|
|
20
|
+
task.archived? ? 'Yes' : 'No'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
g.column name: 'Added', attribute: 'created_at' do |task|
|
|
24
|
+
task.created_at.to_s(:db)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
g.column do |task|
|
|
28
|
+
link_to('Edit', edit_task_path(task))
|
|
29
|
+
end
|
|
30
|
+
end -%>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<%= grid(@versions_grid1, html: {class: 'my-grid'}, header_tr_html: {class: 'my-header'}) do |g|
|
|
2
|
+
|
|
3
|
+
g.column name: 'ID', attribute: 'id', filter: false
|
|
4
|
+
|
|
5
|
+
g.column name: 'Project', attribute: 'name', assoc: :project do |version|
|
|
6
|
+
version.project.name if version.project
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
g.column name: 'Version name', attribute: 'name', html: {style: 'font-weight: bold; text-align: center'}
|
|
10
|
+
|
|
11
|
+
g.column name: 'Status', attribute: 'status', custom_filter: {'Development' => 'development', 'Testing' => 'testing', 'Production' => 'production'}
|
|
12
|
+
end -%>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<%= grid(@versions_grid2) do |g|
|
|
2
|
+
|
|
3
|
+
g.row_attributes do |version|
|
|
4
|
+
if version.status == 'production'
|
|
5
|
+
{style: 'background-color: rgb(255, 255, 204);'}
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
g.column name: 'ID', attribute: 'id', filter: false do |version|
|
|
10
|
+
if version.id.to_s.index('9')
|
|
11
|
+
[version.id, {style: 'background-color: rgb(255, 105, 104);'}]
|
|
12
|
+
else
|
|
13
|
+
version.id
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
g.column name: 'Project', attribute: 'name', assoc: :project, class: 'special-column' do |version|
|
|
18
|
+
if version.project
|
|
19
|
+
if version.project.name == 'Divine Firmware'
|
|
20
|
+
[version.project.name , {style: 'background-color: rgb(255, 105, 104);', class: 'some-special-class'}]
|
|
21
|
+
else
|
|
22
|
+
version.project.name
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
g.column name: 'Version name', attribute: 'name'
|
|
28
|
+
|
|
29
|
+
g.column name: 'Status', attribute: 'status', custom_filter: {'Development' => 'development', 'Testing' => 'testing', 'Production' => 'production'}
|
|
30
|
+
end -%>
|
|
31
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
:css
|
|
2
|
+
table.my-grid {
|
|
3
|
+
border: 1px solid red;
|
|
4
|
+
}
|
|
5
|
+
table.my-grid tr.my-header {
|
|
6
|
+
background-color: #ebebeb;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
.well
|
|
11
|
+
%h2= current_page_title
|
|
12
|
+
%ul
|
|
13
|
+
%li
|
|
14
|
+
%code :html
|
|
15
|
+
in the
|
|
16
|
+
%code grid
|
|
17
|
+
helper defines html arguments for the
|
|
18
|
+
%code table
|
|
19
|
+
tag.
|
|
20
|
+
|
|
21
|
+
%li
|
|
22
|
+
%code :header_tr_html
|
|
23
|
+
in the
|
|
24
|
+
%code grid
|
|
25
|
+
helper defines html attributes for the header rows with column names and filters.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
%li
|
|
29
|
+
%code :html
|
|
30
|
+
in the
|
|
31
|
+
%code column
|
|
32
|
+
helper defines html attributes for the
|
|
33
|
+
%code td
|
|
34
|
+
tag.
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
%li
|
|
38
|
+
%code g.row_attributes do |record| ... end
|
|
39
|
+
is similar to a
|
|
40
|
+
%code column
|
|
41
|
+
definition, but returns a hash of html attributes to be added to each
|
|
42
|
+
%code tr.
|
|
43
|
+
Because the block is evaluated for each record, just like
|
|
44
|
+
%column
|
|
45
|
+
, the returned value can be calculated dynamically depending on the record.
|
|
46
|
+
|
|
47
|
+
%li
|
|
48
|
+
Each
|
|
49
|
+
%code column
|
|
50
|
+
block can return a 2-value array, the first value of which is the content of the cell, and
|
|
51
|
+
the second is a hash of html attributes for the
|
|
52
|
+
%code td
|
|
53
|
+
tag.
|
|
54
|
+
|
|
55
|
+
= show_code
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
.row-fluid
|
|
59
|
+
.col-md-12
|
|
60
|
+
= render 'grid1'
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
.row-fluid
|
|
64
|
+
.col-md-12
|
|
65
|
+
= render 'grid2'
|