active_scaffold 4.2.3 → 4.3.1

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.rdoc +19 -1
  3. data/README.md +115 -12
  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/_new_record.js.erb +2 -2
  19. data/app/views/active_scaffold_overrides/_refresh_list.js.erb +1 -1
  20. data/app/views/active_scaffold_overrides/_show_association.html.erb +2 -1
  21. data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +2 -2
  22. data/app/views/active_scaffold_overrides/_show_association_vertical.html.erb +1 -1
  23. data/app/views/active_scaffold_overrides/destroy.js.erb +2 -2
  24. data/app/views/active_scaffold_overrides/edit_associated.js.erb +10 -8
  25. data/app/views/active_scaffold_overrides/on_update.js.erb +1 -1
  26. data/config/locales/de.yml +19 -15
  27. data/config/locales/en.yml +5 -4
  28. data/config/locales/es.yml +16 -8
  29. data/config/locales/fr.yml +27 -20
  30. data/config/locales/hu.yml +35 -31
  31. data/config/locales/ja.yml +39 -38
  32. data/config/locales/ru.yml +37 -36
  33. data/config/locales/ta.yml +165 -0
  34. data/config/locales/zh_Hans.yml +163 -0
  35. data/lib/active_scaffold/actions/core.rb +34 -3
  36. data/lib/active_scaffold/assets/css_deps_generator.rb +42 -0
  37. data/lib/active_scaffold/assets/jquery_ui_manifest.rb +77 -0
  38. data/lib/active_scaffold/assets/jquery_ui_theme_generator.rb +102 -0
  39. data/lib/active_scaffold/assets.rb +109 -0
  40. data/lib/active_scaffold/attribute_params.rb +11 -2
  41. data/lib/active_scaffold/bridges/active_storage/form_ui.rb +1 -1
  42. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +1 -1
  43. data/lib/active_scaffold/bridges/chosen.rb +1 -1
  44. data/lib/active_scaffold/bridges/date_picker/helper.rb +12 -1
  45. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +1 -1
  46. data/lib/active_scaffold/bridges/file_column/form_ui.rb +1 -1
  47. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +1 -1
  48. data/lib/active_scaffold/bridges/record_select/helpers.rb +1 -1
  49. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +1 -0
  50. data/lib/active_scaffold/bridges/tiny_mce.rb +6 -1
  51. data/lib/active_scaffold/bridges.rb +7 -0
  52. data/lib/active_scaffold/config/core.rb +7 -3
  53. data/lib/active_scaffold/constraints.rb +1 -1
  54. data/lib/active_scaffold/data_structures/action_columns.rb +66 -0
  55. data/lib/active_scaffold/data_structures/bridge.rb +2 -0
  56. data/lib/active_scaffold/data_structures/column.rb +3 -0
  57. data/lib/active_scaffold/engine.rb +40 -0
  58. data/lib/active_scaffold/finder.rb +1 -1
  59. data/lib/active_scaffold/helpers/assets_helpers.rb +39 -0
  60. data/lib/active_scaffold/helpers/controller_helpers.rb +1 -1
  61. data/lib/active_scaffold/helpers/form_column_helpers.rb +57 -532
  62. data/lib/active_scaffold/helpers/form_ui_helpers.rb +530 -0
  63. data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -0
  64. data/lib/active_scaffold/helpers/list_column_helpers.rb +31 -11
  65. data/lib/active_scaffold/helpers/search_column_helpers.rb +5 -12
  66. data/lib/active_scaffold/helpers/show_column_helpers.rb +4 -2
  67. data/lib/active_scaffold/helpers/view_helpers.rb +12 -0
  68. data/lib/active_scaffold/railties/tasks.rake +10 -0
  69. data/lib/active_scaffold/tableless.rb +1 -1
  70. data/lib/active_scaffold/testing/assert_embedded_load.rb +33 -0
  71. data/lib/active_scaffold/version.rb +2 -2
  72. data/lib/active_scaffold.rb +7 -2
  73. data/lib/tasks/active_scaffold/assets.rake +42 -0
  74. data/lib/tasks/bundle.rake +25 -0
  75. data/vendor/assets/stylesheets/{jquery-ui-theme.css.erb → jquery-ui-theme.css} +17 -17
  76. metadata +28 -28
  77. data/app/assets/stylesheets/active_scaffold.scss +0 -424
  78. data/app/assets/stylesheets/active_scaffold_extensions.css.erb +0 -2
  79. data/app/assets/stylesheets/active_scaffold_images.scss +0 -65
  80. data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +0 -13
  81. /data/app/assets/javascripts/{jquery → active_scaffold}/active_scaffold_chosen.js +0 -0
  82. /data/app/assets/javascripts/{jquery → active_scaffold}/draggable_lists.js +0 -0
  83. /data/app/assets/javascripts/{jquery → active_scaffold}/jquery.editinplace.js +0 -0
  84. /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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class ActiveScaffold::Tableless < ActiveRecord::Base # rubocop:disable Rails/ApplicationRecord
3
+ class ActiveScaffold::Tableless < ActiveRecord::Base
4
4
  class Connection < ActiveRecord::ConnectionAdapters::AbstractAdapter
5
5
  attr_reader :klass
6
6
 
@@ -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 = 1
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.1
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-07-17 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
@@ -203,6 +191,8 @@ files:
203
191
  - config/locales/hu.yml
204
192
  - config/locales/ja.yml
205
193
  - config/locales/ru.yml
194
+ - config/locales/ta.yml
195
+ - config/locales/zh_Hans.yml
206
196
  - lib/active_scaffold.rb
207
197
  - lib/active_scaffold/actions/common_search.rb
208
198
  - lib/active_scaffold/actions/core.rb
@@ -217,6 +207,10 @@ files:
217
207
  - lib/active_scaffold/actions/subform.rb
218
208
  - lib/active_scaffold/actions/update.rb
219
209
  - lib/active_scaffold/active_record_permissions.rb
210
+ - lib/active_scaffold/assets.rb
211
+ - lib/active_scaffold/assets/css_deps_generator.rb
212
+ - lib/active_scaffold/assets/jquery_ui_manifest.rb
213
+ - lib/active_scaffold/assets/jquery_ui_theme_generator.rb
220
214
  - lib/active_scaffold/attribute_params.rb
221
215
  - lib/active_scaffold/bridges.rb
222
216
  - lib/active_scaffold/bridges/active_storage.rb
@@ -328,10 +322,12 @@ files:
328
322
  - lib/active_scaffold/extensions/unsaved_record.rb
329
323
  - lib/active_scaffold/finder.rb
330
324
  - lib/active_scaffold/helpers/action_link_helpers.rb
325
+ - lib/active_scaffold/helpers/assets_helpers.rb
331
326
  - lib/active_scaffold/helpers/association_helpers.rb
332
327
  - lib/active_scaffold/helpers/controller_helpers.rb
333
328
  - lib/active_scaffold/helpers/filter_helpers.rb
334
329
  - lib/active_scaffold/helpers/form_column_helpers.rb
330
+ - lib/active_scaffold/helpers/form_ui_helpers.rb
335
331
  - lib/active_scaffold/helpers/human_condition_helpers.rb
336
332
  - lib/active_scaffold/helpers/id_helpers.rb
337
333
  - lib/active_scaffold/helpers/list_column_helpers.rb
@@ -343,9 +339,11 @@ files:
343
339
  - lib/active_scaffold/marked_model.rb
344
340
  - lib/active_scaffold/orm_checks.rb
345
341
  - lib/active_scaffold/paginator.rb
342
+ - lib/active_scaffold/railties/tasks.rake
346
343
  - lib/active_scaffold/registry.rb
347
344
  - lib/active_scaffold/responds_to_parent.rb
348
345
  - lib/active_scaffold/tableless.rb
346
+ - lib/active_scaffold/testing/assert_embedded_load.rb
349
347
  - lib/active_scaffold/version.rb
350
348
  - lib/generators/active_scaffold/controller/USAGE
351
349
  - lib/generators/active_scaffold/controller/controller_generator.rb
@@ -355,7 +353,9 @@ files:
355
353
  - lib/generators/active_scaffold/install/install_generator.rb
356
354
  - lib/generators/active_scaffold/resource/USAGE
357
355
  - lib/generators/active_scaffold/resource/resource_generator.rb
356
+ - lib/tasks/active_scaffold/assets.rake
358
357
  - lib/tasks/brakeman.rake
358
+ - lib/tasks/bundle.rake
359
359
  - public/blank.html
360
360
  - shoulda_macros/macros.rb
361
361
  - vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png
@@ -375,7 +375,7 @@ files:
375
375
  - vendor/assets/javascripts/jquery-ui-timepicker-addon.js
376
376
  - vendor/assets/javascripts/jquery.ba-throttle-debounce.js
377
377
  - vendor/assets/javascripts/jquery.visible.min.js
378
- - vendor/assets/stylesheets/jquery-ui-theme.css.erb
378
+ - vendor/assets/stylesheets/jquery-ui-theme.css
379
379
  - vendor/assets/stylesheets/jquery-ui-timepicker-addon.css
380
380
  - vendor/assets/stylesheets/jquery-ui.css
381
381
  homepage: https://github.com/activescaffold/active_scaffold