active_scaffold 4.2.3 → 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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.rdoc +16 -1
  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} +14 -0
  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/paperclip/form_ui.rb +1 -1
  34. data/lib/active_scaffold/bridges/record_select/helpers.rb +1 -1
  35. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +1 -0
  36. data/lib/active_scaffold/bridges/tiny_mce.rb +6 -1
  37. data/lib/active_scaffold/bridges.rb +7 -0
  38. data/lib/active_scaffold/config/core.rb +7 -3
  39. data/lib/active_scaffold/constraints.rb +1 -1
  40. data/lib/active_scaffold/data_structures/action_columns.rb +66 -0
  41. data/lib/active_scaffold/data_structures/bridge.rb +2 -0
  42. data/lib/active_scaffold/data_structures/column.rb +3 -0
  43. data/lib/active_scaffold/engine.rb +40 -0
  44. data/lib/active_scaffold/finder.rb +1 -1
  45. data/lib/active_scaffold/helpers/assets_helpers.rb +39 -0
  46. data/lib/active_scaffold/helpers/controller_helpers.rb +1 -1
  47. data/lib/active_scaffold/helpers/form_column_helpers.rb +57 -532
  48. data/lib/active_scaffold/helpers/form_ui_helpers.rb +530 -0
  49. data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -0
  50. data/lib/active_scaffold/helpers/list_column_helpers.rb +31 -11
  51. data/lib/active_scaffold/helpers/search_column_helpers.rb +5 -12
  52. data/lib/active_scaffold/helpers/show_column_helpers.rb +4 -2
  53. data/lib/active_scaffold/helpers/view_helpers.rb +12 -0
  54. data/lib/active_scaffold/railties/tasks.rake +10 -0
  55. data/lib/active_scaffold/testing/assert_embedded_load.rb +33 -0
  56. data/lib/active_scaffold/version.rb +2 -2
  57. data/lib/active_scaffold.rb +7 -2
  58. data/lib/tasks/active_scaffold/assets.rake +42 -0
  59. data/lib/tasks/bundle.rake +25 -0
  60. data/vendor/assets/stylesheets/{jquery-ui-theme.css.erb → jquery-ui-theme.css} +17 -17
  61. metadata +26 -28
  62. data/app/assets/stylesheets/active_scaffold.scss +0 -424
  63. data/app/assets/stylesheets/active_scaffold_extensions.css.erb +0 -2
  64. data/app/assets/stylesheets/active_scaffold_images.scss +0 -65
  65. data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +0 -13
  66. /data/app/assets/javascripts/{jquery → active_scaffold}/active_scaffold_chosen.js +0 -0
  67. /data/app/assets/javascripts/{jquery → active_scaffold}/draggable_lists.js +0 -0
  68. /data/app/assets/javascripts/{jquery → active_scaffold}/jquery.editinplace.js +0 -0
  69. /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 = 3
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,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.3
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-26 00:00:00.000000000 Z
11
+ date: 2026-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: dartsass-sprockets
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 3.2.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 3.2.0
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: ice_nine
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -109,18 +95,20 @@ files:
109
95
  - app/assets/images/active_scaffold/magnifier.png
110
96
  - app/assets/images/active_scaffold/refresh.png
111
97
  - app/assets/javascripts/active_scaffold.js.erb
112
- - app/assets/javascripts/jquery/active_scaffold.js
113
- - app/assets/javascripts/jquery/active_scaffold_chosen.js
114
- - app/assets/javascripts/jquery/date_picker_bridge.js.erb
115
- - app/assets/javascripts/jquery/draggable_lists.js
116
- - app/assets/javascripts/jquery/jquery.editinplace.js
117
- - 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
118
105
  - app/assets/stylesheets/active_scaffold-ie.scss
119
- - app/assets/stylesheets/active_scaffold.scss
120
- - app/assets/stylesheets/active_scaffold_extensions.css.erb
121
- - app/assets/stylesheets/active_scaffold_images.scss
122
- - app/assets/stylesheets/active_scaffold_jquery_ui.css.erb
123
- - 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
124
112
  - app/assets/stylesheets/blue-theme.css
125
113
  - app/assets/stylesheets/tiny_mce_bridge.scss
126
114
  - app/views/active_scaffold_overrides/_add_existing_form.html.erb
@@ -217,6 +205,10 @@ files:
217
205
  - lib/active_scaffold/actions/subform.rb
218
206
  - lib/active_scaffold/actions/update.rb
219
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
220
212
  - lib/active_scaffold/attribute_params.rb
221
213
  - lib/active_scaffold/bridges.rb
222
214
  - lib/active_scaffold/bridges/active_storage.rb
@@ -328,10 +320,12 @@ files:
328
320
  - lib/active_scaffold/extensions/unsaved_record.rb
329
321
  - lib/active_scaffold/finder.rb
330
322
  - lib/active_scaffold/helpers/action_link_helpers.rb
323
+ - lib/active_scaffold/helpers/assets_helpers.rb
331
324
  - lib/active_scaffold/helpers/association_helpers.rb
332
325
  - lib/active_scaffold/helpers/controller_helpers.rb
333
326
  - lib/active_scaffold/helpers/filter_helpers.rb
334
327
  - lib/active_scaffold/helpers/form_column_helpers.rb
328
+ - lib/active_scaffold/helpers/form_ui_helpers.rb
335
329
  - lib/active_scaffold/helpers/human_condition_helpers.rb
336
330
  - lib/active_scaffold/helpers/id_helpers.rb
337
331
  - lib/active_scaffold/helpers/list_column_helpers.rb
@@ -343,9 +337,11 @@ files:
343
337
  - lib/active_scaffold/marked_model.rb
344
338
  - lib/active_scaffold/orm_checks.rb
345
339
  - lib/active_scaffold/paginator.rb
340
+ - lib/active_scaffold/railties/tasks.rake
346
341
  - lib/active_scaffold/registry.rb
347
342
  - lib/active_scaffold/responds_to_parent.rb
348
343
  - lib/active_scaffold/tableless.rb
344
+ - lib/active_scaffold/testing/assert_embedded_load.rb
349
345
  - lib/active_scaffold/version.rb
350
346
  - lib/generators/active_scaffold/controller/USAGE
351
347
  - lib/generators/active_scaffold/controller/controller_generator.rb
@@ -355,7 +351,9 @@ files:
355
351
  - lib/generators/active_scaffold/install/install_generator.rb
356
352
  - lib/generators/active_scaffold/resource/USAGE
357
353
  - lib/generators/active_scaffold/resource/resource_generator.rb
354
+ - lib/tasks/active_scaffold/assets.rake
358
355
  - lib/tasks/brakeman.rake
356
+ - lib/tasks/bundle.rake
359
357
  - public/blank.html
360
358
  - shoulda_macros/macros.rb
361
359
  - vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png
@@ -375,7 +373,7 @@ files:
375
373
  - vendor/assets/javascripts/jquery-ui-timepicker-addon.js
376
374
  - vendor/assets/javascripts/jquery.ba-throttle-debounce.js
377
375
  - vendor/assets/javascripts/jquery.visible.min.js
378
- - vendor/assets/stylesheets/jquery-ui-theme.css.erb
376
+ - vendor/assets/stylesheets/jquery-ui-theme.css
379
377
  - vendor/assets/stylesheets/jquery-ui-timepicker-addon.css
380
378
  - vendor/assets/stylesheets/jquery-ui.css
381
379
  homepage: https://github.com/activescaffold/active_scaffold