active_scaffold 3.7.12 → 4.0.0.rc1
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/CHANGELOG.rdoc +9 -23
- data/README.md +3 -2
- data/app/assets/config/active_scaffold_manifest.js +3 -0
- data/app/assets/javascripts/active_scaffold.js.erb +24 -34
- data/app/assets/javascripts/jquery/active_scaffold.js +41 -58
- data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +1 -1
- data/app/assets/stylesheets/active_scaffold_colors.scss +0 -7
- data/app/assets/stylesheets/active_scaffold_extensions.css.erb +2 -2
- data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +7 -7
- data/app/assets/stylesheets/active_scaffold_layout.css +57 -30
- data/app/views/active_scaffold_overrides/_add_existing_form.html.erb +10 -10
- data/app/views/active_scaffold_overrides/_base_form.html.erb +21 -21
- data/app/views/active_scaffold_overrides/_create_form.html.erb +10 -7
- data/app/views/active_scaffold_overrides/_create_form_on_list.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_field_search.html.erb +6 -6
- data/app/views/active_scaffold_overrides/_form.html.erb +11 -14
- data/app/views/active_scaffold_overrides/_form_association.html.erb +21 -12
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +19 -10
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +15 -21
- data/app/views/active_scaffold_overrides/_form_messages.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +7 -6
- data/app/views/active_scaffold_overrides/_human_conditions.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_list.html.erb +15 -8
- data/app/views/active_scaffold_overrides/_list_calculations.html.erb +2 -3
- data/app/views/active_scaffold_overrides/_list_header.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_list_inline_adapter.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_list_messages.html.erb +12 -3
- data/app/views/active_scaffold_overrides/_list_pagination.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_list_pagination_links.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_list_record.html.erb +6 -6
- data/app/views/active_scaffold_overrides/_list_with_header.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_messages.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +2 -2
- data/app/views/active_scaffold_overrides/_render_field.js.erb +4 -4
- data/app/views/active_scaffold_overrides/_row.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_search.html.erb +6 -5
- data/app/views/active_scaffold_overrides/_show.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_show_actions.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_association.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_association_vertical.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_horizontal_record.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_actions.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_calculations.js.erb +2 -2
- data/app/views/active_scaffold_overrides/_update_column.js.erb +8 -7
- data/app/views/active_scaffold_overrides/_update_form.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_update_messages.js.erb +1 -1
- data/app/views/active_scaffold_overrides/_vertical_subform.html.erb +4 -3
- data/app/views/active_scaffold_overrides/action_confirmation.html.erb +3 -3
- data/app/views/active_scaffold_overrides/add_existing.js.erb +6 -6
- data/app/views/active_scaffold_overrides/add_existing_form.html.erb +1 -1
- data/app/views/active_scaffold_overrides/add_tab.js.erb +15 -0
- data/app/views/active_scaffold_overrides/create.html.erb +1 -1
- data/app/views/active_scaffold_overrides/delete.html.erb +4 -4
- data/app/views/active_scaffold_overrides/destroy.js.erb +15 -13
- data/app/views/active_scaffold_overrides/edit_associated.js.erb +3 -3
- data/app/views/active_scaffold_overrides/field_search.html.erb +1 -1
- data/app/views/active_scaffold_overrides/form_messages.js.erb +1 -1
- data/app/views/active_scaffold_overrides/list.html.erb +1 -1
- data/app/views/active_scaffold_overrides/on_action_update.js.erb +13 -8
- data/app/views/active_scaffold_overrides/on_create.js.erb +34 -6
- data/app/views/active_scaffold_overrides/on_mark.js.erb +3 -3
- data/app/views/active_scaffold_overrides/on_update.js.erb +9 -9
- data/app/views/active_scaffold_overrides/render_field.js.erb +1 -1
- data/app/views/active_scaffold_overrides/render_field_inplace.html.erb +1 -1
- data/app/views/active_scaffold_overrides/row.js.erb +2 -2
- data/app/views/active_scaffold_overrides/search.html.erb +1 -1
- data/app/views/active_scaffold_overrides/show.html.erb +3 -3
- data/app/views/active_scaffold_overrides/update.html.erb +2 -2
- data/app/views/active_scaffold_overrides/update_column.js.erb +4 -4
- data/app/views/active_scaffold_overrides/update_row.js.erb +1 -1
- data/lib/active_scaffold/actions/common_search.rb +5 -3
- data/lib/active_scaffold/actions/core.rb +57 -32
- data/lib/active_scaffold/actions/create.rb +19 -17
- data/lib/active_scaffold/actions/delete.rb +10 -12
- data/lib/active_scaffold/actions/field_search.rb +28 -13
- data/lib/active_scaffold/actions/list.rb +34 -34
- data/lib/active_scaffold/actions/mark.rb +5 -5
- data/lib/active_scaffold/actions/nested.rb +64 -56
- data/lib/active_scaffold/actions/search.rb +2 -2
- data/lib/active_scaffold/actions/show.rb +5 -5
- data/lib/active_scaffold/actions/subform.rb +15 -4
- data/lib/active_scaffold/actions/update.rb +20 -20
- data/lib/active_scaffold/active_record_permissions.rb +4 -3
- data/lib/active_scaffold/attribute_params.rb +51 -50
- data/lib/active_scaffold/bridges/active_storage/active_storage_bridge.rb +4 -4
- data/lib/active_scaffold/bridges/active_storage/active_storage_helpers.rb +6 -2
- data/lib/active_scaffold/bridges/active_storage.rb +1 -1
- data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +3 -3
- data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +4 -1
- data/lib/active_scaffold/bridges/bitfields.rb +1 -1
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +9 -8
- data/lib/active_scaffold/bridges/cancan.rb +8 -8
- data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +4 -3
- data/lib/active_scaffold/bridges/carrierwave.rb +2 -2
- data/lib/active_scaffold/bridges/chosen.rb +1 -5
- data/lib/active_scaffold/bridges/country_select/country_select_bridge_helper.rb +4 -2
- data/lib/active_scaffold/bridges/date_picker/ext.rb +20 -12
- data/lib/active_scaffold/bridges/date_picker/helper.rb +37 -33
- data/lib/active_scaffold/bridges/date_picker.rb +1 -4
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +3 -2
- data/lib/active_scaffold/bridges/dragonfly.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +3 -2
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +2 -1
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +4 -9
- data/lib/active_scaffold/bridges/file_column/list_ui.rb +6 -3
- data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +3 -3
- data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +1 -4
- data/lib/active_scaffold/bridges/file_column.rb +1 -0
- data/lib/active_scaffold/bridges/paper_trail/actions.rb +4 -2
- data/lib/active_scaffold/bridges/paper_trail/config.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/helper.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +2 -1
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +3 -2
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +10 -9
- data/lib/active_scaffold/bridges/paperclip.rb +2 -1
- data/lib/active_scaffold/bridges/record_select/helpers.rb +10 -11
- data/lib/active_scaffold/bridges/semantic_attributes/column.rb +3 -1
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -7
- data/lib/active_scaffold/bridges/tiny_mce.rb +2 -7
- data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +7 -7
- data/lib/active_scaffold/bridges.rb +7 -5
- data/lib/active_scaffold/config/base.rb +20 -24
- data/lib/active_scaffold/config/core.rb +27 -39
- data/lib/active_scaffold/config/create.rb +1 -1
- data/lib/active_scaffold/config/delete.rb +9 -9
- data/lib/active_scaffold/config/field_search.rb +4 -9
- data/lib/active_scaffold/config/form.rb +3 -1
- data/lib/active_scaffold/config/list.rb +19 -15
- data/lib/active_scaffold/config/nested.rb +2 -2
- data/lib/active_scaffold/config/search.rb +5 -5
- data/lib/active_scaffold/config/show.rb +1 -1
- data/lib/active_scaffold/config/subform.rb +1 -1
- data/lib/active_scaffold/config/update.rb +4 -5
- data/lib/active_scaffold/configurable.rb +2 -1
- data/lib/active_scaffold/constraints.rb +16 -11
- data/lib/active_scaffold/core.rb +25 -27
- data/lib/active_scaffold/data_structures/action_columns.rb +10 -3
- data/lib/active_scaffold/data_structures/action_link.rb +19 -9
- data/lib/active_scaffold/data_structures/action_links.rb +20 -26
- data/lib/active_scaffold/data_structures/actions.rb +3 -3
- data/lib/active_scaffold/data_structures/association/abstract.rb +8 -4
- data/lib/active_scaffold/data_structures/association/active_mongoid.rb +1 -0
- data/lib/active_scaffold/data_structures/association/active_record.rb +1 -4
- data/lib/active_scaffold/data_structures/column.rb +368 -327
- data/lib/active_scaffold/data_structures/columns.rb +3 -2
- data/lib/active_scaffold/data_structures/nested_info.rb +6 -5
- data/lib/active_scaffold/data_structures/proxy_column.rb +68 -0
- data/lib/active_scaffold/data_structures/set.rb +7 -4
- data/lib/active_scaffold/data_structures/sorting.rb +21 -12
- data/lib/active_scaffold/engine.rb +12 -12
- data/lib/active_scaffold/extensions/action_controller_rendering.rb +5 -5
- data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
- data/lib/active_scaffold/extensions/action_view_rendering.rb +29 -31
- data/lib/active_scaffold/extensions/ice_nine.rb +2 -1
- data/lib/active_scaffold/extensions/localize.rb +2 -2
- data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
- data/lib/active_scaffold/extensions/routing_mapper.rb +5 -4
- data/lib/active_scaffold/extensions/unsaved_associated.rb +3 -2
- data/lib/active_scaffold/finder.rb +71 -78
- data/lib/active_scaffold/helpers/action_link_helpers.rb +37 -49
- data/lib/active_scaffold/helpers/association_helpers.rb +3 -2
- data/lib/active_scaffold/helpers/controller_helpers.rb +18 -16
- data/lib/active_scaffold/helpers/form_column_helpers.rb +69 -53
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +17 -15
- data/lib/active_scaffold/helpers/id_helpers.rb +5 -5
- data/lib/active_scaffold/helpers/list_column_helpers.rb +35 -38
- data/lib/active_scaffold/helpers/pagination_helpers.rb +4 -4
- data/lib/active_scaffold/helpers/search_column_helpers.rb +25 -34
- data/lib/active_scaffold/helpers/show_column_helpers.rb +7 -4
- data/lib/active_scaffold/helpers/tabs_helpers.rb +88 -0
- data/lib/active_scaffold/helpers/view_helpers.rb +15 -13
- data/lib/active_scaffold/marked_model.rb +1 -2
- data/lib/active_scaffold/orm_checks.rb +6 -4
- data/lib/active_scaffold/paginator.rb +3 -2
- data/lib/active_scaffold/registry.rb +5 -0
- data/lib/active_scaffold/tableless.rb +24 -14
- data/lib/active_scaffold/version.rb +4 -4
- data/lib/active_scaffold.rb +8 -34
- data/lib/generators/active_scaffold/controller_generator.rb +20 -20
- data/lib/generators/active_scaffold/install_generator.rb +4 -8
- data/lib/generators/active_scaffold/resource_generator.rb +31 -31
- data/lib/tasks/brakeman.rake +1 -1
- data/shoulda_macros/macros.rb +14 -14
- metadata +11 -232
- data/app/assets/javascripts/prototype/active_scaffold.js +0 -1249
- data/app/assets/javascripts/prototype/active_scaffold_chosen.js +0 -0
- data/app/assets/javascripts/prototype/dhtml_history.js +0 -870
- data/app/assets/javascripts/prototype/form_enhancements.js +0 -117
- data/app/assets/javascripts/prototype/tiny_mce_bridge.js +0 -17
- data/app/views/active_scaffold_overrides/_list_messages_content.html.erb +0 -8
- data/app/views/active_scaffold_overrides/_new_record.js.erb +0 -15
- data/app/views/active_scaffold_overrides/_popup_adapter.html.erb +0 -20
- data/app/views/active_scaffold_overrides/_refresh_create_form.js.erb +0 -12
- data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +0 -58
- data/lib/active_scaffold/bridges/calendar_date_select.rb +0 -17
- data/lib/active_scaffold/data_structures/action_link_separator.rb +0 -13
- data/lib/active_scaffold/extensions/cow_proxy.rb +0 -102
- data/test/active_scaffold_config_mock.rb +0 -33
- data/test/bridges/bridge_test.rb +0 -88
- data/test/bridges/date_picker_test.rb +0 -31
- data/test/bridges/paper_trail_test.rb +0 -16
- data/test/bridges/paperclip_test.rb +0 -85
- data/test/bridges/tiny_mce_test.rb +0 -61
- data/test/class_with_finder.rb +0 -42
- data/test/company.rb +0 -97
- data/test/config/base_test.rb +0 -17
- data/test/config/core_test.rb +0 -66
- data/test/config/create_test.rb +0 -72
- data/test/config/delete_test.rb +0 -35
- data/test/config/field_search_test.rb +0 -49
- data/test/config/list_test.rb +0 -134
- data/test/config/nested_test.rb +0 -55
- data/test/config/search_test.rb +0 -62
- data/test/config/show_test.rb +0 -45
- data/test/config/subform_test.rb +0 -19
- data/test/config/update_test.rb +0 -52
- data/test/const_mocker.rb +0 -32
- data/test/data_structures/action_columns_test.rb +0 -112
- data/test/data_structures/action_link_test.rb +0 -79
- data/test/data_structures/action_links_test.rb +0 -78
- data/test/data_structures/actions_test.rb +0 -25
- data/test/data_structures/association_column_test.rb +0 -41
- data/test/data_structures/column_test.rb +0 -186
- data/test/data_structures/columns_test.rb +0 -68
- data/test/data_structures/set_test.rb +0 -84
- data/test/data_structures/sorting_test.rb +0 -148
- data/test/data_structures/standard_column_test.rb +0 -23
- data/test/data_structures/validation_reflection_test.rb +0 -69
- data/test/data_structures/virtual_column_test.rb +0 -23
- data/test/extensions/action_view_rendering_test.rb +0 -20
- data/test/extensions/active_record_test.rb +0 -44
- data/test/extensions/routing_mapper_test.rb +0 -73
- data/test/helpers/form_column_helpers_test.rb +0 -34
- data/test/helpers/list_column_helpers_test.rb +0 -53
- data/test/helpers/pagination_helpers_test.rb +0 -65
- data/test/helpers/search_column_helpers_test.rb +0 -15
- data/test/misc/active_record_permissions_test.rb +0 -193
- data/test/misc/attribute_params_test.rb +0 -460
- data/test/misc/calculation_test.rb +0 -39
- data/test/misc/configurable_test.rb +0 -97
- data/test/misc/constraints_test.rb +0 -209
- data/test/misc/convert_numbers_format_test.rb +0 -171
- data/test/misc/finder_test.rb +0 -124
- data/test/misc/lang_test.rb +0 -10
- data/test/misc/parse_datetime_test.rb +0 -159
- data/test/misc/render_test.rb +0 -9
- data/test/misc/tableless_test.rb +0 -56
- data/test/mock_app/.gitignore +0 -2
- data/test/mock_app/Rakefile +0 -7
- data/test/mock_app/app/assets/config/manifest.js +0 -0
- data/test/mock_app/app/controllers/addresses_controller.rb +0 -4
- data/test/mock_app/app/controllers/application_controller.rb +0 -10
- data/test/mock_app/app/controllers/buildings_controller.rb +0 -4
- data/test/mock_app/app/controllers/cars_controller.rb +0 -5
- data/test/mock_app/app/controllers/contacts_controller.rb +0 -4
- data/test/mock_app/app/controllers/floors_controller.rb +0 -6
- data/test/mock_app/app/controllers/people_controller.rb +0 -8
- data/test/mock_app/app/controllers/roles_controller.rb +0 -4
- data/test/mock_app/app/helpers/application_helper.rb +0 -3
- data/test/mock_app/app/models/address.rb +0 -3
- data/test/mock_app/app/models/building.rb +0 -9
- data/test/mock_app/app/models/car.rb +0 -3
- data/test/mock_app/app/models/contact.rb +0 -3
- data/test/mock_app/app/models/file_model.rb +0 -31
- data/test/mock_app/app/models/floor.rb +0 -8
- data/test/mock_app/app/models/person.rb +0 -12
- data/test/mock_app/app/models/role.rb +0 -3
- data/test/mock_app/app/views/active_scaffold_overrides/_form.html.erb +0 -2
- data/test/mock_app/app/views/active_scaffold_overrides/list.html.erb +0 -2
- data/test/mock_app/app/views/people/_first_name_form_column.html.erb +0 -2
- data/test/mock_app/app/views/people/_form.html.erb +0 -2
- data/test/mock_app/app/views/people/list.html.erb +0 -2
- data/test/mock_app/config/application.rb +0 -14
- data/test/mock_app/config/boot.rb +0 -7
- data/test/mock_app/config/database.yml +0 -16
- data/test/mock_app/config/environment.rb +0 -6
- data/test/mock_app/config/environments/development.rb +0 -24
- data/test/mock_app/config/environments/production.rb +0 -49
- data/test/mock_app/config/environments/test.rb +0 -34
- data/test/mock_app/config/initializers/backtrace_silencers.rb +0 -7
- data/test/mock_app/config/initializers/inflections.rb +0 -10
- data/test/mock_app/config/initializers/mime_types.rb +0 -5
- data/test/mock_app/config/initializers/secret_token.rb +0 -11
- data/test/mock_app/config/initializers/session_store.rb +0 -8
- data/test/mock_app/config/initializers/wrap_parameters.rb +0 -14
- data/test/mock_app/config/locales/en.yml +0 -5
- data/test/mock_app/config/routes.rb +0 -17
- data/test/mock_app/config.ru +0 -4
- data/test/mock_app/db/schema.rb +0 -68
- data/test/mock_app/db/test.sqlite3 +0 -1
- data/test/model_stub.rb +0 -64
- data/test/performance/list_cars_performance_test.rb +0 -34
- data/test/performance/list_people_performance_test.rb +0 -31
- data/test/performance_test_help.rb +0 -3
- data/test/run_all.rb +0 -6
- data/test/test_helper.rb +0 -71
- data/vendor/assets/javascripts/getprototypeof.js +0 -12
@@ -5,15 +5,10 @@ class ActiveScaffold::Bridges::TinyMce < ActiveScaffold::DataStructures::Bridge
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.install?
|
8
|
-
Object.const_defined?
|
8
|
+
Object.const_defined? :TinyMCE
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.javascripts
|
12
|
-
|
13
|
-
when :jquery
|
14
|
-
['tinymce', 'jquery/tiny_mce_bridge']
|
15
|
-
when :prototype
|
16
|
-
['tinymce', 'prototype/tiny_mce_bridge']
|
17
|
-
end
|
12
|
+
['tinymce', 'jquery/tiny_mce_bridge']
|
18
13
|
end
|
19
14
|
end
|
@@ -13,21 +13,21 @@ module ActiveScaffold::Bridges
|
|
13
13
|
# NOTE: Only the option tags are returned from this method, wrap it in a <select>
|
14
14
|
def usa_state_options_for_select(selected = nil, priority_states = nil)
|
15
15
|
state_options = if priority_states
|
16
|
-
options_for_select(priority_states + [['-------------', '']], :
|
16
|
+
options_for_select(priority_states + [['-------------', '']], selected: selected, disabled: '')
|
17
17
|
else
|
18
18
|
options_for_select([])
|
19
19
|
end
|
20
20
|
|
21
21
|
state_options += if priority_states&.include?(selected)
|
22
|
-
options_for_select(USASTATES - priority_states, :
|
22
|
+
options_for_select(USASTATES - priority_states, selected: selected)
|
23
23
|
else
|
24
|
-
options_for_select(USASTATES, :
|
24
|
+
options_for_select(USASTATES, selected: selected)
|
25
25
|
end
|
26
26
|
|
27
27
|
state_options
|
28
28
|
end
|
29
29
|
|
30
|
-
unless const_defined?(
|
30
|
+
unless const_defined?(:USASTATES)
|
31
31
|
USASTATES = [
|
32
32
|
%w[Alabama AL], %w[Alaska AK], %w[Arizona AZ], %w[Arkansas AR], %w[California CA], %w[Colorado CO],
|
33
33
|
%w[Connecticut CT], %w[Delaware DE], ['District of Columbia', 'DC'], %w[Florida FL], %w[Georgia GA],
|
@@ -59,7 +59,7 @@ module ActiveScaffold::Bridges
|
|
59
59
|
|
60
60
|
module FormColumnHelpers
|
61
61
|
def active_scaffold_input_usa_state(column, options, ui_options: column.options)
|
62
|
-
select_options = {:
|
62
|
+
select_options = {prompt: as_(:_select_)}
|
63
63
|
select_options.merge!(options)
|
64
64
|
options.reverse_merge!(ui_options).except!(:prompt, :priority)
|
65
65
|
active_scaffold_select_name_with_multiple options
|
@@ -69,7 +69,7 @@ module ActiveScaffold::Bridges
|
|
69
69
|
|
70
70
|
module SearchColumnHelpers
|
71
71
|
def active_scaffold_search_usa_state(column, options, ui_options: column.options)
|
72
|
-
active_scaffold_input_usa_state(column, options.merge!(:
|
72
|
+
active_scaffold_input_usa_state(column, options.merge!(selected: options.delete(:value)), ui_options: ui_options)
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
@@ -89,7 +89,7 @@ if defined? ActionView::Helpers::InstanceTag # TODO: remove when rails 3.2 suppo
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
else
|
92
|
-
class ActionView::Helpers::Tags::UsaStateSelect < ActionView::Helpers::Tags::Base
|
92
|
+
class ActionView::Helpers::Tags::UsaStateSelect < ActionView::Helpers::Tags::Base # :nodoc:
|
93
93
|
include ActiveScaffold::Bridges::UsaStateSelect::UsaStateSelectOptionsHelpers
|
94
94
|
include ActiveScaffold::Bridges::UsaStateSelect::InstanceTagMethods
|
95
95
|
end
|
@@ -31,15 +31,17 @@ module ActiveScaffold
|
|
31
31
|
|
32
32
|
def self.run_all
|
33
33
|
return false if bridges_run
|
34
|
+
|
34
35
|
bridges.each_key do |bridge_name|
|
35
36
|
self[bridge_name]&.run
|
36
37
|
end
|
37
|
-
ActiveScaffold::Config::Core.freeze
|
38
|
+
ActiveScaffold::Config::Core.freeze
|
38
39
|
self.bridges_run = true
|
39
40
|
end
|
40
41
|
|
41
42
|
def self.prepare_all
|
42
43
|
return false if bridges_prepared
|
44
|
+
|
43
45
|
bridges.each_key do |bridge_name|
|
44
46
|
bridge = self[bridge_name]
|
45
47
|
bridge.prepare if bridge&.install?
|
@@ -48,17 +50,17 @@ module ActiveScaffold
|
|
48
50
|
end
|
49
51
|
|
50
52
|
def self.all_stylesheets
|
51
|
-
bridges.keys.
|
53
|
+
bridges.keys.filter_map do |bridge_name|
|
52
54
|
bridge = self[bridge_name]
|
53
55
|
bridge.stylesheets if bridge&.install?
|
54
|
-
end.
|
56
|
+
end.flatten
|
55
57
|
end
|
56
58
|
|
57
59
|
def self.all_javascripts
|
58
|
-
bridges.keys.
|
60
|
+
bridges.keys.filter_map do |bridge_name|
|
59
61
|
bridge = self[bridge_name]
|
60
62
|
bridge.javascripts if bridge&.install?
|
61
|
-
end.
|
63
|
+
end.flatten
|
62
64
|
end
|
63
65
|
end
|
64
66
|
end
|
@@ -17,7 +17,7 @@ module ActiveScaffold::Config
|
|
17
17
|
@user_settings_key = :"#{model_id}_#{self.class.name.underscore}"
|
18
18
|
end
|
19
19
|
|
20
|
-
attr_reader :core
|
20
|
+
attr_reader :core, :user_settings_key
|
21
21
|
|
22
22
|
# delegate
|
23
23
|
def crud_type
|
@@ -25,16 +25,14 @@ module ActiveScaffold::Config
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def label(model = nil)
|
28
|
-
model ||= @core.label(:
|
29
|
-
@label.nil? ? model : as_(@label, :
|
28
|
+
model ||= @core.label(count: 1)
|
29
|
+
@label.nil? ? model : as_(@label, model: model)
|
30
30
|
end
|
31
31
|
|
32
32
|
def model_id
|
33
33
|
(core || self).model_id
|
34
34
|
end
|
35
35
|
|
36
|
-
attr_reader :user_settings_key
|
37
|
-
|
38
36
|
# the user property gets set to the instantiation of the local UserSettings class during the automatic instantiation of this class.
|
39
37
|
def user
|
40
38
|
ActiveScaffold::Registry.user_settings[user_settings_key]
|
@@ -53,6 +51,7 @@ module ActiveScaffold::Config
|
|
53
51
|
|
54
52
|
def formats
|
55
53
|
return @formats || NO_FORMATS if frozen?
|
54
|
+
|
56
55
|
@formats ||= NO_FORMATS.dup
|
57
56
|
end
|
58
57
|
attr_writer :formats
|
@@ -63,9 +62,10 @@ module ActiveScaffold::Config
|
|
63
62
|
# getter will return value set with setter, or value from conf
|
64
63
|
def self.user_attr(*names)
|
65
64
|
attr_writer(*names)
|
65
|
+
|
66
66
|
names.each do |name|
|
67
67
|
define_method(name) do
|
68
|
-
instance_variable_defined?("@#{name}") ? instance_variable_get("@#{name}") : @conf.send(name)
|
68
|
+
instance_variable_defined?(:"@#{name}") ? instance_variable_get(:"@#{name}") : @conf.send(name)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
end
|
@@ -128,18 +128,11 @@ module ActiveScaffold::Config
|
|
128
128
|
def proxy_to_conf?(name, include_all)
|
129
129
|
name !~ /=$/ && @conf.respond_to?(name, include_all)
|
130
130
|
end
|
131
|
-
|
132
|
-
private
|
133
|
-
|
134
|
-
def proxy_columns(columns)
|
135
|
-
proxy = ::CowProxy.wrap(columns)
|
136
|
-
proxy.action = self
|
137
|
-
proxy
|
138
|
-
end
|
139
131
|
end
|
140
132
|
|
141
133
|
def self.inherited(subclass)
|
142
|
-
|
134
|
+
super
|
135
|
+
subclass.const_set :UserSettings, Class.new(subclass.superclass::UserSettings)
|
143
136
|
class << subclass
|
144
137
|
# the crud type of the action. possible values are :create, :read, :update, :delete, and nil.
|
145
138
|
# this is not a setting for the developer. it's self-description for the actions.
|
@@ -149,6 +142,7 @@ module ActiveScaffold::Config
|
|
149
142
|
|
150
143
|
def crud_type=(val)
|
151
144
|
raise ArgumentError, "unknown CRUD type #{val}" unless %i[create read update delete].include?(val.to_sym)
|
145
|
+
|
152
146
|
@crud_type = val.to_sym
|
153
147
|
end
|
154
148
|
end
|
@@ -163,8 +157,8 @@ module ActiveScaffold::Config
|
|
163
157
|
class_attribute :columns_collections
|
164
158
|
|
165
159
|
def self.columns_writer(name)
|
166
|
-
var = "@#{name}"
|
167
|
-
define_method "#{name}=" do |val|
|
160
|
+
var = :"@#{name}"
|
161
|
+
define_method :"#{name}=" do |val|
|
168
162
|
if instance_variable_defined?(var)
|
169
163
|
instance_variable_get(var).set_values(*val)
|
170
164
|
instance_variable_get(var)
|
@@ -175,7 +169,7 @@ module ActiveScaffold::Config
|
|
175
169
|
end
|
176
170
|
|
177
171
|
def self.columns_reader(name, options, &block)
|
178
|
-
var = "@#{name}"
|
172
|
+
var = :"@#{name}"
|
179
173
|
define_method name do
|
180
174
|
unless instance_variable_defined?(var) # lazy evaluation
|
181
175
|
action, columns = options[:copy] if options[:copy]
|
@@ -184,7 +178,7 @@ module ActiveScaffold::Config
|
|
184
178
|
action_columns.action = self
|
185
179
|
instance_variable_set(var, action_columns)
|
186
180
|
else
|
187
|
-
send("#{name}=", @core.columns._inheritable)
|
181
|
+
send(:"#{name}=", @core.columns._inheritable)
|
188
182
|
end
|
189
183
|
instance_exec(&block) if block
|
190
184
|
end
|
@@ -199,14 +193,16 @@ module ActiveScaffold::Config
|
|
199
193
|
columns_writer name
|
200
194
|
columns_reader name, options, &block unless method_defined? name
|
201
195
|
|
202
|
-
var = "@#{name}"
|
196
|
+
var = :"@#{name}"
|
203
197
|
self::UserSettings.class_eval do
|
204
|
-
define_method "#{name}=" do |val|
|
205
|
-
instance_variable_set var,
|
198
|
+
define_method :"#{name}=" do |val|
|
199
|
+
instance_variable_set var, build_action_columns(val)
|
206
200
|
end
|
207
201
|
define_method name do
|
208
|
-
instance_variable_get(var) ||
|
209
|
-
|
202
|
+
instance_variable_get(var) || @conf.send(name)
|
203
|
+
end
|
204
|
+
define_method :"override_#{name}" do |&blck|
|
205
|
+
send(:"#{name}=", send(name)).tap(&blck)
|
210
206
|
end
|
211
207
|
end
|
212
208
|
end
|
@@ -16,10 +16,6 @@ module ActiveScaffold::Config
|
|
16
16
|
cattr_accessor :plugin_directory
|
17
17
|
@@plugin_directory = File.expand_path(__FILE__).match(%{(^.*)/lib/active_scaffold/config/core.rb})[1]
|
18
18
|
|
19
|
-
# lets you specify a global ActiveScaffold frontend.
|
20
|
-
cattr_accessor :frontend, instance_accessor: false
|
21
|
-
@@frontend = :default
|
22
|
-
|
23
19
|
# lets you specify a global ActiveScaffold theme for your frontend.
|
24
20
|
cattr_accessor :theme, instance_accessor: false
|
25
21
|
@@theme = :default
|
@@ -103,21 +99,20 @@ module ActiveScaffold::Config
|
|
103
99
|
|
104
100
|
# provides read/write access to the local Actions DataStructure
|
105
101
|
attr_reader :actions
|
102
|
+
|
106
103
|
def actions=(args)
|
107
104
|
@actions = ActiveScaffold::DataStructures::Actions.new(*args)
|
108
105
|
end
|
109
106
|
|
110
107
|
# provides read/write access to the local Columns DataStructure
|
111
108
|
attr_reader :columns
|
109
|
+
|
112
110
|
def columns=(val)
|
113
111
|
@columns._inheritable = val.collect(&:to_sym)
|
114
112
|
# Add virtual columns
|
115
113
|
@columns.add(*val)
|
116
114
|
end
|
117
115
|
|
118
|
-
# lets you override the global ActiveScaffold frontend for a specific controller
|
119
|
-
attr_accessor :frontend
|
120
|
-
|
121
116
|
# lets you override the global ActiveScaffold theme for a specific controller
|
122
117
|
attr_accessor :theme
|
123
118
|
|
@@ -135,6 +130,7 @@ module ActiveScaffold::Config
|
|
135
130
|
|
136
131
|
# lets you specify whether add a create link for each sti child for a specific controller
|
137
132
|
attr_accessor :sti_create_links
|
133
|
+
|
138
134
|
def add_sti_create_links?
|
139
135
|
sti_create_links && !sti_children.nil?
|
140
136
|
end
|
@@ -144,8 +140,9 @@ module ActiveScaffold::Config
|
|
144
140
|
|
145
141
|
# a generally-applicable name for this ActiveScaffold ... will be used for generating page/section headers
|
146
142
|
attr_writer :label
|
143
|
+
|
147
144
|
def label(options = {})
|
148
|
-
as_(@label, options) || model.model_name.human(options.merge(options[:count].to_i == 1 ? {} : {:
|
145
|
+
as_(@label, options) || model.model_name.human(options.merge(options[:count].to_i == 1 ? {} : {default: model.name.pluralize}))
|
149
146
|
end
|
150
147
|
|
151
148
|
# STI children models, use an array of model names
|
@@ -161,7 +158,7 @@ module ActiveScaffold::Config
|
|
161
158
|
## internal usage only below this point
|
162
159
|
## ------------------------------------
|
163
160
|
|
164
|
-
def initialize(model_id)
|
161
|
+
def initialize(model_id) # rubocop:disable Lint/MissingSuper
|
165
162
|
# model_id is the only absolutely required configuration value. it is also not publicly accessible.
|
166
163
|
@model_id = model_id
|
167
164
|
setup_user_setting_key
|
@@ -181,10 +178,8 @@ module ActiveScaffold::Config
|
|
181
178
|
content_columns = Set.new(_content_columns.map(&:name))
|
182
179
|
@columns.exclude(*self.class.ignore_columns)
|
183
180
|
@columns.exclude(*@columns.find_all { |c| c.column && content_columns.exclude?(c.column.name) }.collect(&:name))
|
184
|
-
@columns.exclude(*model.reflect_on_all_associations.
|
181
|
+
@columns.exclude(*model.reflect_on_all_associations.filter_map { |a| a.foreign_type.to_sym if a.options[:polymorphic] })
|
185
182
|
|
186
|
-
# inherit the global frontend
|
187
|
-
@frontend = self.class.frontend
|
188
183
|
@theme = self.class.theme
|
189
184
|
@cache_action_link_urls = self.class.cache_action_link_urls
|
190
185
|
@cache_association_options = self.class.cache_association_options
|
@@ -212,6 +207,7 @@ module ActiveScaffold::Config
|
|
212
207
|
# To be called after your finished configuration
|
213
208
|
def _configure_sti
|
214
209
|
return if sti_children.nil?
|
210
|
+
|
215
211
|
column = model.inheritance_column
|
216
212
|
if sti_create_links
|
217
213
|
columns[column].form_ui ||= :hidden
|
@@ -238,7 +234,7 @@ module ActiveScaffold::Config
|
|
238
234
|
end
|
239
235
|
|
240
236
|
def respond_to_missing?(name, include_all = false)
|
241
|
-
self.class.config_class?(name) && @actions.include?(name.to_sym) || super
|
237
|
+
(self.class.config_class?(name) && @actions.include?(name.to_sym)) || super
|
242
238
|
end
|
243
239
|
|
244
240
|
def [](action_name)
|
@@ -249,6 +245,7 @@ module ActiveScaffold::Config
|
|
249
245
|
unless @actions.include? underscored_name
|
250
246
|
raise "#{action_name.to_s.camelcase} is not enabled. Please enable it or remove any references in your configuration (e.g. config.#{underscored_name}.columns = [...])."
|
251
247
|
end
|
248
|
+
|
252
249
|
@action_configs ||= {}
|
253
250
|
@action_configs[underscored_name] ||= klass.new(self)
|
254
251
|
end
|
@@ -272,7 +269,7 @@ module ActiveScaffold::Config
|
|
272
269
|
end
|
273
270
|
|
274
271
|
def self.respond_to_missing?(name, include_all = false)
|
275
|
-
config_class?(name) && @@actions.include?(name.to_s.underscore) || super
|
272
|
+
(config_class?(name) && @@actions.include?(name.to_s.underscore)) || super
|
276
273
|
end
|
277
274
|
# some utility methods
|
278
275
|
# --------------------
|
@@ -304,24 +301,6 @@ module ActiveScaffold::Config
|
|
304
301
|
action_columns
|
305
302
|
end
|
306
303
|
|
307
|
-
# must be a class method so the layout doesn't depend on a controller that uses active_scaffold
|
308
|
-
# note that this is unaffected by per-controller frontend configuration.
|
309
|
-
def self.asset_path(filename, frontend = self.frontend)
|
310
|
-
"active_scaffold/#{frontend}/#{filename}"
|
311
|
-
end
|
312
|
-
|
313
|
-
# must be a class method so the layout doesn't depend on a controller that uses active_scaffold
|
314
|
-
# note that this is unaffected by per-controller frontend configuration.
|
315
|
-
def self.javascripts(frontend = self.frontend)
|
316
|
-
javascript_dir = File.join(Rails.public_path, 'javascripts', asset_path('', frontend))
|
317
|
-
Dir.entries(javascript_dir).reject { |e| !e.match(/\.js$/) || (!dhtml_history? && e.match('dhtml_history')) }
|
318
|
-
end
|
319
|
-
|
320
|
-
def self.available_frontends
|
321
|
-
frontends_dir = Rails.root.join('vendor', 'plugins', ActiveScaffold::Config::Core.plugin_directory, 'frontends')
|
322
|
-
Dir.entries(frontends_dir).reject { |e| e.match(/^\./) } # Get rid of files that start with .
|
323
|
-
end
|
324
|
-
|
325
304
|
class UserSettings < Base::UserSettings
|
326
305
|
include ActiveScaffold::Configurable
|
327
306
|
user_attr :cache_action_link_urls, :cache_association_options, :conditional_get_support,
|
@@ -348,7 +327,7 @@ module ActiveScaffold::Config
|
|
348
327
|
end
|
349
328
|
|
350
329
|
def action_links
|
351
|
-
@
|
330
|
+
@conf.action_links
|
352
331
|
end
|
353
332
|
|
354
333
|
def model
|
@@ -369,27 +348,36 @@ module ActiveScaffold::Config
|
|
369
348
|
end
|
370
349
|
|
371
350
|
def [](name)
|
372
|
-
|
373
|
-
|
351
|
+
@columns[name.to_sym] || @global_columns[name]
|
352
|
+
end
|
353
|
+
|
354
|
+
def override(name)
|
355
|
+
raise ArgumentError, "column '#{name}' doesn't exist" unless @global_columns[name]
|
356
|
+
|
357
|
+
(@columns[name.to_sym] ||= ActiveScaffold::DataStructures::ProxyColumn.new(@global_columns[name])).tap do |col|
|
358
|
+
yield col if block_given?
|
359
|
+
end
|
374
360
|
end
|
375
361
|
|
376
362
|
def each
|
377
363
|
return enum_for(:each) unless block_given?
|
364
|
+
|
378
365
|
@global_columns.each do |col|
|
379
366
|
yield self[col.name]
|
380
367
|
end
|
381
368
|
end
|
382
369
|
|
383
|
-
def method_missing(name,
|
384
|
-
if
|
385
|
-
@global_columns.send(name,
|
370
|
+
def method_missing(name, ...)
|
371
|
+
if respond_to_missing?(name, true)
|
372
|
+
@global_columns.send(name, ...)
|
386
373
|
else
|
387
374
|
super
|
388
375
|
end
|
389
376
|
end
|
390
377
|
|
378
|
+
DONT_DELEGATE = %i[add exclude add_association_columns _inheritable=].freeze
|
391
379
|
def respond_to_missing?(name, include_all = false)
|
392
|
-
@global_columns.respond_to?(name, include_all) || super
|
380
|
+
(DONT_DELEGATE.exclude?(name) && @global_columns.respond_to?(name, include_all)) || super
|
393
381
|
end
|
394
382
|
end
|
395
383
|
end
|
@@ -17,7 +17,7 @@ module ActiveScaffold::Config
|
|
17
17
|
def self.link=(val)
|
18
18
|
@@link = val
|
19
19
|
end
|
20
|
-
@@link = ActiveScaffold::DataStructures::ActionLink.new('new', :
|
20
|
+
@@link = ActiveScaffold::DataStructures::ActionLink.new('new', label: :create_new, type: :collection, security_method: :create_authorized?, ignore_method: :create_ignore?)
|
21
21
|
|
22
22
|
# whether update form is opened after a create or not
|
23
23
|
cattr_accessor :action_after_create, instance_accessor: false
|
@@ -14,15 +14,15 @@ module ActiveScaffold::Config
|
|
14
14
|
cattr_accessor :link, instance_accessor: false
|
15
15
|
@@link = ActiveScaffold::DataStructures::ActionLink.new(
|
16
16
|
'destroy',
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
|
17
|
+
label: :delete,
|
18
|
+
type: :member,
|
19
|
+
method: :delete,
|
20
|
+
crud_type: :delete,
|
21
|
+
confirm: :are_you_sure_to_delete,
|
22
|
+
position: false,
|
23
|
+
parameters: {destroy_action: true},
|
24
|
+
security_method: :delete_authorized?,
|
25
|
+
ignore_method: :delete_ignore?
|
26
26
|
)
|
27
27
|
|
28
28
|
# whether we should refresh list after destroy or not
|
@@ -15,7 +15,7 @@ module ActiveScaffold::Config
|
|
15
15
|
# --------------------------
|
16
16
|
# the ActionLink for this action
|
17
17
|
cattr_reader :link, instance_accessor: false
|
18
|
-
@@link = ActiveScaffold::DataStructures::ActionLink.new('show_search', :
|
18
|
+
@@link = ActiveScaffold::DataStructures::ActionLink.new('show_search', label: :search, type: :collection, security_method: :search_authorized?, ignore_method: :field_search_ignore?)
|
19
19
|
|
20
20
|
# A flag for how the search should do full-text searching in the database:
|
21
21
|
# * :full: LIKE %?%
|
@@ -37,9 +37,6 @@ module ActiveScaffold::Config
|
|
37
37
|
|
38
38
|
cattr_accessor :reset_form, instance_accessor: false
|
39
39
|
|
40
|
-
# whether refresh columns defined in update_columns when a column is changed, as create and update forms do
|
41
|
-
cattr_accessor :update_columns
|
42
|
-
|
43
40
|
# instance-level configuration
|
44
41
|
# ----------------------------
|
45
42
|
|
@@ -65,6 +62,7 @@ module ActiveScaffold::Config
|
|
65
62
|
|
66
63
|
def optional_columns
|
67
64
|
return @optional_columns || NO_COLUMNS if frozen?
|
65
|
+
|
68
66
|
@optional_columns ||= NO_COLUMNS.dup
|
69
67
|
end
|
70
68
|
|
@@ -75,7 +73,7 @@ module ActiveScaffold::Config
|
|
75
73
|
attr_accessor :grouped_columns
|
76
74
|
|
77
75
|
# default search params
|
78
|
-
# default_params = {:
|
76
|
+
# default_params = {title: {"from"=>"test", "to"=>"", "opt"=>"%?%"}}
|
79
77
|
attr_accessor :default_params
|
80
78
|
|
81
79
|
# human conditions
|
@@ -87,11 +85,8 @@ module ActiveScaffold::Config
|
|
87
85
|
|
88
86
|
attr_accessor :reset_form
|
89
87
|
|
90
|
-
# whether refresh columns defined in update_columns when a column is changed, as create and update forms do
|
91
|
-
attr_accessor :update_columns
|
92
|
-
|
93
88
|
UserSettings.class_eval do
|
94
|
-
user_attr :optional_columns, :group_options, :grouped_columns, :human_conditions, :floating_footer
|
89
|
+
user_attr :optional_columns, :group_options, :grouped_columns, :human_conditions, :floating_footer
|
95
90
|
end
|
96
91
|
end
|
97
92
|
end
|
@@ -51,11 +51,12 @@ module ActiveScaffold::Config
|
|
51
51
|
|
52
52
|
columns_accessor :columns do
|
53
53
|
columns.exclude :created_on, :created_at, :updated_on, :updated_at, :as_marked
|
54
|
-
columns.exclude(*@core.columns.
|
54
|
+
columns.exclude(*@core.columns.filter_map { |c| c.name if c.association&.polymorphic? })
|
55
55
|
end
|
56
56
|
|
57
57
|
# whether the form should be multipart
|
58
58
|
attr_writer :multipart
|
59
|
+
|
59
60
|
def multipart?
|
60
61
|
@multipart ? true : false
|
61
62
|
end
|
@@ -64,6 +65,7 @@ module ActiveScaffold::Config
|
|
64
65
|
user_attr :persistent, :refresh_list, :show_unauthorized_columns, :floating_footer
|
65
66
|
|
66
67
|
attr_writer :multipart
|
68
|
+
|
67
69
|
def multipart?
|
68
70
|
defined?(@multipart) ? @multipart : @conf.multipart?
|
69
71
|
end
|
@@ -79,7 +79,7 @@ module ActiveScaffold::Config
|
|
79
79
|
|
80
80
|
# the ActionLink to reset search
|
81
81
|
cattr_reader :reset_link, instance_reader: false
|
82
|
-
@@reset_link = ActiveScaffold::DataStructures::ActionLink.new('index', :
|
82
|
+
@@reset_link = ActiveScaffold::DataStructures::ActionLink.new('index', label: :click_to_reset, type: :collection, position: false, parameters: {search: ''})
|
83
83
|
|
84
84
|
# wrap normal cells (not inplace editable columns or with link) with a tag
|
85
85
|
# it allows for more css styling
|
@@ -147,9 +147,9 @@ module ActiveScaffold::Config
|
|
147
147
|
attr_reader :reset_link
|
148
148
|
|
149
149
|
# the default sorting.
|
150
|
-
# should be a hash of {column_name => direction}, e.g. {:
|
151
|
-
# for backwards compatibility, it may be an array of hashes of {column_name => direction}, e.g. [{:
|
152
|
-
# to just sort on one column, you can simply provide a hash, e.g. {:
|
150
|
+
# should be a hash of {column_name => direction}, e.g. {a: 'desc', b: 'asc'}.
|
151
|
+
# for backwards compatibility, it may be an array of hashes of {column_name => direction}, e.g. [{a: 'desc'}, {b: 'asc'}].
|
152
|
+
# to just sort on one column, you can simply provide a hash, e.g. {a: 'desc'}.
|
153
153
|
def sorting=(val)
|
154
154
|
val = [val] if val.is_a? Hash
|
155
155
|
sorting.set(*val)
|
@@ -164,21 +164,21 @@ module ActiveScaffold::Config
|
|
164
164
|
|
165
165
|
# the label for this List action. used for the header.
|
166
166
|
attr_writer :label
|
167
|
+
|
167
168
|
def label
|
168
|
-
@label ? as_(@label, :
|
169
|
+
@label ? as_(@label, count: 2) : @core.label(count: 2)
|
169
170
|
end
|
170
171
|
|
171
|
-
attr_writer :no_entries_message
|
172
|
+
attr_writer :no_entries_message, :filtered_message, :always_show_search
|
173
|
+
|
172
174
|
def no_entries_message
|
173
|
-
@no_entries_message
|
175
|
+
@no_entries_message || :no_entries
|
174
176
|
end
|
175
177
|
|
176
|
-
attr_writer :filtered_message
|
177
178
|
def filtered_message
|
178
|
-
@filtered_message
|
179
|
+
@filtered_message || :filtered
|
179
180
|
end
|
180
181
|
|
181
|
-
attr_writer :always_show_search
|
182
182
|
def always_show_search
|
183
183
|
@always_show_search && search_partial.present?
|
184
184
|
end
|
@@ -192,18 +192,23 @@ module ActiveScaffold::Config
|
|
192
192
|
end
|
193
193
|
|
194
194
|
def auto_search_partial
|
195
|
-
|
196
|
-
|
195
|
+
if @core.actions.include?(:search)
|
196
|
+
'search'
|
197
|
+
elsif @core.actions.include?(:field_search)
|
198
|
+
'field_search'
|
199
|
+
end
|
197
200
|
end
|
198
201
|
|
199
202
|
# always show create
|
200
203
|
attr_writer :always_show_create
|
204
|
+
|
201
205
|
def always_show_create
|
202
206
|
@always_show_create && @core.actions.include?(:create)
|
203
207
|
end
|
204
208
|
|
205
209
|
# if list view is nested hide nested_column
|
206
210
|
attr_writer :hide_nested_column
|
211
|
+
|
207
212
|
def hide_nested_column
|
208
213
|
@hide_nested_column.nil? ? true : @hide_nested_column
|
209
214
|
end
|
@@ -232,6 +237,7 @@ module ActiveScaffold::Config
|
|
232
237
|
end
|
233
238
|
|
234
239
|
attr_writer :label
|
240
|
+
|
235
241
|
# This label has already been localized.
|
236
242
|
def label
|
237
243
|
self['label'] || embedded_label || @label || @conf.label
|
@@ -293,9 +299,7 @@ module ActiveScaffold::Config
|
|
293
299
|
else
|
294
300
|
@_sorting = default_sorting
|
295
301
|
@_sorting.set(*@sorting) if @sorting
|
296
|
-
if @conf.columns.constraint_columns.present?
|
297
|
-
@_sorting.constraint_columns = @conf.columns.constraint_columns
|
298
|
-
end
|
302
|
+
@_sorting.constraint_columns = @conf.columns.constraint_columns if @conf.columns.constraint_columns.present?
|
299
303
|
end
|
300
304
|
end
|
301
305
|
@_sorting
|
@@ -32,9 +32,9 @@ module ActiveScaffold::Config
|
|
32
32
|
if column.association.polymorphic?
|
33
33
|
column.label
|
34
34
|
else
|
35
|
-
column.association.klass.model_name.human(:
|
35
|
+
column.association.klass.model_name.human(count: column.association.singular? ? 1 : 2, default: column.association.klass.name.pluralize)
|
36
36
|
end
|
37
|
-
options.reverse_merge! :
|
37
|
+
options.reverse_merge! security_method: :nested_authorized?, label: label
|
38
38
|
action_group = options.delete(:action_group) || self.action_group
|
39
39
|
action_link = @core.link_for_association(column, options)
|
40
40
|
@core.action_links.add_to_group(action_link, action_group) unless action_link.nil?
|