active_scaffold 4.2.2 → 4.3.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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.rdoc +22 -0
  3. data/README.md +108 -7
  4. data/app/assets/javascripts/{jquery → active_scaffold}/active_scaffold.js +759 -762
  5. data/app/assets/javascripts/{jquery/date_picker_bridge.js.erb → active_scaffold/date_picker_bridge.js} +0 -3
  6. data/app/assets/javascripts/active_scaffold/load.js +102 -0
  7. data/app/assets/javascripts/active_scaffold.js.erb +3 -27
  8. data/app/assets/stylesheets/active_scaffold/_colours.scss +330 -0
  9. data/app/assets/stylesheets/active_scaffold/_images.scss +65 -0
  10. data/app/assets/stylesheets/{active_scaffold_layout.scss → active_scaffold/_layout.scss} +21 -1
  11. data/app/assets/stylesheets/active_scaffold/_variables.scss +194 -0
  12. data/app/assets/stylesheets/active_scaffold/core.scss +15 -0
  13. data/app/assets/stylesheets/active_scaffold.scss.erb +16 -0
  14. data/app/views/active_scaffold_overrides/_field_search_columns.html.erb +8 -0
  15. data/app/views/active_scaffold_overrides/_form.html.erb +8 -0
  16. data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -1
  17. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +4 -2
  18. data/app/views/active_scaffold_overrides/_show_association.html.erb +2 -1
  19. data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +2 -2
  20. data/app/views/active_scaffold_overrides/_show_association_vertical.html.erb +1 -1
  21. data/app/views/active_scaffold_overrides/edit_associated.js.erb +10 -8
  22. data/lib/active_scaffold/actions/core.rb +34 -3
  23. data/lib/active_scaffold/assets/css_deps_generator.rb +42 -0
  24. data/lib/active_scaffold/assets/jquery_ui_manifest.rb +77 -0
  25. data/lib/active_scaffold/assets/jquery_ui_theme_generator.rb +102 -0
  26. data/lib/active_scaffold/assets.rb +109 -0
  27. data/lib/active_scaffold/attribute_params.rb +11 -2
  28. data/lib/active_scaffold/bridges/active_storage/form_ui.rb +1 -1
  29. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +1 -1
  30. data/lib/active_scaffold/bridges/chosen.rb +1 -1
  31. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +1 -1
  32. data/lib/active_scaffold/bridges/file_column/form_ui.rb +1 -1
  33. data/lib/active_scaffold/bridges/logical_query_parser/keyword_query_parser.rb +23 -0
  34. data/lib/active_scaffold/bridges/logical_query_parser.rb +3 -2
  35. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +1 -1
  36. data/lib/active_scaffold/bridges/record_select/helpers.rb +1 -1
  37. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +1 -0
  38. data/lib/active_scaffold/bridges/tiny_mce.rb +6 -1
  39. data/lib/active_scaffold/bridges.rb +7 -0
  40. data/lib/active_scaffold/config/core.rb +7 -3
  41. data/lib/active_scaffold/constraints.rb +37 -32
  42. data/lib/active_scaffold/data_structures/action_columns.rb +66 -0
  43. data/lib/active_scaffold/data_structures/bridge.rb +2 -0
  44. data/lib/active_scaffold/data_structures/column.rb +4 -1
  45. data/lib/active_scaffold/engine.rb +40 -0
  46. data/lib/active_scaffold/finder.rb +10 -7
  47. data/lib/active_scaffold/helpers/assets_helpers.rb +39 -0
  48. data/lib/active_scaffold/helpers/controller_helpers.rb +1 -1
  49. data/lib/active_scaffold/helpers/form_column_helpers.rb +57 -532
  50. data/lib/active_scaffold/helpers/form_ui_helpers.rb +530 -0
  51. data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -0
  52. data/lib/active_scaffold/helpers/list_column_helpers.rb +31 -11
  53. data/lib/active_scaffold/helpers/search_column_helpers.rb +7 -14
  54. data/lib/active_scaffold/helpers/show_column_helpers.rb +4 -2
  55. data/lib/active_scaffold/helpers/view_helpers.rb +12 -0
  56. data/lib/active_scaffold/railties/tasks.rake +10 -0
  57. data/lib/active_scaffold/testing/assert_embedded_load.rb +33 -0
  58. data/lib/active_scaffold/version.rb +2 -2
  59. data/lib/active_scaffold.rb +7 -2
  60. data/lib/tasks/active_scaffold/assets.rake +42 -0
  61. data/lib/tasks/bundle.rake +25 -0
  62. data/vendor/assets/stylesheets/{jquery-ui-theme.css.erb → jquery-ui-theme.css} +17 -17
  63. metadata +33 -20
  64. data/app/assets/stylesheets/active_scaffold.scss +0 -424
  65. data/app/assets/stylesheets/active_scaffold_extensions.css.erb +0 -2
  66. data/app/assets/stylesheets/active_scaffold_images.scss +0 -65
  67. data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +0 -13
  68. /data/app/assets/javascripts/{jquery → active_scaffold}/active_scaffold_chosen.js +0 -0
  69. /data/app/assets/javascripts/{jquery → active_scaffold}/draggable_lists.js +0 -0
  70. /data/app/assets/javascripts/{jquery → active_scaffold}/jquery.editinplace.js +0 -0
  71. /data/app/assets/javascripts/{jquery → active_scaffold}/tiny_mce_bridge.js +0 -0
@@ -22,6 +22,8 @@ module ActiveScaffold
22
22
  else
23
23
  get_column_value(value_record, column)
24
24
  end
25
+ rescue StandardError => e
26
+ handle_exception_on_column(e, column, record)
25
27
  end
26
28
 
27
29
  def active_scaffold_show_text(record, column, ui_options: column.options)
@@ -31,14 +33,14 @@ module ActiveScaffold
31
33
  def active_scaffold_show_horizontal(record, column, ui_options: column.options)
32
34
  raise ArgumentError, ':horizontal show_ui must be used on association column' unless column.association
33
35
 
34
- vars = {column: column, parent_record: record, show_partial: :horizontal}
36
+ vars = {column: column, parent_record: record, show_partial: :horizontal, columns: ui_options[:subform_columns]}
35
37
  render partial: 'show_association', locals: vars.merge(ui_options.slice(:tabbed_by, :tab_value, :tab_id))
36
38
  end
37
39
 
38
40
  def active_scaffold_show_vertical(record, column, ui_options: column.options)
39
41
  raise ArgumentError, ':vertical show_ui must be used on association column' unless column.association
40
42
 
41
- render partial: 'show_association', locals: {column: column, parent_record: record, show_partial: :vertical}
43
+ render partial: 'show_association', locals: {column: column, parent_record: record, show_partial: :vertical, columns: ui_options[:subform_columns]}
42
44
  end
43
45
 
44
46
  def show_columns_for(record, parent_column = nil, hash = {})
@@ -5,6 +5,7 @@ module ActiveScaffold
5
5
  # All extra helpers that should be included in the View.
6
6
  # Also a dumping ground for uncategorized helpers.
7
7
  module ViewHelpers
8
+ include ActiveScaffold::Helpers::AssetsHelpers
8
9
  include ActiveScaffold::Helpers::IdHelpers
9
10
  include ActiveScaffold::Helpers::ActionLinkHelpers
10
11
  include ActiveScaffold::Helpers::AssociationHelpers
@@ -12,6 +13,7 @@ module ActiveScaffold
12
13
  include ActiveScaffold::Helpers::ListColumnHelpers
13
14
  include ActiveScaffold::Helpers::ShowColumnHelpers
14
15
  include ActiveScaffold::Helpers::FormColumnHelpers
16
+ include ActiveScaffold::Helpers::FormUiHelpers
15
17
  include ActiveScaffold::Helpers::TabsHelpers
16
18
  include ActiveScaffold::Helpers::SearchColumnHelpers
17
19
  include ActiveScaffold::Helpers::HumanConditionHelpers
@@ -29,6 +31,16 @@ module ActiveScaffold
29
31
  ## Uncategorized
30
32
  ##
31
33
 
34
+ def handle_exception_on_column(exception, column, record = nil)
35
+ raise exception if exception.instance_variable_get(:@_active_scaffold_wrapped)
36
+
37
+ exception.instance_variable_set(:@_active_scaffold_wrapped, true)
38
+ message = "on the ActiveScaffold column = :#{column.name} in #{controller.class}"
39
+ message << ", record: #{record.inspect}" if record
40
+ ActiveScaffold.log_exception(exception, message)
41
+ raise exception, "#{exception.message} -- #{message}", exception.backtrace
42
+ end
43
+
32
44
  def controller_path_for_activerecord(klass)
33
45
  controller = active_scaffold_controller_for(klass)
34
46
  controller.controller_path
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is loaded by the Rails engine
4
+ if defined?(Rails) && defined?(Propshaft) && Rails.application.config.assets.server
5
+ # Hook into assets:precompile to generate theme before compilation
6
+ Rake::Task['assets:precompile'].enhance do
7
+ ActiveScaffold::Assets::JqueryUiThemeGenerator.generate!(force: true)
8
+ ActiveScaffold::Assets::CssDepsGenerator.generate!
9
+ end
10
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveScaffold
4
+ module Testing
5
+ module AssertEmbeddedLoad
6
+ def assert_embedded_load(selector = nil, **options)
7
+ elements = []
8
+ full_selector = [selector, '.active-scaffold-component a.load-embedded[href]'].compact.join(' ')
9
+
10
+ # Collect elements without failing if none found, unless user wanted with options
11
+ assert_select(full_selector, **options) do |matches|
12
+ elements = matches
13
+ end
14
+
15
+ # Run GET on each href
16
+ elements.each do |el|
17
+ get el['href']
18
+ assert_successful_response!
19
+ end
20
+ end
21
+
22
+ def assert_successful_response!
23
+ if respond_to?(:assert_response)
24
+ assert_response :success
25
+ elsif defined?(RSpec)
26
+ expect(response).to have_http_status(:ok)
27
+ else
28
+ raise 'No known assertion method for response'
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -3,8 +3,8 @@
3
3
  module ActiveScaffold
4
4
  module Version
5
5
  MAJOR = 4
6
- MINOR = 2
7
- PATCH = 2
6
+ MINOR = 3
7
+ PATCH = 0
8
8
  FIX = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, FIX].compact.join('.')
@@ -2,6 +2,7 @@
2
2
 
3
3
  module ActiveScaffold
4
4
  autoload :ActiveRecordPermissions, 'active_scaffold/active_record_permissions'
5
+ autoload :Assets, 'active_scaffold/assets'
5
6
  autoload :AttributeParams, 'active_scaffold/attribute_params'
6
7
  autoload :Bridges, 'active_scaffold/bridges'
7
8
  autoload :Configurable, 'active_scaffold/configurable'
@@ -42,6 +43,10 @@ module ActiveScaffold
42
43
  ActiveScaffold.autoload_subdir('helpers', self)
43
44
  end
44
45
 
46
+ module Testing
47
+ ActiveScaffold.autoload_subdir('testing', self)
48
+ end
49
+
45
50
  class ControllerNotFound < RuntimeError; end
46
51
  class MalformedConstraint < RuntimeError; end
47
52
  class RecordNotAllowed < RuntimeError; end
@@ -93,11 +98,11 @@ module ActiveScaffold
93
98
  def self.log_exception(exception, message)
94
99
  line = exception.backtrace.find { |l| l.start_with? Rails.root.to_s }
95
100
  line ||= exception.backtrace.find { |l| l.start_with? ActiveScaffold.root }
96
- Rails.logger.error "#{exception.class.name}: #{exception.message} -- #{message}\n#{Rails.backtrace_cleaner.clean_frame(line) || line}"
101
+ line = Rails.backtrace_cleaner.clean_frame(line) || line
102
+ Rails.logger.error "#{exception.class.name}: #{exception.message} -- #{message}\n#{line}"
97
103
  end
98
104
  end
99
105
  require 'active_scaffold/engine'
100
106
  require 'ice_nine'
101
107
  require 'ice_nine/core_ext/object'
102
108
  require 'request_store'
103
- require 'dartsass-sprockets'
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :active_scaffold do
4
+ namespace :assets do
5
+ desc 'Generate jQuery UI theme css from jquery-ui-rails (if using the gem), and deps.css for Propshaft compatibility'
6
+ task generate: :environment do
7
+ if ActiveScaffold::Assets::JqueryUiThemeGenerator.generate!
8
+ puts '✅ jQuery UI theme generated'
9
+ else
10
+ puts '✅ No need to generate jQuery UI theme'
11
+ end
12
+ if ActiveScaffold::Assets::CssDepsGenerator.generate!
13
+ puts '✅ Deps.css generated'
14
+ else
15
+ puts '⚠️ Deps.css not generated'
16
+ end
17
+ end
18
+
19
+ desc 'Force regenerate jQuery UI theme css from jquery-ui-rails (if using the gem) and deps.css'
20
+ task force_generate: :environment do
21
+ if ActiveScaffold::Assets::JqueryUiThemeGenerator.generate!(force: true)
22
+ puts '✅ jQuery UI theme regenerated'
23
+ else
24
+ puts '⚠️ jQuery UI theme not generated'
25
+ end
26
+ if ActiveScaffold::Assets::CssDepsGenerator.generate!
27
+ puts '✅ Deps.css regenerated'
28
+ else
29
+ puts '⚠️ Deps.css not generated'
30
+ end
31
+ end
32
+
33
+ desc 'Check if jQuery UI theme needs regeneration'
34
+ task check: :environment do
35
+ if ActiveScaffold::Assets::JqueryUiThemeGenerator.needs_generation?
36
+ puts '⚠️ jQuery UI theme needs regeneration. Run: rake active_scaffold:assets:generate'
37
+ else
38
+ puts '✅ jQuery UI theme is up to date'
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :bundle do
4
+ desc 'Run bundle lock for all Gemfiles in the gemfiles directory'
5
+ task :lock_all do
6
+ gemfiles_dir = File.join(Dir.pwd, 'gemfiles')
7
+
8
+ unless Dir.exist?(gemfiles_dir)
9
+ abort "Error: gemfiles directory not found at #{gemfiles_dir}"
10
+ end
11
+
12
+ gemfiles = Dir.glob(File.join(gemfiles_dir, 'Gemfile*')).reject do |file|
13
+ file.end_with?('.lock') || File.directory?(file)
14
+ end
15
+
16
+ gemfiles.each do |gemfile|
17
+ puts "Locking #{File.basename(gemfile)}..."
18
+ Bundler.with_unbundled_env do
19
+ system("bundle lock --gemfile='#{gemfile}'")
20
+ end
21
+ end
22
+
23
+ puts 'Done!'
24
+ end
25
+ end
@@ -1,25 +1,25 @@
1
1
  /* Component containers
2
2
  ----------------------------------*/
3
- .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(<%= image_path('jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png') %>) 50% top repeat-x; color: #333333; }
3
+ .ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url('jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png') 50% top repeat-x; color: #333333; }
4
4
  .ui-widget-content a { color: #333333; }
5
- .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(<%= image_path('jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png') %>) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
5
+ .ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url('jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png') 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
6
6
  .ui-widget-header a { color: #ffffff; }
7
7
 
8
8
  /* Interaction states
9
9
  ----------------------------------*/
10
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(<%= image_path('jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png') %>) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
10
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url('jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png') 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
11
11
  .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
12
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(<%= image_path('jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png') %>) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
12
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url('jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png') 50% 50% repeat-x; font-weight: bold; color: #c77405; }
13
13
  .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
14
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(<%= image_path('jquery-ui/ui-bg_glass_65_ffffff_1x400.png') %>) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
14
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url('jquery-ui/ui-bg_glass_65_ffffff_1x400.png') 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
15
15
  .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
16
16
  .ui-widget :active { outline: none; }
17
17
 
18
18
  /* Interaction Cues
19
19
  ----------------------------------*/
20
- .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(<%= image_path('jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png') %>) 50% top repeat-x; color: #363636; }
20
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url('jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png') 50% top repeat-x; color: #363636; }
21
21
  .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
22
- .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(<%= image_path('jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png') %>) 50% 50% repeat; color: #ffffff; }
22
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url('jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png') 50% 50% repeat; color: #ffffff; }
23
23
  .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
24
24
  .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
25
25
  .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
@@ -30,18 +30,18 @@
30
30
  ----------------------------------*/
31
31
 
32
32
  /* states and images */
33
- .ui-icon { background-image: url(<%= image_path('jquery-ui/ui-icons_222222_256x240.png') %>); }
34
- .ui-widget-content .ui-icon {background-image: url(<%= image_path('jquery-ui/ui-icons_222222_256x240.png') %>); }
35
- .ui-widget-header .ui-icon {background-image: url(<%= image_path('jquery-ui/ui-icons_ffffff_256x240.png') %>); }
36
- .ui-state-default .ui-icon { background-image: url(<%= image_path('jquery-ui/ui-icons_ef8c08_256x240.png') %>); }
37
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(<%= image_path('jquery-ui/ui-icons_ef8c08_256x240.png') %>); }
38
- .ui-state-active .ui-icon {background-image: url(<%= image_path('jquery-ui/ui-icons_ef8c08_256x240.png') %>); }
39
- .ui-state-highlight .ui-icon {background-image: url(<%= image_path('jquery-ui/ui-icons_228ef1_256x240.png') %>); }
40
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(<%= image_path('jquery-ui/ui-icons_ffd27a_256x240.png') %>); }
33
+ .ui-icon { background-image: url('jquery-ui/ui-icons_222222_256x240.png'); }
34
+ .ui-widget-content .ui-icon {background-image: url('jquery-ui/ui-icons_222222_256x240.png'); }
35
+ .ui-widget-header .ui-icon {background-image: url('jquery-ui/ui-icons_ffffff_256x240.png'); }
36
+ .ui-state-default .ui-icon { background-image: url('jquery-ui/ui-icons_ef8c08_256x240.png'); }
37
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url('jquery-ui/ui-icons_ef8c08_256x240.png'); }
38
+ .ui-state-active .ui-icon {background-image: url('jquery-ui/ui-icons_ef8c08_256x240.png'); }
39
+ .ui-state-highlight .ui-icon {background-image: url('jquery-ui/ui-icons_228ef1_256x240.png'); }
40
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url('jquery-ui/ui-icons_ffd27a_256x240.png'); }
41
41
 
42
42
  /* Misc visuals
43
43
  ----------------------------------*/
44
44
 
45
45
  /* Overlays */
46
- .ui-widget-overlay { background: #666666 url(<%= image_path('jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png') %>) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
47
- .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(<%= image_path('jquery-ui/ui-bg_flat_10_000000_40x100.png') %>) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
46
+ .ui-widget-overlay { background: #666666 url('jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png') 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
47
+ .ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url('jquery-ui/ui-bg_flat_10_000000_40x100.png') 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.2
4
+ version: 4.3.0
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: 2026-02-20 00:00:00.000000000 Z
11
+ date: 2026-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: dartsass-sprockets
14
+ name: ice_nine
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.0
19
+ version: '0.11'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.0
26
+ version: '0.11'
27
27
  - !ruby/object:Gem::Dependency
28
- name: ice_nine
28
+ name: method_source
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.11'
33
+ version: '1.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.11'
40
+ version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rails
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -95,18 +95,20 @@ files:
95
95
  - app/assets/images/active_scaffold/magnifier.png
96
96
  - app/assets/images/active_scaffold/refresh.png
97
97
  - app/assets/javascripts/active_scaffold.js.erb
98
- - app/assets/javascripts/jquery/active_scaffold.js
99
- - app/assets/javascripts/jquery/active_scaffold_chosen.js
100
- - app/assets/javascripts/jquery/date_picker_bridge.js.erb
101
- - app/assets/javascripts/jquery/draggable_lists.js
102
- - app/assets/javascripts/jquery/jquery.editinplace.js
103
- - app/assets/javascripts/jquery/tiny_mce_bridge.js
98
+ - app/assets/javascripts/active_scaffold/active_scaffold.js
99
+ - app/assets/javascripts/active_scaffold/active_scaffold_chosen.js
100
+ - app/assets/javascripts/active_scaffold/date_picker_bridge.js
101
+ - app/assets/javascripts/active_scaffold/draggable_lists.js
102
+ - app/assets/javascripts/active_scaffold/jquery.editinplace.js
103
+ - app/assets/javascripts/active_scaffold/load.js
104
+ - app/assets/javascripts/active_scaffold/tiny_mce_bridge.js
104
105
  - app/assets/stylesheets/active_scaffold-ie.scss
105
- - app/assets/stylesheets/active_scaffold.scss
106
- - app/assets/stylesheets/active_scaffold_extensions.css.erb
107
- - app/assets/stylesheets/active_scaffold_images.scss
108
- - app/assets/stylesheets/active_scaffold_jquery_ui.css.erb
109
- - app/assets/stylesheets/active_scaffold_layout.scss
106
+ - app/assets/stylesheets/active_scaffold.scss.erb
107
+ - app/assets/stylesheets/active_scaffold/_colours.scss
108
+ - app/assets/stylesheets/active_scaffold/_images.scss
109
+ - app/assets/stylesheets/active_scaffold/_layout.scss
110
+ - app/assets/stylesheets/active_scaffold/_variables.scss
111
+ - app/assets/stylesheets/active_scaffold/core.scss
110
112
  - app/assets/stylesheets/blue-theme.css
111
113
  - app/assets/stylesheets/tiny_mce_bridge.scss
112
114
  - app/views/active_scaffold_overrides/_add_existing_form.html.erb
@@ -203,6 +205,10 @@ files:
203
205
  - lib/active_scaffold/actions/subform.rb
204
206
  - lib/active_scaffold/actions/update.rb
205
207
  - lib/active_scaffold/active_record_permissions.rb
208
+ - lib/active_scaffold/assets.rb
209
+ - lib/active_scaffold/assets/css_deps_generator.rb
210
+ - lib/active_scaffold/assets/jquery_ui_manifest.rb
211
+ - lib/active_scaffold/assets/jquery_ui_theme_generator.rb
206
212
  - lib/active_scaffold/attribute_params.rb
207
213
  - lib/active_scaffold/bridges.rb
208
214
  - lib/active_scaffold/bridges/active_storage.rb
@@ -242,6 +248,7 @@ files:
242
248
  - lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb
243
249
  - lib/active_scaffold/bridges/file_column/test/mock_model.rb
244
250
  - lib/active_scaffold/bridges/logical_query_parser.rb
251
+ - lib/active_scaffold/bridges/logical_query_parser/keyword_query_parser.rb
245
252
  - lib/active_scaffold/bridges/logical_query_parser/tokens_grammar.rb
246
253
  - lib/active_scaffold/bridges/logical_query_parser/tokens_grammar.treetop
247
254
  - lib/active_scaffold/bridges/paper_trail.rb
@@ -313,10 +320,12 @@ files:
313
320
  - lib/active_scaffold/extensions/unsaved_record.rb
314
321
  - lib/active_scaffold/finder.rb
315
322
  - lib/active_scaffold/helpers/action_link_helpers.rb
323
+ - lib/active_scaffold/helpers/assets_helpers.rb
316
324
  - lib/active_scaffold/helpers/association_helpers.rb
317
325
  - lib/active_scaffold/helpers/controller_helpers.rb
318
326
  - lib/active_scaffold/helpers/filter_helpers.rb
319
327
  - lib/active_scaffold/helpers/form_column_helpers.rb
328
+ - lib/active_scaffold/helpers/form_ui_helpers.rb
320
329
  - lib/active_scaffold/helpers/human_condition_helpers.rb
321
330
  - lib/active_scaffold/helpers/id_helpers.rb
322
331
  - lib/active_scaffold/helpers/list_column_helpers.rb
@@ -328,9 +337,11 @@ files:
328
337
  - lib/active_scaffold/marked_model.rb
329
338
  - lib/active_scaffold/orm_checks.rb
330
339
  - lib/active_scaffold/paginator.rb
340
+ - lib/active_scaffold/railties/tasks.rake
331
341
  - lib/active_scaffold/registry.rb
332
342
  - lib/active_scaffold/responds_to_parent.rb
333
343
  - lib/active_scaffold/tableless.rb
344
+ - lib/active_scaffold/testing/assert_embedded_load.rb
334
345
  - lib/active_scaffold/version.rb
335
346
  - lib/generators/active_scaffold/controller/USAGE
336
347
  - lib/generators/active_scaffold/controller/controller_generator.rb
@@ -340,7 +351,9 @@ files:
340
351
  - lib/generators/active_scaffold/install/install_generator.rb
341
352
  - lib/generators/active_scaffold/resource/USAGE
342
353
  - lib/generators/active_scaffold/resource/resource_generator.rb
354
+ - lib/tasks/active_scaffold/assets.rake
343
355
  - lib/tasks/brakeman.rake
356
+ - lib/tasks/bundle.rake
344
357
  - public/blank.html
345
358
  - shoulda_macros/macros.rb
346
359
  - vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png
@@ -360,7 +373,7 @@ files:
360
373
  - vendor/assets/javascripts/jquery-ui-timepicker-addon.js
361
374
  - vendor/assets/javascripts/jquery.ba-throttle-debounce.js
362
375
  - vendor/assets/javascripts/jquery.visible.min.js
363
- - vendor/assets/stylesheets/jquery-ui-theme.css.erb
376
+ - vendor/assets/stylesheets/jquery-ui-theme.css
364
377
  - vendor/assets/stylesheets/jquery-ui-timepicker-addon.css
365
378
  - vendor/assets/stylesheets/jquery-ui.css
366
379
  homepage: https://github.com/activescaffold/active_scaffold