active_scaffold 4.3.1 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +26 -1
- data/README.md +1 -1
- data/app/assets/javascripts/active_scaffold/active_scaffold.js +107 -16
- data/app/assets/javascripts/active_scaffold/draggable_lists.js +4 -3
- data/app/assets/javascripts/active_scaffold/load.js +20 -5
- data/app/assets/stylesheets/active_scaffold/_images.scss +53 -1
- data/app/assets/stylesheets/active_scaffold/_layout.scss +1 -66
- data/app/views/active_scaffold_overrides/_add_existing_form.html.erb +17 -11
- data/app/views/active_scaffold_overrides/_base_form.html.erb +29 -19
- data/app/views/active_scaffold_overrides/_field_search.html.erb +9 -9
- data/app/views/active_scaffold_overrides/_field_search_columns.html.erb +29 -33
- data/app/views/active_scaffold_overrides/_form.html.erb +43 -34
- data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +20 -16
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +3 -4
- data/app/views/active_scaffold_overrides/_horizontal_subform_header.html.erb +2 -1
- data/app/views/active_scaffold_overrides/_list.html.erb +6 -4
- data/app/views/active_scaffold_overrides/_list_calculations.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_list_header.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_list_messages.html.erb +19 -19
- data/app/views/active_scaffold_overrides/_list_messages_content.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_list_pagination.html.erb +7 -5
- data/app/views/active_scaffold_overrides/_list_pagination_links.html.erb +5 -3
- data/app/views/active_scaffold_overrides/_list_record.html.erb +13 -8
- data/app/views/active_scaffold_overrides/_list_with_header.html.erb +8 -8
- data/app/views/active_scaffold_overrides/_messages.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_render_field.js.erb +8 -11
- data/app/views/active_scaffold_overrides/_search.html.erb +7 -6
- data/app/views/active_scaffold_overrides/_show.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_show_actions.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_show_columns.html.erb +28 -30
- data/app/views/active_scaffold_overrides/add_existing.js.erb +7 -4
- data/app/views/active_scaffold_overrides/add_tab.js.erb +2 -3
- data/app/views/active_scaffold_overrides/render_field.js.erb +1 -1
- data/config/locales/de.yml +2 -1
- data/config/locales/en.yml +33 -32
- data/config/locales/es.yml +15 -14
- data/config/locales/fr.yml +3 -2
- data/config/locales/hu.yml +3 -2
- data/config/locales/ja.yml +2 -1
- data/config/locales/ro.yml +169 -0
- data/config/locales/ru.yml +8 -7
- data/config/locales/ta.yml +7 -6
- data/config/locales/zh_Hans.yml +14 -13
- data/lib/active_scaffold/actions/common_search.rb +1 -14
- data/lib/active_scaffold/actions/core.rb +55 -16
- data/lib/active_scaffold/actions/field_search.rb +2 -2
- data/lib/active_scaffold/actions/list.rb +35 -13
- data/lib/active_scaffold/actions/nested.rb +31 -7
- data/lib/active_scaffold/actions/show.rb +1 -1
- data/lib/active_scaffold/active_record_permissions.rb +1 -1
- data/lib/active_scaffold/attribute_params.rb +2 -1
- data/lib/active_scaffold/bridges/date_picker/helper.rb +14 -0
- data/lib/active_scaffold/bridges/date_picker.rb +10 -0
- data/lib/active_scaffold/config/list.rb +10 -1
- data/lib/active_scaffold/core.rb +9 -6
- data/lib/active_scaffold/data_structures/action_columns.rb +2 -0
- data/lib/active_scaffold/data_structures/column.rb +27 -6
- data/lib/active_scaffold/data_structures/filter.rb +4 -0
- data/lib/active_scaffold/data_structures/nested_info.rb +8 -1
- data/lib/active_scaffold/data_structures/sorting.rb +1 -1
- data/lib/active_scaffold/extensions/action_view_rendering.rb +1 -1
- data/lib/active_scaffold/finder.rb +66 -21
- data/lib/active_scaffold/helpers/action_link_helpers.rb +43 -18
- data/lib/active_scaffold/helpers/assets_helpers.rb +4 -4
- data/lib/active_scaffold/helpers/filter_helpers.rb +3 -3
- data/lib/active_scaffold/helpers/form_column_helpers.rb +34 -22
- data/lib/active_scaffold/helpers/form_ui_helpers.rb +15 -10
- data/lib/active_scaffold/helpers/framework_ui_helpers.rb +22 -0
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -0
- data/lib/active_scaffold/helpers/list_column_helpers.rb +19 -0
- data/lib/active_scaffold/helpers/pagination_helpers.rb +28 -7
- data/lib/active_scaffold/helpers/search_column_helpers.rb +32 -5
- data/lib/active_scaffold/helpers/tabs_helpers.rb +4 -6
- data/lib/active_scaffold/helpers/view_helpers.rb +12 -0
- data/lib/active_scaffold/tableless.rb +11 -8
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/active_scaffold.rb +169 -0
- data/lib/tasks/bundle.rake +2 -1
- data/lib/tasks/mock_app.rake +43 -0
- metadata +20 -7
- data/shoulda_macros/macros.rb +0 -145
metadata
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_scaffold
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Many, see README
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: html_attrs
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.1'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.1'
|
|
13
26
|
- !ruby/object:Gem::Dependency
|
|
14
27
|
name: ice_nine
|
|
15
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -190,6 +203,7 @@ files:
|
|
|
190
203
|
- config/locales/fr.yml
|
|
191
204
|
- config/locales/hu.yml
|
|
192
205
|
- config/locales/ja.yml
|
|
206
|
+
- config/locales/ro.yml
|
|
193
207
|
- config/locales/ru.yml
|
|
194
208
|
- config/locales/ta.yml
|
|
195
209
|
- config/locales/zh_Hans.yml
|
|
@@ -328,6 +342,7 @@ files:
|
|
|
328
342
|
- lib/active_scaffold/helpers/filter_helpers.rb
|
|
329
343
|
- lib/active_scaffold/helpers/form_column_helpers.rb
|
|
330
344
|
- lib/active_scaffold/helpers/form_ui_helpers.rb
|
|
345
|
+
- lib/active_scaffold/helpers/framework_ui_helpers.rb
|
|
331
346
|
- lib/active_scaffold/helpers/human_condition_helpers.rb
|
|
332
347
|
- lib/active_scaffold/helpers/id_helpers.rb
|
|
333
348
|
- lib/active_scaffold/helpers/list_column_helpers.rb
|
|
@@ -356,8 +371,8 @@ files:
|
|
|
356
371
|
- lib/tasks/active_scaffold/assets.rake
|
|
357
372
|
- lib/tasks/brakeman.rake
|
|
358
373
|
- lib/tasks/bundle.rake
|
|
374
|
+
- lib/tasks/mock_app.rake
|
|
359
375
|
- public/blank.html
|
|
360
|
-
- shoulda_macros/macros.rb
|
|
361
376
|
- vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png
|
|
362
377
|
- vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png
|
|
363
378
|
- vendor/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png
|
|
@@ -383,7 +398,6 @@ licenses:
|
|
|
383
398
|
- MIT
|
|
384
399
|
metadata:
|
|
385
400
|
rubygems_mfa_required: 'true'
|
|
386
|
-
post_install_message:
|
|
387
401
|
rdoc_options: []
|
|
388
402
|
require_paths:
|
|
389
403
|
- lib
|
|
@@ -398,8 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
398
412
|
- !ruby/object:Gem::Version
|
|
399
413
|
version: '0'
|
|
400
414
|
requirements: []
|
|
401
|
-
rubygems_version: 3.
|
|
402
|
-
signing_key:
|
|
415
|
+
rubygems_version: 3.6.9
|
|
403
416
|
specification_version: 4
|
|
404
417
|
summary: Rails 4.x and 5.x versions of ActiveScaffold supporting prototype and jquery
|
|
405
418
|
test_files: []
|
data/shoulda_macros/macros.rb
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class ActiveSupport::TestCase
|
|
4
|
-
def self.should_have_columns_in(action, *columns)
|
|
5
|
-
should "have #{columns.to_sentence} columns in #{action}" do
|
|
6
|
-
assert_equal columns, column_names(action)
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def self.should_include_columns_in(action, *columns)
|
|
11
|
-
should "include #{columns.to_sentence} columns in #{action}" do
|
|
12
|
-
action_columns = column_names(action)
|
|
13
|
-
columns.each do |column|
|
|
14
|
-
assert action_columns.include?(column.to_sym), "#{column} is not included in #{action}"
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def self.should_not_include_columns_in(action, *columns)
|
|
20
|
-
should "not include #{columns.to_sentence} columns in #{action}" do
|
|
21
|
-
action_columns = column_names(action)
|
|
22
|
-
columns.each do |column|
|
|
23
|
-
assert action_columns.exclude?(column.to_sym), "#{column} is included in #{action}"
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def self.should_render_as_form_ui(column_name, form_ui)
|
|
29
|
-
before_block = lambda do
|
|
30
|
-
@rendered_columns = []
|
|
31
|
-
@controller.view_context_class.any_instance.expects(:"active_scaffold_input_#{form_ui}").at_least_once.with do |column, _|
|
|
32
|
-
@rendered_columns << column.name
|
|
33
|
-
true
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
should "render column #{column_name} as #{form_ui} form_ui", before: before_block do
|
|
37
|
-
assert_equal form_ui, @controller.active_scaffold_config.columns[column_name].form_ui
|
|
38
|
-
assert @rendered_columns.include?(column_name)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def self.should_render_with_options_for_select(column_name, *options)
|
|
43
|
-
should "render column #{column_name} with options for select" do
|
|
44
|
-
converting_sort = ->(a, b) { a.to_s <=> b.to_s }
|
|
45
|
-
assert_equal options.sort(&converting_sort), @controller.active_scaffold_config.columns[column_name].options[:options].sort(&converting_sort)
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def self.should_render_as_form_override(column_name)
|
|
50
|
-
should "render column #{column_name} as form override" do
|
|
51
|
-
column = @controller.active_scaffold_config.columns[column_name]
|
|
52
|
-
assert @response.template.override_form_field?(column)
|
|
53
|
-
assert_template partial: "_#{column_name}_form_column", count: 0
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def self.should_render_as_form_partial_override(column_name)
|
|
58
|
-
should "render column #{column_name} as form partial override" do
|
|
59
|
-
assert_template partial: "_#{column_name}_form_column"
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def self.should_render_as_form_hidden(column_name)
|
|
64
|
-
before_block = lambda do
|
|
65
|
-
@rendered_columns = []
|
|
66
|
-
@controller.view_context_class.any_instance.expects(:hidden_field).at_least_once.with do |_, method, _|
|
|
67
|
-
@rendered_columns << method
|
|
68
|
-
true
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
should "render column #{column_name} as form hidden", before: before_block do
|
|
72
|
-
assert_template partial: '_form_hidden_attribute'
|
|
73
|
-
assert @rendered_columns.include?(column_name)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def self.should_render_as_list_ui(column_name, list_ui)
|
|
78
|
-
before_block = lambda do
|
|
79
|
-
@rendered_columns = []
|
|
80
|
-
@controller.view_context_class.any_instance.expects(:"active_scaffold_column_#{list_ui}").at_least_once.with do |column, _|
|
|
81
|
-
@rendered_columns << column.name
|
|
82
|
-
true
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
should "render column #{column_name} as #{list_ui} list_ui", before: before_block do
|
|
86
|
-
assert_equal list_ui, @controller.active_scaffold_config.columns[column_name].list_ui
|
|
87
|
-
assert @rendered_columns.include?(column_name)
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def self.should_render_as_field_override(column_name)
|
|
92
|
-
should "render column #{column_name} as field override" do
|
|
93
|
-
column = @controller.active_scaffold_config.columns[column_name]
|
|
94
|
-
assert @response.template.override_form_field?(column)
|
|
95
|
-
assert_template partial: "_#{column_name}_column", count: 0
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def self.should_render_as_field_partial_override(column_name)
|
|
100
|
-
should "render column #{column_name} as field partial override" do
|
|
101
|
-
assert_template partial: "_#{column_name}_column"
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def self.should_render_as_inplace_edit(column_name)
|
|
106
|
-
before_block = lambda do
|
|
107
|
-
@column = @controller.active_scaffold_config.columns[column_name]
|
|
108
|
-
@rendered_columns = []
|
|
109
|
-
method = @column.list_ui == :checkbox ? :format_column_checkbox : :active_scaffold_inplace_edit
|
|
110
|
-
@controller.view_context_class.any_instance.expects(method).at_least_once.with do |_, column, _|
|
|
111
|
-
@rendered_columns << column.name
|
|
112
|
-
true
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
should "render column #{column_name} as inplace edit", before: before_block do
|
|
116
|
-
assert @column.inplace_edit
|
|
117
|
-
assert @rendered_columns.include?(column_name)
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def self.should_respond_to_parent_redirecting_to(description, &block)
|
|
122
|
-
should_respond_to_parent("redirecting to #{description}") { "document.location.href = \"#{instance_eval(&block)}\"" }
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def self.should_respond_to_parent(description = nil, &block)
|
|
126
|
-
should "respond to parent #{description}" do
|
|
127
|
-
script = block ? instance_eval(&block) : /.*/
|
|
128
|
-
script = script.is_a?(Regexp) ? script.source : Regexp.quote(script)
|
|
129
|
-
script = script.gsub('\n', '\\\\\\n')
|
|
130
|
-
.gsub(/['"]/, '\\\\\\\\\&')
|
|
131
|
-
.gsub('</script>', '</scr"+"ipt>')
|
|
132
|
-
pre_regex = Regexp.quote("with(window.parent) { setTimeout(function() { window.eval('")
|
|
133
|
-
post_regex = Regexp.quote("'); if (typeof(loc) !== 'undefined') loc.replace('about:blank'); }, 1) };")
|
|
134
|
-
assert_select 'script[type=text/javascript]', Regexp.new(".*#{pre_regex}#{script}#{post_regex}.*")
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
private
|
|
139
|
-
|
|
140
|
-
def column_names(action)
|
|
141
|
-
columns = []
|
|
142
|
-
@controller.active_scaffold_config.send(action).columns.each(flatten: true) { |col| columns << col.name }
|
|
143
|
-
columns
|
|
144
|
-
end
|
|
145
|
-
end
|