active_scaffold 3.4.17 → 3.4.18

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 (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +12 -1
  3. data/README.md +8 -4
  4. data/app/assets/javascripts/jquery/active_scaffold.js +82 -67
  5. data/app/assets/stylesheets/active_scaffold.scss +1 -1
  6. data/app/assets/stylesheets/active_scaffold_colors.scss +1 -1
  7. data/app/assets/stylesheets/blue-theme.css +1 -1
  8. data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -3
  9. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +3 -3
  10. data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
  11. data/lib/active_scaffold.rb +16 -16
  12. data/lib/active_scaffold/actions/common_search.rb +13 -11
  13. data/lib/active_scaffold/actions/core.rb +85 -78
  14. data/lib/active_scaffold/actions/create.rb +29 -28
  15. data/lib/active_scaffold/actions/delete.rb +17 -17
  16. data/lib/active_scaffold/actions/field_search.rb +18 -19
  17. data/lib/active_scaffold/actions/list.rb +30 -22
  18. data/lib/active_scaffold/actions/mark.rb +1 -1
  19. data/lib/active_scaffold/actions/nested.rb +78 -65
  20. data/lib/active_scaffold/actions/search.rb +13 -10
  21. data/lib/active_scaffold/actions/show.rb +10 -6
  22. data/lib/active_scaffold/actions/subform.rb +1 -2
  23. data/lib/active_scaffold/actions/update.rb +39 -31
  24. data/lib/active_scaffold/active_record_permissions.rb +14 -15
  25. data/lib/active_scaffold/attribute_params.rb +42 -43
  26. data/lib/active_scaffold/bridges.rb +22 -12
  27. data/lib/active_scaffold/bridges/ancestry.rb +1 -1
  28. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +6 -6
  29. data/lib/active_scaffold/bridges/bitfields.rb +1 -1
  30. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +12 -13
  31. data/lib/active_scaffold/bridges/calendar_date_select.rb +5 -5
  32. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +17 -20
  33. data/lib/active_scaffold/bridges/cancan.rb +1 -1
  34. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +8 -9
  35. data/lib/active_scaffold/bridges/carrierwave.rb +4 -4
  36. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +9 -8
  37. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +11 -10
  38. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +7 -6
  39. data/lib/active_scaffold/bridges/chosen.rb +1 -1
  40. data/lib/active_scaffold/bridges/chosen/helpers.rb +4 -4
  41. data/lib/active_scaffold/bridges/country_helper.rb +1 -1
  42. data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +259 -260
  43. data/lib/active_scaffold/bridges/date_picker.rb +2 -2
  44. data/lib/active_scaffold/bridges/date_picker/ext.rb +9 -11
  45. data/lib/active_scaffold/bridges/date_picker/helper.rb +61 -67
  46. data/lib/active_scaffold/bridges/dragonfly.rb +4 -4
  47. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +9 -8
  48. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +11 -10
  49. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +6 -5
  50. data/lib/active_scaffold/bridges/file_column.rb +5 -5
  51. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +20 -23
  52. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +20 -23
  53. data/lib/active_scaffold/bridges/file_column/form_ui.rb +13 -14
  54. data/lib/active_scaffold/bridges/file_column/list_ui.rb +7 -8
  55. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +18 -22
  56. data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +5 -4
  57. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +2 -10
  58. data/lib/active_scaffold/bridges/paper_trail.rb +7 -5
  59. data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +4 -3
  60. data/lib/active_scaffold/bridges/paperclip.rb +5 -5
  61. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +11 -10
  62. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +6 -5
  63. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +10 -9
  64. data/lib/active_scaffold/bridges/record_select.rb +1 -1
  65. data/lib/active_scaffold/bridges/record_select/helpers.rb +28 -28
  66. data/lib/active_scaffold/bridges/semantic_attributes.rb +1 -1
  67. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +1 -1
  68. data/lib/active_scaffold/bridges/shared/date_bridge.rb +58 -52
  69. data/lib/active_scaffold/bridges/tiny_mce.rb +2 -2
  70. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -3
  71. data/lib/active_scaffold/config/base.rb +9 -10
  72. data/lib/active_scaffold/config/core.rb +24 -29
  73. data/lib/active_scaffold/config/create.rb +0 -1
  74. data/lib/active_scaffold/config/field_search.rb +8 -10
  75. data/lib/active_scaffold/config/form.rb +5 -5
  76. data/lib/active_scaffold/config/list.rb +21 -20
  77. data/lib/active_scaffold/config/mark.rb +3 -3
  78. data/lib/active_scaffold/config/nested.rb +11 -10
  79. data/lib/active_scaffold/config/search.rb +2 -3
  80. data/lib/active_scaffold/config/show.rb +1 -1
  81. data/lib/active_scaffold/config/update.rb +1 -2
  82. data/lib/active_scaffold/configurable.rb +9 -11
  83. data/lib/active_scaffold/constraints.rb +9 -8
  84. data/lib/active_scaffold/core.rb +72 -84
  85. data/lib/active_scaffold/data_structures/action_columns.rb +26 -25
  86. data/lib/active_scaffold/data_structures/action_link.rb +43 -43
  87. data/lib/active_scaffold/data_structures/action_links.rb +17 -15
  88. data/lib/active_scaffold/data_structures/actions.rb +5 -5
  89. data/lib/active_scaffold/data_structures/bridge.rb +6 -3
  90. data/lib/active_scaffold/data_structures/column.rb +110 -89
  91. data/lib/active_scaffold/data_structures/columns.rb +3 -3
  92. data/lib/active_scaffold/data_structures/error_message.rb +4 -6
  93. data/lib/active_scaffold/data_structures/nested_info.rb +43 -48
  94. data/lib/active_scaffold/data_structures/set.rb +7 -8
  95. data/lib/active_scaffold/data_structures/sorting.rb +38 -33
  96. data/lib/active_scaffold/delayed_setup.rb +5 -6
  97. data/lib/active_scaffold/engine.rb +4 -4
  98. data/lib/active_scaffold/extensions/action_controller_rendering.rb +3 -4
  99. data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
  100. data/lib/active_scaffold/extensions/action_view_rendering.rb +5 -6
  101. data/lib/active_scaffold/extensions/left_outer_joins.rb +11 -11
  102. data/lib/active_scaffold/extensions/localize.rb +1 -1
  103. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
  104. data/lib/active_scaffold/extensions/paginator_extensions.rb +2 -5
  105. data/lib/active_scaffold/extensions/reverse_associations.rb +13 -13
  106. data/lib/active_scaffold/extensions/routing_mapper.rb +9 -9
  107. data/lib/active_scaffold/extensions/unsaved_associated.rb +9 -9
  108. data/lib/active_scaffold/finder.rb +90 -93
  109. data/lib/active_scaffold/helpers/association_helpers.rb +5 -5
  110. data/lib/active_scaffold/helpers/controller_helpers.rb +22 -19
  111. data/lib/active_scaffold/helpers/form_column_helpers.rb +115 -105
  112. data/lib/active_scaffold/helpers/human_condition_helpers.rb +62 -35
  113. data/lib/active_scaffold/helpers/id_helpers.rb +6 -6
  114. data/lib/active_scaffold/helpers/list_column_helpers.rb +89 -94
  115. data/lib/active_scaffold/helpers/pagination_helpers.rb +9 -9
  116. data/lib/active_scaffold/helpers/search_column_helpers.rb +47 -44
  117. data/lib/active_scaffold/helpers/show_column_helpers.rb +2 -2
  118. data/lib/active_scaffold/helpers/view_helpers.rb +86 -91
  119. data/lib/active_scaffold/marked_model.rb +10 -10
  120. data/lib/active_scaffold/paginator.rb +30 -34
  121. data/lib/active_scaffold/responds_to_parent.rb +27 -28
  122. data/lib/active_scaffold/tableless.rb +20 -15
  123. data/lib/active_scaffold/version.rb +1 -1
  124. data/lib/generators/active_scaffold/active_scaffold_generator.rb +8 -8
  125. data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +9 -9
  126. data/shoulda_macros/macros.rb +27 -22
  127. data/test/bridges/bridge_test.rb +38 -29
  128. data/test/bridges/date_picker_test.rb +1 -1
  129. data/test/bridges/paper_trail_test.rb +17 -0
  130. data/test/bridges/paperclip_test.rb +3 -2
  131. data/test/bridges/tiny_mce_test.rb +5 -2
  132. data/test/company.rb +25 -30
  133. data/test/config/base_test.rb +1 -1
  134. data/test/config/core_test.rb +9 -9
  135. data/test/config/create_test.rb +14 -8
  136. data/test/config/delete_test.rb +4 -4
  137. data/test/config/field_search_test.rb +6 -6
  138. data/test/config/list_test.rb +16 -16
  139. data/test/config/nested_test.rb +4 -4
  140. data/test/config/search_test.rb +8 -8
  141. data/test/config/show_test.rb +6 -6
  142. data/test/config/subform_test.rb +1 -1
  143. data/test/config/update_test.rb +5 -5
  144. data/test/const_mocker.rb +4 -4
  145. data/test/data_structures/action_columns_test.rb +4 -5
  146. data/test/data_structures/action_link_test.rb +1 -0
  147. data/test/data_structures/action_links_test.rb +5 -5
  148. data/test/data_structures/column_test.rb +9 -9
  149. data/test/data_structures/columns_test.rb +2 -2
  150. data/test/data_structures/error_message_test.rb +4 -5
  151. data/test/data_structures/set_test.rb +1 -2
  152. data/test/data_structures/sorting_test.rb +10 -10
  153. data/test/data_structures/validation_reflection_test.rb +8 -0
  154. data/test/extensions/routing_mapper_test.rb +2 -2
  155. data/test/helpers/list_column_helpers_test.rb +3 -2
  156. data/test/helpers/pagination_helpers_test.rb +5 -4
  157. data/test/helpers/search_column_helpers_test.rb +1 -1
  158. data/test/misc/active_record_permissions_test.rb +63 -50
  159. data/test/misc/attribute_params_test.rb +28 -26
  160. data/test/misc/calculation_test.rb +10 -3
  161. data/test/misc/configurable_test.rb +12 -13
  162. data/test/misc/constraints_test.rb +6 -6
  163. data/test/misc/convert_numbers_format_test.rb +7 -6
  164. data/test/misc/finder_test.rb +17 -12
  165. data/test/misc/lang_test.rb +3 -4
  166. data/test/misc/tableless_test.rb +2 -3
  167. data/test/mock_app/app/controllers/addresses_controller.rb +1 -1
  168. data/test/mock_app/app/controllers/buildings_controller.rb +1 -1
  169. data/test/mock_app/app/controllers/cars_controller.rb +1 -1
  170. data/test/mock_app/app/controllers/contacts_controller.rb +1 -1
  171. data/test/mock_app/app/controllers/people_controller.rb +1 -1
  172. data/test/mock_app/app/models/file_model.rb +2 -2
  173. data/test/mock_app/app/models/person.rb +1 -1
  174. data/test/mock_app/config/application.rb +3 -3
  175. data/test/mock_app/config/boot.rb +1 -1
  176. data/test/mock_app/config/environment.rb +1 -0
  177. data/test/mock_app/config/environments/development.rb +0 -1
  178. data/test/mock_app/config/environments/production.rb +1 -1
  179. data/test/mock_app/db/schema.rb +14 -15
  180. data/test/model_stub.rb +13 -16
  181. data/test/run_all.rb +5 -7
  182. data/test/test_helper.rb +12 -9
  183. metadata +19 -3
@@ -4,50 +4,47 @@ module ActiveScaffold
4
4
  module FileColumnHelpers
5
5
  class << self
6
6
  def file_column_fields(klass)
7
- klass.instance_methods.select{|m| m.to_s =~ /_just_uploaded\?$/}.collect{|m| m[0..-16].to_sym }
7
+ klass.instance_methods.select { |m| m.to_s =~ /_just_uploaded\?$/ }.collect { |m| m[0..-16].to_sym }
8
8
  end
9
-
9
+
10
10
  def generate_delete_helpers(klass)
11
- file_column_fields(klass).each { |field|
11
+ file_column_fields(klass).each do |field|
12
12
  klass.send :class_eval, <<-EOF, __FILE__, __LINE__ + 1 unless klass.method_defined?(:"#{field}_with_delete=")
13
13
  attr_reader :delete_#{field}
14
-
14
+
15
15
  def delete_#{field}=(value)
16
16
  value = (value=="true") if String===value
17
17
  return unless value
18
-
18
+
19
19
  # passing nil to the file column causes the file to be deleted. Don't delete if we just uploaded a file!
20
20
  self.#{field} = nil unless self.#{field}_just_uploaded?
21
21
  end
22
22
  EOF
23
- }
23
+ end
24
24
  end
25
-
25
+
26
26
  def klass_has_file_column_fields?(klass)
27
27
  true unless file_column_fields(klass).empty?
28
28
  end
29
29
  end
30
-
30
+
31
31
  def file_column_fields
32
- @file_column_fields||=FileColumnHelpers.file_column_fields(self)
32
+ @file_column_fields ||= FileColumnHelpers.file_column_fields(self)
33
33
  end
34
-
34
+
35
35
  def options_for_file_column_field(field)
36
- self.allocate.send("#{field}_options")
36
+ allocate.send("#{field}_options")
37
37
  end
38
-
39
- def field_has_image_version?(field, version="thumb")
40
- begin
41
- # the only way to get to the options of a particular field is to use the instance method
42
- options = options_for_file_column_field(field)
43
- versions = options[:magick][:versions]
44
- raise unless versions.stringify_keys[version]
45
- true
46
- rescue
47
- false
48
- end
38
+
39
+ def field_has_image_version?(field, version = 'thumb')
40
+ options = options_for_file_column_field(field)
41
+ versions = options[:magick][:versions]
42
+ raise unless versions.stringify_keys[version]
43
+ true
44
+ rescue
45
+ false
49
46
  end
50
-
47
+
51
48
  def generate_delete_helpers
52
49
  FileColumnHelpers.generate_delete_helpers(self)
53
50
  end
@@ -4,32 +4,31 @@ module ActiveScaffold
4
4
  module FormColumnHelpers
5
5
  def active_scaffold_input_file_column(column, options)
6
6
  record = options[:object]
7
- ActiveSupport::Deprecation.warn "Relying on @record is deprecated, include :object in html_options with record.", caller if record.nil? # TODO Remove when relying on @record is removed
8
- record ||= @record # TODO Remove when relying on @record is removed
9
- if record.send(column.name)
7
+ ActiveSupport::Deprecation.warn 'Relying on @record is deprecated, include :object in html_options with record.', caller if record.nil? # TODO: Remove when relying on @record is removed
8
+ record ||= @record # TODO: Remove when relying on @record is removed
9
+ if record.send(column.name)
10
10
  # we already have a value? display the form for deletion.
11
11
  case ActiveScaffold.js_framework
12
12
  when :jquery
13
- remove_file_js = "jQuery(this).prev().val('true'); jQuery(this).parent().hide().next().show(); return false;";
13
+ remove_file_js = "jQuery(this).prev().val('true'); jQuery(this).parent().hide().next().show(); return false;"
14
14
  when :prototype
15
- remove_file_js = "$(this).previous().value='true'; p=$(this).up(); p.hide(); p.next().show(); return false;";
16
- end
17
-
15
+ remove_file_js = "$(this).previous().value='true'; p=$(this).up(); p.hide(); p.next().show(); return false;"
16
+ end
17
+
18
18
  hidden_options = options.merge(:id => options[:id] + '_delete', :name => options[:name].sub("[#{column.name}]", "[delete_#{column.name}]"), :value => 'false')
19
19
  custom_hidden_field_tag = hidden_field(:record, column.name, hidden_options)
20
20
 
21
21
  content_tag(:div) do
22
22
  content_tag(:div) do
23
- content = get_column_value(record, column) + " #{custom_hidden_field_tag} | ".html_safe
24
- content += content_tag(:a, as_(:remove_file), {:href => '#', :onclick => remove_file_js})
25
- content += content_tag(:div, file_column_field("record", column.name, options), :style => "display: none")
26
- end
23
+ get_column_value(record, column) + " #{custom_hidden_field_tag} | ".html_safe <<
24
+ content_tag(:a, as_(:remove_file), :href => '#', :onclick => remove_file_js) <<
25
+ content_tag(:div, file_column_field('record', column.name, options), :style => 'display: none')
26
+ end
27
27
  end
28
28
  else
29
- file_column_field("record", column.name, options)
30
- end
29
+ file_column_field('record', column.name, options)
30
+ end
31
31
  end
32
-
33
32
  end
34
33
  end
35
34
  end
@@ -6,21 +6,20 @@ module ActiveScaffold
6
6
  return nil if record.send(column.name).nil?
7
7
  active_scaffold_column_download_link(record, column, File.basename(record.send(column.name)))
8
8
  end
9
-
9
+
10
10
  def active_scaffold_column_download_link(record, column, label = nil)
11
11
  return nil if record.send(column.name).nil?
12
- label||=as_(:download)
13
- link_to( label, url_for_file_column(record, column.name.to_s), :popup => true)
12
+ label ||= as_(:download)
13
+ link_to(label, url_for_file_column(record, column.name.to_s), :popup => true)
14
14
  end
15
-
15
+
16
16
  def active_scaffold_column_thumbnail(record, column)
17
17
  return nil if record.send(column.name).nil?
18
- link_to(
19
- image_tag(url_for_file_column(record, column.name.to_s, "thumb"), :border => 0),
20
- url_for_file_column(record, column.name.to_s),
18
+ link_to(
19
+ image_tag(url_for_file_column(record, column.name.to_s, 'thumb'), :border => 0),
20
+ url_for_file_column(record, column.name.to_s),
21
21
  :popup => true)
22
22
  end
23
-
24
23
  end
25
24
  end
26
25
  end
@@ -1,43 +1,39 @@
1
- require File.join(File.dirname(__FILE__), "../test_helper.rb")
1
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
2
2
 
3
3
  class DeleteFileColumnTest < Test::Unit::TestCase
4
4
  def setup
5
5
  DeleteFileColumn.generate_delete_helpers(MockModel)
6
6
  @model = MockModel.new
7
- @model.band_image = "coolio.jpg"
7
+ @model.band_image = 'coolio.jpg'
8
8
  end
9
-
9
+
10
10
  def test__file_column_fields
11
11
  assert_equal(1, @model.file_column_fields.length)
12
12
  end
13
-
14
- def test__delete_band_image__boolean__should_delete
15
- @model.delete_band_image = true
13
+
14
+ def test__delete_band_image__boolean__should_delete
15
+ @model.delete_band_image = true
16
16
  assert_nil @model.band_image
17
17
  end
18
-
19
- def test__delete_band_image__string__should_delete
20
- @model.delete_band_image = "true"
18
+
19
+ def test__delete_band_image__string__should_delete
20
+ @model.delete_band_image = 'true'
21
21
  assert_nil @model.band_image
22
22
  end
23
-
24
-
25
- def test__delete_band_image__boolean_false__shouldnt_delete
26
- @model.delete_band_image = false
23
+
24
+ def test__delete_band_image__boolean_false__shouldnt_delete
25
+ @model.delete_band_image = false
27
26
  assert_not_nil @model.band_image
28
27
  end
29
-
30
- def test__delete_band_image__string_false__shouldnt_delete
31
- @model.delete_band_image = "false"
28
+
29
+ def test__delete_band_image__string_false__shouldnt_delete
30
+ @model.delete_band_image = 'false'
32
31
  assert_not_nil @model.band_image
33
32
  end
34
-
35
-
33
+
36
34
  def test__just_uploaded__shouldnt_delete
37
35
  @model.band_image_just_uploaded = true
38
- @model.delete_band_image = "true"
36
+ @model.delete_band_image = 'true'
39
37
  assert_not_nil(@model.band_image)
40
38
  end
41
-
42
-
43
- end
39
+ end
@@ -1,9 +1,10 @@
1
1
  class MockModel
2
2
  attr_accessor :name
3
3
  attr_accessor :bio
4
-
4
+
5
5
  attr_accessor :band_image
6
6
  attr_accessor :band_image_just_uploaded
7
- def band_image_just_uploaded?; self.band_image_just_uploaded ? true : false; end
8
-
9
- end
7
+ def band_image_just_uploaded?
8
+ band_image_just_uploaded
9
+ end
10
+ end
@@ -1,15 +1,7 @@
1
1
  require 'test/unit'
2
- require "rubygems"
2
+ require 'rubygems'
3
3
  require 'active_support'
4
4
 
5
- for file in ["../lib/delete_file_column.rb", "mock_model.rb"]
5
+ %w(../lib/delete_file_column.rb mock_model.rb).each do |file|
6
6
  require File.expand_path(File.join(File.dirname(__FILE__), file))
7
7
  end
8
-
9
-
10
-
11
- def dbg
12
- require 'ruby-debug'
13
- Debugger.start
14
- debugger
15
- end
@@ -1,10 +1,12 @@
1
1
  class ActiveScaffold::Bridges::PaperTrail < ActiveScaffold::DataStructures::Bridge
2
2
  def self.install
3
- require File.join(File.dirname(__FILE__), "paper_trail/paper_trail_bridge")
4
- require File.join(File.dirname(__FILE__), "paper_trail/actions")
5
- require File.join(File.dirname(__FILE__), "paper_trail/config")
6
- require File.join(File.dirname(__FILE__), "paper_trail/helper")
7
- ActiveScaffold::Config::Core.send :include, ActiveScaffold::Bridges::PaperTrail::PaperTrailBridge
3
+ require File.join(File.dirname(__FILE__), 'paper_trail/paper_trail_bridge')
4
+ require File.join(File.dirname(__FILE__), 'paper_trail/actions')
5
+ require File.join(File.dirname(__FILE__), 'paper_trail/config')
6
+ require File.join(File.dirname(__FILE__), 'paper_trail/helper')
7
+ end
8
+
9
+ def self.prepare
8
10
  ActionDispatch::Routing::ACTIVE_SCAFFOLD_CORE_ROUTING[:collection][:deleted] = :get
9
11
  end
10
12
  end
@@ -4,10 +4,10 @@ module ActiveScaffold
4
4
  module PaperTrailBridge
5
5
  def initialize_with_paper_trail(model_id)
6
6
  initialize_without_paper_trail(model_id)
7
- return unless self.model < ::PaperTrail::Model::InstanceMethods
8
- self.actions << :deleted_records
7
+ return unless model < ::PaperTrail::Model::InstanceMethods
8
+ actions << :deleted_records
9
9
  end
10
-
10
+
11
11
  def self.included(base)
12
12
  base.alias_method_chain :initialize, :paper_trail
13
13
  end
@@ -15,3 +15,4 @@ module ActiveScaffold
15
15
  end
16
16
  end
17
17
  end
18
+ ActiveScaffold::Config::Core.send :include, ActiveScaffold::Bridges::PaperTrail::PaperTrailBridge
@@ -1,12 +1,12 @@
1
1
  class ActiveScaffold::Bridges::Paperclip < ActiveScaffold::DataStructures::Bridge
2
2
  def self.install
3
3
  if ActiveScaffold::Config::Core.method_defined?(:initialize_with_paperclip)
4
- raise RuntimeError, "We've detected that you have active_scaffold_paperclip_bridge installed. This plugin has been moved to core. Please remove active_scaffold_paperclip_bridge to prevent any conflicts"
4
+ raise "We've detected that you have active_scaffold_paperclip_bridge installed. This plugin has been moved to core. Please remove active_scaffold_paperclip_bridge to prevent any conflicts"
5
5
  end
6
- require File.join(File.dirname(__FILE__), "paperclip/form_ui")
7
- require File.join(File.dirname(__FILE__), "paperclip/list_ui")
8
- require File.join(File.dirname(__FILE__), "paperclip/paperclip_bridge_helpers")
9
- require File.join(File.dirname(__FILE__), "paperclip/paperclip_bridge")
6
+ require File.join(File.dirname(__FILE__), 'paperclip/form_ui')
7
+ require File.join(File.dirname(__FILE__), 'paperclip/list_ui')
8
+ require File.join(File.dirname(__FILE__), 'paperclip/paperclip_bridge_helpers')
9
+ require File.join(File.dirname(__FILE__), 'paperclip/paperclip_bridge')
10
10
  ActiveScaffold::Config::Core.send :include, ActiveScaffold::Bridges::Paperclip::PaperclipBridge
11
11
  end
12
12
  end
@@ -3,8 +3,8 @@ module ActiveScaffold
3
3
  module FormColumnHelpers
4
4
  def active_scaffold_input_paperclip(column, options)
5
5
  record = options[:object]
6
- ActiveSupport::Deprecation.warn "Relying on @record is deprecated, include :object in html_options with record.", caller if record.nil? # TODO Remove when relying on @record is removed
7
- record ||= @record # TODO Remove when relying on @record is removed
6
+ ActiveSupport::Deprecation.warn 'Relying on @record is deprecated, include :object in html_options with record.', caller if record.nil? # TODO: Remove when relying on @record is removed
7
+ record ||= @record # TODO: Remove when relying on @record is removed
8
8
  options = active_scaffold_input_text_options(options.merge(column.options))
9
9
 
10
10
  input = file_field(:record, column.name, options)
@@ -12,20 +12,21 @@ module ActiveScaffold
12
12
  if paperclip.file?
13
13
  case ActiveScaffold.js_framework
14
14
  when :jquery
15
- js_remove_file_code = "jQuery(this).prev().val('true'); jQuery(this).parent().hide().next().show(); return false;";
15
+ js_remove_file_code = "jQuery(this).prev().val('true'); jQuery(this).parent().hide().next().show(); return false;"
16
16
  when :prototype
17
- js_remove_file_code = "$(this).previous().value='true'; $(this).up().hide().next().show(); return false;";
17
+ js_remove_file_code = "$(this).previous().value='true'; $(this).up().hide().next().show(); return false;"
18
18
  end
19
-
19
+
20
20
  object_name, method = options[:name].split(/\[(#{column.name})\]/)
21
21
  method.sub!(/#{column.name}/, 'delete_\0')
22
22
 
23
23
  content = active_scaffold_column_paperclip(record, column)
24
- content_tag(:div,
25
- content + " | " +
26
- hidden_field(object_name, method, :value => "false") +
27
- content_tag(:a, as_(:remove_file), {:href => '#', :onclick => js_remove_file_code})
28
- ) + content_tag(:div, input, :style => "display: none")
24
+ content_tag(
25
+ :div,
26
+ content + ' | ' +
27
+ hidden_field(object_name, method, :value => 'false') +
28
+ content_tag(:a, as_(:remove_file), :href => '#', :onclick => js_remove_file_code)
29
+ ) + content_tag(:div, input, :style => 'display: none')
29
30
  else
30
31
  input
31
32
  end
@@ -4,11 +4,12 @@ module ActiveScaffold
4
4
  def active_scaffold_column_paperclip(record, column)
5
5
  paperclip = record.send("#{column.name}")
6
6
  return nil unless paperclip.file?
7
- content = if paperclip.styles.include?(ActiveScaffold::Bridges::Paperclip::PaperclipBridgeHelpers.thumbnail_style)
8
- image_tag(paperclip.url(ActiveScaffold::Bridges::Paperclip::PaperclipBridgeHelpers.thumbnail_style), :border => 0)
9
- else
10
- paperclip.original_filename
11
- end
7
+ content =
8
+ if paperclip.styles.include?(ActiveScaffold::Bridges::Paperclip::PaperclipBridgeHelpers.thumbnail_style)
9
+ image_tag(paperclip.url(ActiveScaffold::Bridges::Paperclip::PaperclipBridgeHelpers.thumbnail_style), :border => 0)
10
+ else
11
+ paperclip.original_filename
12
+ end
12
13
  link_to(content, paperclip.url, :target => '_blank')
13
14
  end
14
15
  end
@@ -4,15 +4,15 @@ module ActiveScaffold
4
4
  module PaperclipBridge
5
5
  def initialize_with_paperclip(model_id)
6
6
  initialize_without_paperclip(model_id)
7
- return unless self.model.respond_to?(:attachment_definitions) && !self.model.attachment_definitions.nil?
7
+ return unless model.respond_to?(:attachment_definitions) && !model.attachment_definitions.nil?
8
8
 
9
- self.update.multipart = true
10
- self.create.multipart = true
9
+ update.multipart = true
10
+ create.multipart = true
11
11
 
12
- self.model.attachment_definitions.keys.each do |field|
12
+ model.attachment_definitions.keys.each do |field|
13
13
  configure_paperclip_field(field.to_sym)
14
14
  # define the "delete" helper for use with active scaffold, unless it's already defined
15
- ActiveScaffold::Bridges::Paperclip::PaperclipBridgeHelpers.generate_delete_helper(self.model, field)
15
+ ActiveScaffold::Bridges::Paperclip::PaperclipBridgeHelpers.generate_delete_helper(model, field)
16
16
  end
17
17
  end
18
18
 
@@ -21,13 +21,14 @@ module ActiveScaffold
21
21
  end
22
22
 
23
23
  private
24
+
24
25
  def configure_paperclip_field(field)
25
- self.columns << field
26
- self.columns[field].form_ui ||= :paperclip
27
- self.columns[field].params.add "delete_#{field}"
26
+ columns << field
27
+ columns[field].form_ui ||= :paperclip
28
+ columns[field].params.add "delete_#{field}"
28
29
 
29
30
  [:file_name, :content_type, :file_size, :updated_at].each do |f|
30
- self.columns.exclude("#{field}_#{f}".to_sym)
31
+ columns.exclude("#{field}_#{f}".to_sym)
31
32
  end
32
33
  end
33
34
  end
@@ -1,6 +1,6 @@
1
1
  class ActiveScaffold::Bridges::RecordSelect < ActiveScaffold::DataStructures::Bridge
2
2
  def self.install
3
- require File.join(File.dirname(__FILE__), "record_select/helpers.rb")
3
+ require File.join(File.dirname(__FILE__), 'record_select/helpers.rb')
4
4
  end
5
5
  def self.stylesheets
6
6
  'record_select'
@@ -11,8 +11,8 @@ class ActiveScaffold::Bridges::RecordSelect
11
11
  # requires RecordSelect plugin to be installed and configured.
12
12
  def active_scaffold_input_record_select(column, options)
13
13
  record = options.delete(:object)
14
- ActiveSupport::Deprecation.warn "Relying on @record is deprecated, include :object in html_options with record.", caller if record.nil? # TODO Remove when relying on @record is removed
15
- record ||= @record # TODO Remove when relying on @record is removed
14
+ ActiveSupport::Deprecation.warn 'Relying on @record is deprecated, include :object in html_options with record.', caller if record.nil? # TODO: Remove when relying on @record is removed
15
+ record ||= @record # TODO: Remove when relying on @record is removed
16
16
  if column.singular_association?
17
17
  multiple = false
18
18
  multiple = column.options[:html_options][:multiple] if column.options[:html_options] && column.options[:html_options][:multiple]
@@ -28,11 +28,12 @@ class ActiveScaffold::Bridges::RecordSelect
28
28
  unless column.association
29
29
  raise ArgumentError, "record_select can only work against associations (and #{column.name} is not). A common mistake is to specify the foreign key field (like :user_id), instead of the association (:user)."
30
30
  end
31
- klass = if column.polymorphic_association?
32
- record.send(column.association.foreign_type).constantize rescue nil
33
- else
34
- column.association.klass
35
- end
31
+ klass =
32
+ if column.polymorphic_association?
33
+ record.send(column.association.foreign_type).constantize rescue nil
34
+ else
35
+ column.association.klass
36
+ end
36
37
  return content_tag :span, '', :class => options[:class] unless klass
37
38
 
38
39
  remote_controller = active_scaffold_controller_for(klass).controller_path
@@ -40,23 +41,24 @@ class ActiveScaffold::Bridges::RecordSelect
40
41
  # if the opposite association is a :belongs_to (in that case association in this class must be has_one or has_many)
41
42
  # then only show records that have not been associated yet
42
43
  if [:has_one, :has_many].include?(column.association.macro)
43
- params.merge!({column.association.foreign_key => ''})
44
+ params.merge!(column.association.foreign_key => '')
44
45
  end
45
-
46
+
46
47
  record_select_options = active_scaffold_input_text_options(options).merge(
47
48
  :controller => remote_controller
48
49
  )
49
50
  record_select_options.merge!(column.options)
50
-
51
- html = if multiple
52
- record_multi_select_field(options[:name], value || [], record_select_options)
53
- else
54
- record_select_field(options[:name], value || klass.new, record_select_options)
55
- end
51
+
52
+ html =
53
+ if multiple
54
+ record_multi_select_field(options[:name], value || [], record_select_options)
55
+ else
56
+ record_select_field(options[:name], value || klass.new, record_select_options)
57
+ end
56
58
  html = self.class.field_error_proc.call(html, self) if record.errors[column.name].any?
57
59
  html
58
60
  end
59
-
61
+
60
62
  def active_scaffold_record_select_autocomplete(record, column, options)
61
63
  record_select_options = active_scaffold_input_text_options(options).merge(
62
64
  :controller => active_scaffold_controller_for(record.class).controller_path
@@ -72,21 +74,19 @@ class ActiveScaffold::Bridges::RecordSelect
72
74
  value = field_search_record_select_value(column)
73
75
  active_scaffold_record_select(options[:object], column, options, value, column.options[:multiple])
74
76
  end
75
-
77
+
76
78
  def field_search_record_select_value(column)
77
- begin
78
- value = field_search_params[column.name]
79
- unless value.blank?
80
- if column.options[:multiple]
81
- column.association.klass.find value.collect!(&:to_i)
82
- else
83
- column.association.klass.find(value.to_i)
84
- end
79
+ value = field_search_params[column.name]
80
+ unless value.blank?
81
+ if column.options[:multiple]
82
+ column.association.klass.find value.collect!(&:to_i)
83
+ else
84
+ column.association.klass.find(value.to_i)
85
85
  end
86
- rescue Exception => e
87
- logger.error "#{e.class.name}: #{e.message} -- Sorry, we are not that smart yet. Attempted to restore search values to search fields :#{column.name} in #{controller.class}"
88
- raise e
89
86
  end
87
+ rescue StandardError => e
88
+ logger.error "#{e.class.name}: #{e.message} -- Sorry, we are not that smart yet. Attempted to restore search values to search fields :#{column.name} in #{controller.class}"
89
+ raise e
90
90
  end
91
91
  end
92
92
  end