active_scaffold 3.5.4 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{CHANGELOG → CHANGELOG.rdoc} +72 -0
- data/README.md +20 -8
- data/app/assets/javascripts/active_scaffold.js.erb +0 -1
- data/app/assets/javascripts/jquery/active_scaffold.js +98 -7
- data/app/assets/stylesheets/active_scaffold_colors.scss +1 -1
- data/app/assets/stylesheets/active_scaffold_layout.css +52 -29
- data/app/views/active_scaffold_overrides/_base_form.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_form.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_form_association.html.erb +2 -1
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +3 -2
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +9 -7
- data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_horizontal_subform_header.html.erb +2 -1
- data/app/views/active_scaffold_overrides/_list.html.erb +2 -1
- data/app/views/active_scaffold_overrides/_list_header.html.erb +5 -7
- data/app/views/active_scaffold_overrides/_list_messages.html.erb +1 -0
- data/app/views/active_scaffold_overrides/_list_record.html.erb +4 -5
- data/app/views/active_scaffold_overrides/_list_with_header.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_messages.html.erb +1 -0
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +4 -0
- data/app/views/active_scaffold_overrides/_render_field.js.erb +2 -1
- data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +2 -1
- data/app/views/active_scaffold_overrides/_show_columns.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_show_horizontal_record.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_update_calculations.js.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_column.js.erb +2 -2
- data/app/views/active_scaffold_overrides/_vertical_subform.html.erb +2 -2
- data/app/views/active_scaffold_overrides/action_confirmation.html.erb +2 -2
- data/app/views/active_scaffold_overrides/delete.html.erb +2 -2
- data/app/views/active_scaffold_overrides/on_action_update.js.erb +16 -6
- data/app/views/active_scaffold_overrides/on_update.js.erb +1 -1
- data/app/views/active_scaffold_overrides/row.js.erb +1 -1
- data/app/views/active_scaffold_overrides/update_column.js.erb +2 -2
- data/config/locales/de.yml +2 -1
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/fr.yml +2 -1
- data/config/locales/hu.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/lib/active_scaffold.rb +19 -16
- data/lib/active_scaffold/actions/common_search.rb +11 -8
- data/lib/active_scaffold/actions/core.rb +91 -70
- data/lib/active_scaffold/actions/create.rb +28 -28
- data/lib/active_scaffold/actions/delete.rb +3 -3
- data/lib/active_scaffold/actions/field_search.rb +53 -43
- data/lib/active_scaffold/actions/list.rb +111 -27
- data/lib/active_scaffold/actions/nested.rb +65 -48
- data/lib/active_scaffold/actions/search.rb +1 -1
- data/lib/active_scaffold/actions/show.rb +4 -4
- data/lib/active_scaffold/actions/subform.rb +23 -22
- data/lib/active_scaffold/actions/update.rb +96 -77
- data/lib/active_scaffold/active_record_permissions.rb +2 -11
- data/lib/active_scaffold/attribute_params.rb +102 -94
- data/lib/active_scaffold/bridges.rb +8 -8
- data/lib/active_scaffold/bridges/active_storage.rb +6 -0
- data/lib/active_scaffold/bridges/active_storage/active_storage_bridge.rb +34 -0
- data/lib/active_scaffold/bridges/active_storage/active_storage_helpers.rb +54 -0
- data/lib/active_scaffold/bridges/active_storage/form_ui.rb +22 -0
- data/lib/active_scaffold/bridges/active_storage/list_ui.rb +36 -0
- data/lib/active_scaffold/bridges/bitfields.rb +2 -1
- data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +12 -15
- data/lib/active_scaffold/bridges/bitfields/list_ui.rb +19 -0
- data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +9 -12
- data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +2 -2
- data/lib/active_scaffold/bridges/chosen/helpers.rb +7 -6
- data/lib/active_scaffold/bridges/date_picker/ext.rb +0 -13
- data/lib/active_scaffold/bridges/date_picker/helper.rb +49 -44
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +3 -3
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +3 -3
- data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +10 -7
- data/lib/active_scaffold/bridges/paper_trail.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/actions.rb +3 -1
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +2 -2
- data/lib/active_scaffold/bridges/record_select/helpers.rb +15 -17
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +20 -19
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -1
- data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +21 -4
- data/lib/active_scaffold/config/base.rb +133 -41
- data/lib/active_scaffold/config/core.rb +146 -18
- data/lib/active_scaffold/config/delete.rb +14 -1
- data/lib/active_scaffold/config/field_search.rb +7 -1
- data/lib/active_scaffold/config/form.rb +10 -1
- data/lib/active_scaffold/config/list.rb +39 -13
- data/lib/active_scaffold/config/mark.rb +4 -2
- data/lib/active_scaffold/config/nested.rb +16 -17
- data/lib/active_scaffold/config/search.rb +9 -0
- data/lib/active_scaffold/config/show.rb +4 -0
- data/lib/active_scaffold/config/update.rb +4 -0
- data/lib/active_scaffold/configurable.rb +14 -7
- data/lib/active_scaffold/constraints.rb +22 -20
- data/lib/active_scaffold/core.rb +67 -28
- data/lib/active_scaffold/data_structures/action_columns.rb +50 -59
- data/lib/active_scaffold/data_structures/action_link.rb +50 -20
- data/lib/active_scaffold/data_structures/action_links.rb +15 -13
- data/lib/active_scaffold/data_structures/association/abstract.rb +38 -15
- data/lib/active_scaffold/data_structures/association/active_mongoid.rb +2 -6
- data/lib/active_scaffold/data_structures/association/active_record.rb +6 -2
- data/lib/active_scaffold/data_structures/association/mongoid.rb +0 -3
- data/lib/active_scaffold/data_structures/column.rb +75 -66
- data/lib/active_scaffold/data_structures/columns.rb +3 -2
- data/lib/active_scaffold/data_structures/nested_info.rb +33 -19
- data/lib/active_scaffold/data_structures/set.rb +8 -0
- data/lib/active_scaffold/data_structures/sorting.rb +10 -2
- data/lib/active_scaffold/delayed_setup.rb +16 -5
- data/lib/active_scaffold/extensions/action_controller_rendering.rb +3 -2
- data/lib/active_scaffold/extensions/action_view_rendering.rb +93 -32
- data/lib/active_scaffold/extensions/cow_proxy.rb +95 -0
- data/lib/active_scaffold/extensions/ice_nine.rb +36 -0
- data/lib/active_scaffold/extensions/left_outer_joins.rb +8 -33
- data/lib/active_scaffold/extensions/localize.rb +3 -1
- data/lib/active_scaffold/extensions/routing_mapper.rb +6 -45
- data/lib/active_scaffold/extensions/to_label.rb +3 -2
- data/lib/active_scaffold/extensions/unsaved_record.rb +2 -4
- data/lib/active_scaffold/finder.rb +110 -77
- data/lib/active_scaffold/helpers/action_link_helpers.rb +62 -36
- data/lib/active_scaffold/helpers/association_helpers.rb +18 -16
- data/lib/active_scaffold/helpers/controller_helpers.rb +34 -10
- data/lib/active_scaffold/helpers/form_column_helpers.rb +196 -124
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -1
- data/lib/active_scaffold/helpers/id_helpers.rb +6 -2
- data/lib/active_scaffold/helpers/list_column_helpers.rb +90 -57
- data/lib/active_scaffold/helpers/pagination_helpers.rb +2 -2
- data/lib/active_scaffold/helpers/search_column_helpers.rb +29 -34
- data/lib/active_scaffold/helpers/show_column_helpers.rb +3 -5
- data/lib/active_scaffold/helpers/view_helpers.rb +39 -36
- data/lib/active_scaffold/marked_model.rb +2 -2
- data/lib/active_scaffold/orm_checks.rb +3 -7
- data/lib/active_scaffold/paginator.rb +7 -7
- data/lib/active_scaffold/registry.rb +33 -0
- data/lib/active_scaffold/responds_to_parent.rb +8 -11
- data/lib/active_scaffold/tableless.rb +82 -66
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/generators/active_scaffold/controller_generator.rb +2 -2
- data/lib/generators/active_scaffold/install_generator.rb +52 -4
- data/lib/generators/active_scaffold/resource_generator.rb +2 -2
- data/shoulda_macros/macros.rb +3 -1
- data/test/bridges/date_picker_test.rb +1 -2
- data/test/bridges/paperclip_test.rb +6 -6
- data/test/class_with_finder.rb +2 -2
- data/test/company.rb +4 -4
- data/test/config/create_test.rb +4 -2
- data/test/config/nested_test.rb +1 -1
- data/test/config/show_test.rb +1 -1
- data/test/config/update_test.rb +7 -6
- data/test/data_structures/action_columns_test.rb +2 -2
- data/test/data_structures/action_links_test.rb +1 -1
- data/test/data_structures/column_test.rb +3 -6
- data/test/data_structures/columns_test.rb +2 -2
- data/test/data_structures/sorting_test.rb +7 -0
- data/test/extensions/action_view_rendering_test.rb +20 -0
- data/test/extensions/active_record_test.rb +4 -4
- data/test/extensions/routing_mapper_test.rb +2 -2
- data/test/helpers/list_column_helpers_test.rb +3 -1
- data/test/misc/active_record_permissions_test.rb +3 -11
- data/test/misc/attribute_params_test.rb +12 -8
- data/test/misc/calculation_test.rb +1 -1
- data/test/misc/configurable_test.rb +10 -10
- data/test/misc/constraints_test.rb +2 -2
- data/test/misc/convert_numbers_format_test.rb +7 -3
- data/test/misc/lang_test.rb +1 -1
- data/test/misc/parse_datetime_test.rb +3 -4
- data/test/misc/tableless_test.rb +14 -0
- data/test/mock_app/Rakefile +1 -1
- data/test/mock_app/app/assets/config/manifest.js +0 -0
- data/test/mock_app/app/controllers/cars_controller.rb +1 -0
- data/test/mock_app/app/controllers/people_controller.rb +5 -1
- data/test/mock_app/app/controllers/roles_controller.rb +4 -0
- data/test/mock_app/app/views/active_scaffold_overrides/_form.html.erb +2 -0
- data/test/mock_app/app/views/active_scaffold_overrides/list.html.erb +2 -0
- data/test/mock_app/app/views/people/_first_name_form_column.html.erb +2 -0
- data/test/mock_app/app/views/people/_form.html.erb +2 -0
- data/test/mock_app/app/views/people/list.html.erb +2 -0
- data/test/mock_app/config/application.rb +2 -1
- data/test/mock_app/config/boot.rb +1 -1
- data/test/mock_app/config/environment.rb +2 -2
- data/test/mock_app/config/routes.rb +4 -1
- data/test/mock_app/db/schema.rb +2 -0
- data/test/performance/list_cars_performance_test.rb +34 -0
- data/test/performance/list_people_performance_test.rb +31 -0
- data/test/performance_test_help.rb +3 -0
- data/test/test_helper.rb +12 -4
- metadata +69 -18
- data/app/assets/javascripts/prototype/rico_corner.js +0 -370
- data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +0 -7
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
module ActiveScaffold
|
4
4
|
module Generators
|
5
|
-
class ControllerGenerator < Rails::Generators::NamedBase
|
5
|
+
class ControllerGenerator < Rails::Generators::NamedBase
|
6
6
|
include Rails::Generators::ResourceHelpers
|
7
7
|
|
8
|
-
source_root File.expand_path('
|
8
|
+
source_root File.expand_path('../templates', __dir__)
|
9
9
|
|
10
10
|
check_class_collision :suffix => 'Controller'
|
11
11
|
|
@@ -3,7 +3,7 @@ require 'rails/generators/base'
|
|
3
3
|
|
4
4
|
module ActiveScaffold
|
5
5
|
module Generators
|
6
|
-
class InstallGenerator < Rails::Generators::Base
|
6
|
+
class InstallGenerator < Rails::Generators::Base
|
7
7
|
desc 'Add concerns to routes and require lines to assets manifest files'
|
8
8
|
|
9
9
|
def add_concern_routes
|
@@ -14,18 +14,23 @@ module ActiveScaffold
|
|
14
14
|
def add_to_javascript_manifest
|
15
15
|
file = 'app/assets/javascripts/application.js'
|
16
16
|
unless File.exist?(file)
|
17
|
+
if Rails.version >= '6.0'
|
18
|
+
create_javascript_manifest file
|
19
|
+
return
|
20
|
+
end
|
17
21
|
say_status :missing, file, :red
|
18
22
|
return if options[:pretend]
|
19
23
|
raise Thor::Error, "JS file #{file} is required for ActiveScaffold"
|
20
24
|
end
|
21
25
|
original_js = File.binread(file)
|
22
26
|
if original_js.include?('require active_scaffold')
|
23
|
-
say_status('skipped',
|
27
|
+
say_status('skipped', "insert into #{file}", :yellow)
|
24
28
|
else
|
25
|
-
insert_into_file
|
29
|
+
insert_into_file file, after: %r{//= require +.*ujs['"]?\n} do
|
26
30
|
"//= require active_scaffold\n"
|
27
31
|
end
|
28
32
|
end
|
33
|
+
setup_jquery file, original_js
|
29
34
|
end
|
30
35
|
|
31
36
|
def add_to_stylesheet_manifest
|
@@ -35,11 +40,54 @@ module ActiveScaffold
|
|
35
40
|
if original_css =~ /require active_scaffold$/
|
36
41
|
say_status('skipped', 'insert into app/assets/stylesheets/application.css', :yellow)
|
37
42
|
else
|
38
|
-
insert_into_file 'app/assets/stylesheets/application.css', :
|
43
|
+
insert_into_file 'app/assets/stylesheets/application.css', before: %r{[ ]*\*/} do
|
39
44
|
" *= require active_scaffold\n"
|
40
45
|
end
|
41
46
|
end
|
42
47
|
end
|
48
|
+
|
49
|
+
protected
|
50
|
+
|
51
|
+
def create_javascript_manifest(file)
|
52
|
+
FileUtils.mkdir_p File.dirname(file)
|
53
|
+
File.open(file, 'w') do |f|
|
54
|
+
f << "// This is a manifest file that'll be compiled into application.js, which will include all the files
|
55
|
+
// listed below.
|
56
|
+
//
|
57
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
|
58
|
+
// vendor/assets/javascripts directory can be referenced here using a relative path.
|
59
|
+
//
|
60
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
61
|
+
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
62
|
+
//
|
63
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
64
|
+
// about supported directives.
|
65
|
+
//
|
66
|
+
//= require active_scaffold
|
67
|
+
"
|
68
|
+
say_status('create', file)
|
69
|
+
end
|
70
|
+
insert_into_file 'app/views/layouts/application.html.erb', after: /javascript_pack_tag 'application'.*\n/ do
|
71
|
+
" <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>\n"
|
72
|
+
end
|
73
|
+
append_to_file 'config/initializers/assets.rb' do
|
74
|
+
"Rails.application.config.assets.precompile += %w( application.js )\n"
|
75
|
+
end
|
76
|
+
setup_jquery file, where: 'active_scaffold'
|
77
|
+
end
|
78
|
+
|
79
|
+
def setup_jquery(file, original_js = nil, where: 'ujs')
|
80
|
+
original_js ||= File.binread(file)
|
81
|
+
if ActiveScaffold.js_framework == :jquery
|
82
|
+
unless original_js.include?('require jquery')
|
83
|
+
insert_into_file file, before: %r{//= require +.*#{where}['"]?\n} do
|
84
|
+
"//= require jquery\n"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
else
|
88
|
+
say_status('missing', 'no jquery-rails gem, load jquery in your layout, or add jquery-rails to Gemfile and add //= require jquery to application.js', :red)
|
89
|
+
end
|
90
|
+
end
|
43
91
|
end
|
44
92
|
end
|
45
93
|
end
|
@@ -3,7 +3,7 @@ require 'rails/generators/rails/resource/resource_generator'
|
|
3
3
|
|
4
4
|
module ActiveScaffold
|
5
5
|
module Generators
|
6
|
-
class ResourceGenerator < Rails::Generators::ResourceGenerator
|
6
|
+
class ResourceGenerator < Rails::Generators::ResourceGenerator
|
7
7
|
remove_hook_for :resource_controller
|
8
8
|
remove_hook_for :resource_route
|
9
9
|
remove_class_option :actions
|
@@ -46,7 +46,7 @@ module ActiveScaffold
|
|
46
46
|
routing_code << ' end' * class_path.size
|
47
47
|
log :route, routing_code
|
48
48
|
in_root do
|
49
|
-
inject_into_file 'config/routes.rb', " #{routing_code}\n",
|
49
|
+
inject_into_file 'config/routes.rb', " #{routing_code}\n", after: /^[ ]*concern :active_scaffold,.*\n/, verbose: false, force: true
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
data/shoulda_macros/macros.rb
CHANGED
@@ -127,7 +127,9 @@ class ActiveSupport::TestCase
|
|
127
127
|
script = script.gsub('\n', '\\\\\\n')
|
128
128
|
.gsub(/['"]/, '\\\\\\\\\&')
|
129
129
|
.gsub('</script>', '</scr"+"ipt>')
|
130
|
-
|
130
|
+
pre_regex = Regexp.quote("with(window.parent) { setTimeout(function() { window.eval('")
|
131
|
+
post_regex = Regexp.quote("'); if (typeof(loc) !== 'undefined') loc.replace('about:blank'); }, 1) };")
|
132
|
+
assert_select 'script[type=text/javascript]', Regexp.new('.*' + pre_regex + script + post_regex + '.*')
|
131
133
|
end
|
132
134
|
end
|
133
135
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'active_scaffold_config_mock'
|
3
|
-
require File.
|
4
|
-
# require File.join(File.dirname(__FILE__), '../../lib/active_scaffold/bridges/date_picker/helper')
|
3
|
+
require File.expand_path('../../lib/active_scaffold/bridges/date_picker/ext', __dir__)
|
5
4
|
|
6
5
|
class DatePickerTest < ActionView::TestCase
|
7
6
|
include ActiveScaffold::Helpers::ViewHelpers
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require File.expand_path('
|
3
|
-
require File.expand_path('
|
4
|
-
require File.expand_path('
|
5
|
-
require File.expand_path('
|
2
|
+
require File.expand_path('../../lib/active_scaffold/bridges/paperclip/paperclip_bridge', __dir__)
|
3
|
+
require File.expand_path('../../lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers', __dir__)
|
4
|
+
require File.expand_path('../../lib/active_scaffold/bridges/paperclip/form_ui', __dir__)
|
5
|
+
require File.expand_path('../../lib/active_scaffold/bridges/paperclip/list_ui', __dir__)
|
6
6
|
|
7
7
|
class PaperclipCore < ActiveScaffold::Config::Core
|
8
8
|
include ActiveScaffold::Bridges::Paperclip::PaperclipBridge
|
@@ -16,7 +16,7 @@ class PaperclipTest < ActionView::TestCase
|
|
16
16
|
config = PaperclipCore.new(:company)
|
17
17
|
refute config.create.multipart?
|
18
18
|
refute config.update.multipart?
|
19
|
-
refute
|
19
|
+
refute(config.columns.any? { |column| column.form_ui == :paperclip })
|
20
20
|
end
|
21
21
|
|
22
22
|
def test_initialization
|
@@ -51,7 +51,7 @@ class PaperclipTest < ActionView::TestCase
|
|
51
51
|
assert_dom_equal '<a href="/system/file" target="_blank">file</a>', active_scaffold_column_paperclip(company, config.columns[:logo])
|
52
52
|
|
53
53
|
company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => {:thumbnail => '40x40'}))
|
54
|
-
assert_dom_equal '<a href="/system/file" target="_blank"><img src="/system/file" border="0"
|
54
|
+
assert_dom_equal '<a href="/system/file" target="_blank"><img src="/system/file" border="0"/></a>', active_scaffold_column_paperclip(company, config.columns[:logo])
|
55
55
|
end
|
56
56
|
|
57
57
|
def test_form_ui
|
data/test/class_with_finder.rb
CHANGED
data/test/company.rb
CHANGED
@@ -37,8 +37,8 @@ class Company < ActiveRecord::Base
|
|
37
37
|
end
|
38
38
|
|
39
39
|
# not the real signature of the method, but forgive me
|
40
|
-
def self.before_destroy(
|
41
|
-
@@before =
|
40
|
+
def self.before_destroy(string = nil)
|
41
|
+
@@before = string
|
42
42
|
end
|
43
43
|
|
44
44
|
if respond_to?(:create_reflection)
|
@@ -53,11 +53,11 @@ class Company < ActiveRecord::Base
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
def self.has_many(association_id, options = {})
|
56
|
+
def self.has_many(association_id, options = {}) # rubocop:disable Naming/PredicateName
|
57
57
|
create_reflection(:has_many, association_id, nil, options, self)
|
58
58
|
end
|
59
59
|
|
60
|
-
def self.has_one(association_id, options = {})
|
60
|
+
def self.has_one(association_id, options = {}) # rubocop:disable Naming/PredicateName
|
61
61
|
create_reflection(:has_one, association_id, nil, options, self)
|
62
62
|
end
|
63
63
|
|
data/test/config/create_test.rb
CHANGED
@@ -2,6 +2,8 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Config
|
4
4
|
class CreateTest < MiniTest::Test
|
5
|
+
include ActiveScaffold::Helpers::ControllerHelpers
|
6
|
+
|
5
7
|
def setup
|
6
8
|
@config = ActiveScaffold::Config::Core.new :model_stub
|
7
9
|
@default_link = @config.create.link
|
@@ -12,7 +14,7 @@ module Config
|
|
12
14
|
end
|
13
15
|
|
14
16
|
def test_default_columns
|
15
|
-
assert_equal %i[a d other_model other_models], @config.create.columns.
|
17
|
+
assert_equal %i[a d other_model other_models], @config.create.columns.visible_columns_names
|
16
18
|
end
|
17
19
|
|
18
20
|
def test_default_options
|
@@ -52,7 +54,7 @@ module Config
|
|
52
54
|
label = 'create new monkeys'
|
53
55
|
@config.create.label = label
|
54
56
|
assert_equal label, @config.create.label
|
55
|
-
I18n.backend.store_translations :en, :active_scaffold => {:create_new_model => 'Create new
|
57
|
+
I18n.backend.store_translations :en, :active_scaffold => {:create_new_model => 'Create new %<model>s'}
|
56
58
|
@config.create.label = :create_new_model
|
57
59
|
assert_equal 'Create new Model stub', @config.create.label
|
58
60
|
end
|
data/test/config/nested_test.rb
CHANGED
@@ -20,7 +20,7 @@ module Config
|
|
20
20
|
label = 'nested monkeys'
|
21
21
|
@config.nested.label = label
|
22
22
|
assert_equal label, @config.nested.label
|
23
|
-
I18n.backend.store_translations :en, :active_scaffold => {:test_create_model => 'Add new
|
23
|
+
I18n.backend.store_translations :en, :active_scaffold => {:test_create_model => 'Add new %<model>s'}
|
24
24
|
@config.nested.label = :test_create_model
|
25
25
|
assert_equal 'Add new Model stub', @config.nested.label
|
26
26
|
end
|
data/test/config/show_test.rb
CHANGED
@@ -36,7 +36,7 @@ module Config
|
|
36
36
|
label = 'show monkeys'
|
37
37
|
@config.show.label = label
|
38
38
|
assert_equal label, @config.show.label
|
39
|
-
I18n.backend.store_translations :en, :active_scaffold => {:view_model => 'View
|
39
|
+
I18n.backend.store_translations :en, :active_scaffold => {:view_model => 'View %<model>s'}
|
40
40
|
@config.show.label = :view_model
|
41
41
|
assert_equal 'View Model stub', @config.show.label
|
42
42
|
assert_equal 'View record', @config.show.label('record')
|
data/test/config/update_test.rb
CHANGED
@@ -2,20 +2,20 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
module Config
|
4
4
|
class UpdateTest < MiniTest::Test
|
5
|
+
include ActiveScaffold::Helpers::ControllerHelpers
|
6
|
+
|
5
7
|
def setup
|
6
8
|
@config = ActiveScaffold::Config::Core.new :model_stub
|
7
9
|
end
|
8
10
|
|
9
11
|
def test_copy_columns_from_create
|
10
12
|
@config.create.columns = %i[a c d]
|
11
|
-
assert_equal %i[a d], @config.create.columns.
|
13
|
+
assert_equal %i[a d], @config.create.columns.visible_columns_names
|
12
14
|
@config.update.columns = @config.create.columns
|
13
|
-
@config.
|
14
|
-
assert_equal %i[a c d], @config.update.columns.names
|
15
|
+
assert_equal %i[a c d], @config.update.columns.visible_columns_names
|
15
16
|
end
|
16
17
|
|
17
18
|
def test__params_for_columns__returns_all_params
|
18
|
-
@config._load_action_columns
|
19
19
|
@config.columns[:a].params.add :keep_a, :a_temp
|
20
20
|
assert @config.columns[:a].params.include?(:keep_a)
|
21
21
|
assert @config.columns[:a].params.include?(:a_temp)
|
@@ -33,7 +33,8 @@ module Config
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_nested_links
|
36
|
-
old
|
36
|
+
old = @config.update.nested_links
|
37
|
+
@config.update.nested_links = true
|
37
38
|
assert @config.update.nested_links
|
38
39
|
@config.update.nested_links = old
|
39
40
|
end
|
@@ -42,7 +43,7 @@ module Config
|
|
42
43
|
label = 'update new monkeys'
|
43
44
|
@config.update.label = label
|
44
45
|
assert_equal label, @config.update.label
|
45
|
-
I18n.backend.store_translations :en, :active_scaffold => {:change_model => 'Change
|
46
|
+
I18n.backend.store_translations :en, :active_scaffold => {:change_model => 'Change %<model>s'}
|
46
47
|
@config.update.label = :change_model
|
47
48
|
assert_equal 'Change Model stub', @config.update.label
|
48
49
|
assert_equal 'Change record', @config.update.label('record')
|
@@ -71,12 +71,12 @@ class ActionColumnsTest < MiniTest::Test
|
|
71
71
|
# first, use @columns.add directly
|
72
72
|
@c2 = ActiveScaffold::DataStructures::ActionColumns.new
|
73
73
|
@columns.add @c2
|
74
|
-
assert
|
74
|
+
assert(@columns.any? { |c| c == @c2 })
|
75
75
|
|
76
76
|
# then use the shortcut
|
77
77
|
@columns.add_subgroup 'foo' do
|
78
78
|
end
|
79
|
-
assert
|
79
|
+
assert(@columns.any? { |c| c.respond_to?(:label) && c.label == 'foo' })
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_block_config
|
@@ -16,9 +16,6 @@ class ColumnTest < MiniTest::Test
|
|
16
16
|
def test_basic_properties
|
17
17
|
# test that it was set during initialization
|
18
18
|
assert_equal @column.name, :a
|
19
|
-
# test that we can change it
|
20
|
-
@column.name = :b
|
21
|
-
assert_equal @column.name, :b
|
22
19
|
|
23
20
|
# label
|
24
21
|
@column.label = 'foo'
|
@@ -74,7 +71,7 @@ class ColumnTest < MiniTest::Test
|
|
74
71
|
# comparison with different object of same type
|
75
72
|
column2 = ActiveScaffold::DataStructures::Column.new(:fake, ModelStub)
|
76
73
|
refute_equal @column, column2
|
77
|
-
column2
|
74
|
+
column2 = ActiveScaffold::DataStructures::Column.new(:a, ModelStub)
|
78
75
|
assert_equal @column, column2
|
79
76
|
|
80
77
|
# special comparisons
|
@@ -152,12 +149,12 @@ class ColumnTest < MiniTest::Test
|
|
152
149
|
def test_config_block
|
153
150
|
@column.configure do |config|
|
154
151
|
# we can use the config object
|
155
|
-
config.
|
152
|
+
config.form_ui = :select
|
156
153
|
# or not
|
157
154
|
self.label = 'hello'
|
158
155
|
end
|
159
156
|
|
160
|
-
assert_equal
|
157
|
+
assert_equal :select, @column.form_ui
|
161
158
|
assert_equal 'hello', @column.label
|
162
159
|
end
|
163
160
|
|
@@ -41,8 +41,8 @@ class ColumnsTest < MiniTest::Test
|
|
41
41
|
|
42
42
|
# test the collection finders
|
43
43
|
found = @columns.find_by_names(:a, :b)
|
44
|
-
assert
|
45
|
-
assert
|
44
|
+
assert(found.any? { |c| c.name == :a })
|
45
|
+
assert(found.any? { |c| c.name == :b })
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_each
|
@@ -64,6 +64,13 @@ class SortingTest < MiniTest::Test
|
|
64
64
|
assert @sorting.sorts_on?(:b)
|
65
65
|
assert_equal 'ASC', @sorting.direction_of(:b)
|
66
66
|
|
67
|
+
@sorting.set({a: 'DESC'}, {b: 'ASC'})
|
68
|
+
assert @sorting.instance_variable_get('@clauses').size == 2
|
69
|
+
assert @sorting.sorts_on?(:a)
|
70
|
+
assert_equal 'DESC', @sorting.direction_of(:a)
|
71
|
+
assert @sorting.sorts_on?(:b)
|
72
|
+
assert_equal 'ASC', @sorting.direction_of(:b)
|
73
|
+
|
67
74
|
@sorting.set [:a, 'DESC'], [:b, 'ASC']
|
68
75
|
assert @sorting.instance_variable_get('@clauses').size == 2
|
69
76
|
assert @sorting.sorts_on?(:a)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ActionViewRenderingTest < ActionController::TestCase
|
4
|
+
setup do
|
5
|
+
@controller = PeopleController.new
|
6
|
+
end
|
7
|
+
|
8
|
+
test 'render :super twice' do
|
9
|
+
get :index
|
10
|
+
assert_select '#controller', 1
|
11
|
+
assert_select '#app', 1
|
12
|
+
end
|
13
|
+
|
14
|
+
test 'render partial override with render :super twice' do
|
15
|
+
get :new
|
16
|
+
assert_select '#first_name_field', 1
|
17
|
+
assert_select '#controller_form', 1
|
18
|
+
assert_select '#app_form', 1
|
19
|
+
end
|
20
|
+
end
|
@@ -14,7 +14,7 @@ class ActiveRecordTest < MiniTest::Test
|
|
14
14
|
'to_s'
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
17
|
+
RequestStore.clear!
|
18
18
|
assert_equal 'to_s', @record.to_label
|
19
19
|
|
20
20
|
class << @record
|
@@ -22,7 +22,7 @@ class ActiveRecordTest < MiniTest::Test
|
|
22
22
|
'title'
|
23
23
|
end
|
24
24
|
end
|
25
|
-
|
25
|
+
RequestStore.clear!
|
26
26
|
assert_equal 'title', @record.to_label
|
27
27
|
|
28
28
|
class << @record
|
@@ -30,7 +30,7 @@ class ActiveRecordTest < MiniTest::Test
|
|
30
30
|
'label'
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
33
|
+
RequestStore.clear!
|
34
34
|
assert_equal 'label', @record.to_label
|
35
35
|
|
36
36
|
class << @record
|
@@ -38,7 +38,7 @@ class ActiveRecordTest < MiniTest::Test
|
|
38
38
|
'name'
|
39
39
|
end
|
40
40
|
end
|
41
|
-
|
41
|
+
RequestStore.clear!
|
42
42
|
assert_equal 'name', @record.to_label
|
43
43
|
end
|
44
44
|
end
|