active_scaffold 3.5.5 → 3.6.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +18 -2
  3. data/README.md +17 -7
  4. data/app/assets/javascripts/jquery/active_scaffold.js +28 -2
  5. data/app/views/active_scaffold_overrides/_base_form.html.erb +2 -2
  6. data/app/views/active_scaffold_overrides/_form.html.erb +1 -1
  7. data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +3 -2
  8. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +6 -6
  9. data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +1 -1
  10. data/app/views/active_scaffold_overrides/_horizontal_subform_header.html.erb +1 -1
  11. data/app/views/active_scaffold_overrides/_list.html.erb +2 -1
  12. data/app/views/active_scaffold_overrides/_list_messages.html.erb +1 -0
  13. data/app/views/active_scaffold_overrides/_messages.html.erb +1 -0
  14. data/app/views/active_scaffold_overrides/_render_field.js.erb +2 -1
  15. data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +2 -1
  16. data/app/views/active_scaffold_overrides/_show_columns.html.erb +2 -2
  17. data/app/views/active_scaffold_overrides/_show_horizontal_record.html.erb +4 -4
  18. data/app/views/active_scaffold_overrides/_update_calculations.js.erb +1 -1
  19. data/app/views/active_scaffold_overrides/_update_column.js.erb +2 -2
  20. data/app/views/active_scaffold_overrides/action_confirmation.html.erb +2 -2
  21. data/app/views/active_scaffold_overrides/delete.html.erb +2 -2
  22. data/app/views/active_scaffold_overrides/on_action_update.js.erb +16 -6
  23. data/app/views/active_scaffold_overrides/on_update.js.erb +1 -1
  24. data/app/views/active_scaffold_overrides/row.js.erb +1 -1
  25. data/app/views/active_scaffold_overrides/update_column.js.erb +1 -1
  26. data/lib/active_scaffold.rb +11 -13
  27. data/lib/active_scaffold/actions/core.rb +25 -35
  28. data/lib/active_scaffold/actions/create.rb +1 -1
  29. data/lib/active_scaffold/actions/delete.rb +2 -2
  30. data/lib/active_scaffold/actions/field_search.rb +2 -2
  31. data/lib/active_scaffold/actions/list.rb +8 -7
  32. data/lib/active_scaffold/actions/nested.rb +9 -9
  33. data/lib/active_scaffold/actions/search.rb +1 -1
  34. data/lib/active_scaffold/actions/show.rb +1 -1
  35. data/lib/active_scaffold/actions/subform.rb +3 -1
  36. data/lib/active_scaffold/actions/update.rb +5 -4
  37. data/lib/active_scaffold/active_record_permissions.rb +2 -11
  38. data/lib/active_scaffold/attribute_params.rb +16 -23
  39. data/lib/active_scaffold/bridges.rb +8 -8
  40. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +1 -1
  41. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +1 -1
  42. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +3 -18
  43. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +1 -1
  44. data/lib/active_scaffold/bridges/chosen/helpers.rb +7 -6
  45. data/lib/active_scaffold/bridges/date_picker/ext.rb +0 -13
  46. data/lib/active_scaffold/bridges/date_picker/helper.rb +3 -3
  47. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +1 -1
  48. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +3 -3
  49. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +8 -7
  50. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +2 -4
  51. data/lib/active_scaffold/bridges/paper_trail.rb +1 -1
  52. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
  53. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +1 -1
  54. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +2 -2
  55. data/lib/active_scaffold/bridges/record_select/helpers.rb +9 -9
  56. data/lib/active_scaffold/bridges/shared/date_bridge.rb +3 -3
  57. data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +1 -1
  58. data/lib/active_scaffold/config/base.rb +89 -21
  59. data/lib/active_scaffold/config/core.rb +127 -18
  60. data/lib/active_scaffold/config/delete.rb +2 -0
  61. data/lib/active_scaffold/config/field_search.rb +7 -1
  62. data/lib/active_scaffold/config/form.rb +10 -1
  63. data/lib/active_scaffold/config/list.rb +27 -11
  64. data/lib/active_scaffold/config/mark.rb +3 -1
  65. data/lib/active_scaffold/config/nested.rb +16 -17
  66. data/lib/active_scaffold/config/search.rb +9 -0
  67. data/lib/active_scaffold/config/show.rb +4 -0
  68. data/lib/active_scaffold/config/update.rb +4 -0
  69. data/lib/active_scaffold/configurable.rb +11 -6
  70. data/lib/active_scaffold/constraints.rb +1 -1
  71. data/lib/active_scaffold/core.rb +46 -16
  72. data/lib/active_scaffold/data_structures/action_columns.rb +50 -59
  73. data/lib/active_scaffold/data_structures/action_link.rb +20 -8
  74. data/lib/active_scaffold/data_structures/action_links.rb +6 -2
  75. data/lib/active_scaffold/data_structures/association/abstract.rb +9 -5
  76. data/lib/active_scaffold/data_structures/association/active_record.rb +1 -1
  77. data/lib/active_scaffold/data_structures/column.rb +51 -33
  78. data/lib/active_scaffold/data_structures/nested_info.rb +1 -1
  79. data/lib/active_scaffold/data_structures/set.rb +8 -0
  80. data/lib/active_scaffold/data_structures/sorting.rb +5 -2
  81. data/lib/active_scaffold/delayed_setup.rb +2 -1
  82. data/lib/active_scaffold/extensions/action_controller_rendering.rb +2 -1
  83. data/lib/active_scaffold/extensions/action_view_rendering.rb +1 -1
  84. data/lib/active_scaffold/extensions/cow_proxy.rb +43 -0
  85. data/lib/active_scaffold/extensions/ice_nine.rb +36 -0
  86. data/lib/active_scaffold/extensions/left_outer_joins.rb +8 -33
  87. data/lib/active_scaffold/extensions/routing_mapper.rb +4 -43
  88. data/lib/active_scaffold/extensions/unsaved_record.rb +2 -4
  89. data/lib/active_scaffold/finder.rb +26 -30
  90. data/lib/active_scaffold/helpers/action_link_helpers.rb +16 -16
  91. data/lib/active_scaffold/helpers/association_helpers.rb +5 -5
  92. data/lib/active_scaffold/helpers/controller_helpers.rb +11 -1
  93. data/lib/active_scaffold/helpers/form_column_helpers.rb +25 -24
  94. data/lib/active_scaffold/helpers/id_helpers.rb +2 -2
  95. data/lib/active_scaffold/helpers/list_column_helpers.rb +8 -6
  96. data/lib/active_scaffold/helpers/search_column_helpers.rb +4 -4
  97. data/lib/active_scaffold/helpers/view_helpers.rb +7 -13
  98. data/lib/active_scaffold/marked_model.rb +2 -2
  99. data/lib/active_scaffold/orm_checks.rb +1 -5
  100. data/lib/active_scaffold/paginator.rb +6 -4
  101. data/lib/active_scaffold/registry.rb +22 -0
  102. data/lib/active_scaffold/responds_to_parent.rb +2 -6
  103. data/lib/active_scaffold/tableless.rb +63 -59
  104. data/lib/active_scaffold/version.rb +2 -2
  105. data/lib/generators/active_scaffold/controller_generator.rb +2 -2
  106. data/lib/generators/active_scaffold/install_generator.rb +1 -1
  107. data/lib/generators/active_scaffold/resource_generator.rb +2 -2
  108. data/test/bridges/date_picker_test.rb +1 -2
  109. data/test/bridges/paperclip_test.rb +5 -5
  110. data/test/class_with_finder.rb +2 -2
  111. data/test/company.rb +2 -2
  112. data/test/config/create_test.rb +4 -2
  113. data/test/config/nested_test.rb +1 -1
  114. data/test/config/show_test.rb +1 -1
  115. data/test/config/update_test.rb +7 -6
  116. data/test/data_structures/action_links_test.rb +1 -1
  117. data/test/data_structures/sorting_test.rb +7 -0
  118. data/test/misc/active_record_permissions_test.rb +1 -9
  119. data/test/misc/attribute_params_test.rb +8 -8
  120. data/test/misc/calculation_test.rb +1 -1
  121. data/test/misc/constraints_test.rb +2 -2
  122. data/test/misc/convert_numbers_format_test.rb +3 -3
  123. data/test/misc/lang_test.rb +1 -1
  124. data/test/misc/parse_datetime_test.rb +3 -4
  125. data/test/misc/tableless_test.rb +6 -0
  126. data/test/mock_app/Rakefile +1 -1
  127. data/test/mock_app/config/application.rb +1 -1
  128. data/test/mock_app/config/boot.rb +1 -1
  129. data/test/mock_app/config/environment.rb +2 -2
  130. data/test/test_helper.rb +8 -1
  131. metadata +38 -13
@@ -140,11 +140,7 @@ class ActiveRecordPermissionsTest < MiniTest::Test
140
140
  end
141
141
 
142
142
  def test_method_combinations_with_default_false
143
- old_permission = nil
144
- ActiveScaffold.set_defaults do |config|
145
- old_permission = config.security.default_permission
146
- config.security.default_permission = false
147
- end
143
+ ActiveScaffold::Config::Core.security.stubs(default_permission: false)
148
144
 
149
145
  miss(@model.authorized_for?(:column => :a3), '_a_')
150
146
  miss(@model.authorized_for?(:column => :a2), '_f_')
@@ -183,10 +179,6 @@ class ActiveRecordPermissionsTest < MiniTest::Test
183
179
  pass(@model.authorized_for?(:crud_type => :read, :column => :c1), 'tta')
184
180
  miss(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
185
181
  pass(@model.authorized_for?(:crud_type => :read, :column => :a1), 'ttt')
186
-
187
- ActiveScaffold.set_defaults do |config|
188
- config.security.default_permission = old_permission
189
- end
190
182
  end
191
183
 
192
184
  private
@@ -417,15 +417,15 @@ class AttributeParamsTest < MiniTest::Test
417
417
  record = record.class.find(record.id) if record.persisted?
418
418
  new_record = @controller.update_record_from_params(record, build_action_columns(record, action, columns), params)
419
419
  yield if block_given?
420
- Thread.current[:constraint_columns] = nil
420
+ ActiveScaffold::Registry.constraint_columns.clear
421
421
  end
422
422
  new_record
423
423
  end
424
424
 
425
425
  def build_action_columns(record, action, *columns)
426
- controller = ActiveScaffold::Core.active_scaffold_controller_for record.class
427
- controller.active_scaffold_config.send(action).columns = columns
428
- controller.active_scaffold_config.send(action).columns
426
+ config = @controller.active_scaffold_config_for record.class
427
+ config.send(action).columns = columns
428
+ config.send(action).columns
429
429
  end
430
430
  end
431
431
 
@@ -447,11 +447,11 @@ class Controller
447
447
  @flash ||= ActionDispatch::Flash::FlashHash.new
448
448
  end
449
449
 
450
- def params_hash?(v)
451
- v.is_a? Hash
450
+ def params_hash?(value)
451
+ value.is_a? Hash
452
452
  end
453
453
 
454
- def params_hash(v)
455
- v
454
+ def params_hash(value)
455
+ value
456
456
  end
457
457
  end
@@ -4,7 +4,7 @@ require 'class_with_finder'
4
4
  class CalculationTest < MiniTest::Test
5
5
  def setup
6
6
  @buildings = []
7
- @buildings << Building.create { |b| b.create_owner(:first_name => 'foo') }
7
+ @buildings << Building.create { |b| b.build_owner(:first_name => 'foo') }
8
8
  @buildings << Building.create(:name => 'foo bar')
9
9
  @buildings << Building.create
10
10
 
@@ -116,8 +116,8 @@ class ConstraintsTestObject
116
116
  @params = {}
117
117
  end
118
118
 
119
- def params_hash?(v)
120
- v.is_a? Hash
119
+ def params_hash?(value)
120
+ value.is_a? Hash
121
121
  end
122
122
  end
123
123
 
@@ -26,6 +26,7 @@ class ConvertNumbersFormatTest < MiniTest::Test
26
26
  include ActiveScaffoldConfigMock
27
27
  include ActiveScaffold::AttributeParams
28
28
  include ActiveScaffold::Finder
29
+ include ActiveScaffold::Helpers::ControllerHelpers
29
30
 
30
31
  def setup
31
32
  NumberModel.load_schema! if Rails.version >= '5.0'
@@ -46,7 +47,6 @@ class ConvertNumbersFormatTest < MiniTest::Test
46
47
 
47
48
  @config = config_for('number_model')
48
49
  @config.columns[:number].form_ui = nil
49
- @config.create.columns.set_columns @config.columns
50
50
  end
51
51
 
52
52
  def teardown
@@ -161,7 +161,7 @@ class ConvertNumbersFormatTest < MiniTest::Test
161
161
  record.number
162
162
  end
163
163
 
164
- def params_hash?(v)
165
- v.is_a? Hash
164
+ def params_hash?(value)
165
+ value.is_a? Hash
166
166
  end
167
167
  end
@@ -4,7 +4,7 @@ class LocalizationTest < MiniTest::Test
4
4
  def test_localization
5
5
  assert_equal 'Dutch', as_(:dutch)
6
6
  assert_equal 'dutch', as_('dutch')
7
- I18n.backend.store_translations :en, :active_scaffold => {:create_model => 'Create %{model}'}
7
+ I18n.backend.store_translations :en, :active_scaffold => {:create_model => 'Create %<model>s'}
8
8
  assert_equal 'Create Test', as_(:create_model, :model => 'Test')
9
9
  end
10
10
  end
@@ -44,7 +44,6 @@ class ParseDatetimeTest < MiniTest::Test
44
44
  I18n.backend.store_translations :es, spanish
45
45
 
46
46
  @config = config_for('date_time_model')
47
- @config.create.columns.set_columns @config.columns
48
47
  end
49
48
 
50
49
  def teardown
@@ -125,7 +124,7 @@ class ParseDatetimeTest < MiniTest::Test
125
124
  end
126
125
 
127
126
  def test_condition_for_datetime_with_zone
128
- assert_equal DateTime.new(2017, 4, 8, 16, 30, 0, '+0300'), condition_value('2017-04-08 16:30 +0300')
127
+ assert_equal ActiveSupport::TimeZone[3].local(2017, 4, 8, 16, 30, 0), condition_value('2017-04-08 16:30 +0300')
129
128
  end
130
129
 
131
130
  def test_condition_for_spanish_date
@@ -154,7 +153,7 @@ class ParseDatetimeTest < MiniTest::Test
154
153
  self.class.condition_value_for_datetime(@config.columns[:run_at], value, conversion || :to_time)
155
154
  end
156
155
 
157
- def params_hash?(v)
158
- v.is_a? Hash
156
+ def params_hash?(value)
157
+ value.is_a? Hash
159
158
  end
160
159
  end
@@ -27,6 +27,12 @@ class TablelessTest < MiniTest::Test
27
27
  assert Person.new.files.empty?
28
28
  end
29
29
 
30
+ def test_tableless_assoc_with_dependent
31
+ @person = Person.new
32
+ @person.save(validate: false)
33
+ assert @person.destroy
34
+ end
35
+
30
36
  def test_find_with_through_association
31
37
  assert Building.new.files.empty?
32
38
  end
@@ -1,7 +1,7 @@
1
1
  # Add your own tasks in files placed in lib/tasks ending in .rake,
2
2
  # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
3
 
4
- require File.expand_path('../config/application', __FILE__)
4
+ require File.expand_path('config/application', __dir__)
5
5
  require 'rake'
6
6
 
7
7
  RailsApp::Application.load_tasks
@@ -1,4 +1,4 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ require File.expand_path('boot', __dir__)
2
2
 
3
3
  require 'rails/all'
4
4
  require 'rails/test_unit/railtie'
@@ -1,5 +1,5 @@
1
1
  begin
2
- require File.expand_path('../../../../.bundle/environment', __FILE__)
2
+ require File.expand_path('../../../.bundle/environment', __dir__)
3
3
  rescue LoadError
4
4
  require 'rubygems'
5
5
  require 'bundler'
@@ -1,6 +1,6 @@
1
1
  # Load the rails application
2
- require File.expand_path('../application', __FILE__)
2
+ require File.expand_path('application', __dir__)
3
3
 
4
4
  # Initialize the rails application
5
- RailsApp::Application.config.root = File.expand_path('../..', __FILE__)
5
+ RailsApp::Application.config.root = File.expand_path('..', __dir__)
6
6
  RailsApp::Application.initialize!
@@ -5,6 +5,7 @@ require 'mock_app/config/environment'
5
5
  require 'rails/test_help'
6
6
  require 'minitest/autorun'
7
7
  require 'mocha/setup'
8
+ require 'cow_proxy'
8
9
 
9
10
  require 'minitest/reporters'
10
11
  Minitest::Reporters.use!
@@ -17,11 +18,17 @@ def load_schema
17
18
  end
18
19
  load_schema
19
20
 
21
+ ActiveScaffold.threadsafe!
22
+ # avoid freezing defaults so we can stubs in tests for testing with different defaults
23
+ class << ActiveScaffold::Config::Core
24
+ def freeze; end
25
+ end
26
+
20
27
  %w[model_stub const_mocker company].each do |file|
21
28
  require File.join(File.dirname(__FILE__), file)
22
29
  end
23
30
 
24
- I18n.backend.store_translations :en, YAML.load_file(File.expand_path('../../config/locales/en.yml', __FILE__))['en']
31
+ I18n.backend.store_translations :en, YAML.load_file(File.expand_path('../config/locales/en.yml', __dir__))['en']
25
32
 
26
33
  # rails 4.0
27
34
  unless defined? Minitest::Test
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.5
4
+ version: 3.6.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Many, see README
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-10 00:00:00.000000000 Z
11
+ date: 2019-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,20 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.5
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: 5.2.0
19
+ version: 4.2.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 4.0.5
30
- - - "<"
26
+ version: 4.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: cow_proxy
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
31
39
  - !ruby/object:Gem::Version
32
- version: 5.2.0
40
+ version: 0.2.0
33
41
  - !ruby/object:Gem::Dependency
34
42
  name: ice_nine
35
43
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +52,20 @@ dependencies:
44
52
  - - "~>"
45
53
  - !ruby/object:Gem::Version
46
54
  version: '0.11'
55
+ - !ruby/object:Gem::Dependency
56
+ name: request_store
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
47
69
  description: Save time and headaches, and create a more easily maintainable set of
48
70
  pages, with ActiveScaffold. ActiveScaffold handles all your CRUD (create, read,
49
71
  update, delete) user interface needs, leaving you more time to focus on more challenging
@@ -283,6 +305,8 @@ files:
283
305
  - lib/active_scaffold/extensions/action_controller_rescueing.rb
284
306
  - lib/active_scaffold/extensions/action_view_rendering.rb
285
307
  - lib/active_scaffold/extensions/connection_adapter.rb
308
+ - lib/active_scaffold/extensions/cow_proxy.rb
309
+ - lib/active_scaffold/extensions/ice_nine.rb
286
310
  - lib/active_scaffold/extensions/left_outer_joins.rb
287
311
  - lib/active_scaffold/extensions/localize.rb
288
312
  - lib/active_scaffold/extensions/name_option_for_datetime.rb
@@ -306,6 +330,7 @@ files:
306
330
  - lib/active_scaffold/marked_model.rb
307
331
  - lib/active_scaffold/orm_checks.rb
308
332
  - lib/active_scaffold/paginator.rb
333
+ - lib/active_scaffold/registry.rb
309
334
  - lib/active_scaffold/responds_to_parent.rb
310
335
  - lib/active_scaffold/tableless.rb
311
336
  - lib/active_scaffold/version.rb
@@ -422,15 +447,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
422
447
  requirements:
423
448
  - - ">="
424
449
  - !ruby/object:Gem::Version
425
- version: '2.0'
450
+ version: '2.3'
426
451
  required_rubygems_version: !ruby/object:Gem::Requirement
427
452
  requirements:
428
- - - ">="
453
+ - - ">"
429
454
  - !ruby/object:Gem::Version
430
- version: '0'
455
+ version: 1.3.1
431
456
  requirements: []
432
457
  rubyforge_project:
433
- rubygems_version: 2.7.9
458
+ rubygems_version: 2.7.8
434
459
  signing_key:
435
460
  specification_version: 4
436
461
  summary: Rails 4.x and 5.x versions of ActiveScaffold supporting prototype and jquery