Module: ActiveScaffold::Helpers::ViewHelpers
Overview
All extra helpers that should be included in the View. Also a dumping ground for uncategorized helpers.
Instance Method Summary
collapse
-
#action_link_html(link, url, html_options, record) ⇒ Object
-
#action_link_html_options(link, url_options, record, html_options) ⇒ Object
-
#action_link_url_options(link, url_options, record, options = {}) ⇒ Object
-
#active_scaffold_config ⇒ Object
access to the configuration variable.
-
#active_scaffold_config_for(*args) ⇒ Object
-
#active_scaffold_controller_for(*args) ⇒ Object
-
#active_scaffold_error_messages_for(*params) ⇒ Object
-
#active_scaffold_ie_stylesheets(frontend = :default) ⇒ Object
Provides stylesheets for IE to include with stylesheet_link_tag
.
-
#active_scaffold_includes(*args) ⇒ Object
easy way to include ActiveScaffold assets.
-
#active_scaffold_javascripts(frontend = :default) ⇒ Object
Provides list of javascripts to include with javascript_include_tag
You can use this with your javascripts like <%= javascript_include_tag :defaults, ‘your_own_cool_script’, active_scaffold_javascripts, :cache => true %>.
-
#active_scaffold_stylesheets(frontend = :default) ⇒ Object
Provides stylesheets to include with stylesheet_link_tag
.
-
#as_main_div_class ⇒ Object
-
#clean_class_name(name) ⇒ Object
-
#clean_column_name(name) ⇒ Object
-
#column_calculation(column) ⇒ Object
-
#column_class(column, column_value, record) ⇒ Object
-
#column_empty?(column_value) ⇒ Boolean
-
#column_heading_class(column, sorting) ⇒ Object
-
#column_show_add_existing(column) ⇒ Object
-
#column_show_add_new(column, associated, record) ⇒ Object
-
#controller_path_for_activerecord(klass) ⇒ Object
-
#form_remote_upload_tag(url_for_options = {}, options = {}) ⇒ Object
-
#generate_temporary_id ⇒ Object
-
#get_action_link_id(url_options, record = nil, column = nil) ⇒ Object
-
#in_subform?(column, parent_record) ⇒ Boolean
Should this column be displayed in the subform?.
-
#link_to_visibility_toggle(id, options = {}) ⇒ Object
Creates a javascript-based link that toggles the visibility of some element on the page.
-
#loading_indicator_tag(options) ⇒ Object
a general-use loading indicator (the “stuff is happening, please wait” feedback).
-
#option_tags_for(select_options, options = {}) ⇒ Object
Turns [[label, value]] into <option> tags Takes optional parameter of :include_blank.
-
#render_action_link(link, url_options, record = nil, html_options = {}) ⇒ Object
-
#render_column_calculation(column) ⇒ Object
-
#render_group_action_link(link, url_options, options, record = nil) ⇒ Object
-
#skip_action_link(link, *args) ⇒ Object
-
#template_exists?(template_name, partial = false) ⇒ Boolean
This is the template finder logic, keep it updated with however we find stuff in rails currently this very similar to the logic in ActionBase::Base.render for options file.
-
#url_options_for_nested_link(column, record, link, url_options, options = {}) ⇒ Object
-
#url_options_for_sti_link(column, record, link, url_options, options = {}) ⇒ Object
#active_scaffold_human_condition_for, #override_human_condition, #override_human_condition?, #override_human_condition_column, #override_human_condition_column?
#active_scaffold_search_boolean, #active_scaffold_search_date, #active_scaffold_search_datetime, #active_scaffold_search_for, #active_scaffold_search_multi_select, #active_scaffold_search_null, #active_scaffold_search_options, #active_scaffold_search_range, #active_scaffold_search_range_comparator_options, #active_scaffold_search_range_string?, #active_scaffold_search_record_select, #active_scaffold_search_select, #active_scaffold_search_text, #active_scaffold_search_time, #field_search_datetime_value, #field_search_params_range_values, #field_search_record_select_value, #override_search, #override_search?, #override_search_field, #override_search_field?, #searched_by?, #visibles_and_hiddens
#active_scaffold_add_existing_input, #active_scaffold_add_existing_label, #active_scaffold_checkbox_list, #active_scaffold_input_boolean, #active_scaffold_input_carrierwave, #active_scaffold_input_checkbox, #active_scaffold_input_enum, #active_scaffold_input_file_column, #active_scaffold_input_for, #active_scaffold_input_hidden, #active_scaffold_input_options, #active_scaffold_input_paperclip, #active_scaffold_input_password, #active_scaffold_input_plural_association, #active_scaffold_input_radio, #active_scaffold_input_record_select, #active_scaffold_input_select, #active_scaffold_input_singular_association, #active_scaffold_input_text_field, #active_scaffold_input_text_options, #active_scaffold_input_textarea, #active_scaffold_record_select, #active_scaffold_render_input, #active_scaffold_translated_option, #column_renders_as, #column_scope, #form_partial_for_column, #onsubmit, #override_form_field, #override_form_field_name, #override_form_field_partial, #override_form_field_partial?, #override_input, #override_input?, #override_subform_partial, #override_subform_partial?, #subform_partial_for_column, #update_columns_options
#active_scaffold_show_text, #override_show_column_ui, #override_show_column_ui?, #show_column_override, #show_column_override?, #show_column_value
#action_link_to_inline_form, #active_scaffold_column_carrierwave, #active_scaffold_column_checkbox, #active_scaffold_column_download_link, #active_scaffold_column_download_link_with_filename, #active_scaffold_column_paperclip, #active_scaffold_column_select, #active_scaffold_column_text, #active_scaffold_column_thumbnail, #active_scaffold_inplace_edit, #cache_association, #clean_column_value, #column_controller_override, #column_controller_override?, #column_heading_value, #column_link_authorized?, #column_override, #column_override?, #configure_column_link, #format_association_value, #format_column_value, #format_inplace_edit_column, #format_number_value, #format_value, #generate_list_column_helper_code, #get_column_value, #inplace_edit?, #inplace_edit_cloning?, #inplace_edit_control, #inplace_edit_control_css_class, #inplace_edit_tag_attributes, #list_column_helper_code_by_column_type, #mark_column_heading, #numeric_to_string_method_code, #override_column_ui, #override_column_ui?, #render_column_heading, #render_list_column, #render_nested_view
#pagination_ajax_link, #pagination_ajax_links
#association_options_count, #association_options_find, #options_for_association, #options_for_association_conditions, #options_for_association_count
Methods included from IdHelpers
#action_iframe_id, #action_link_id, #active_scaffold_calculations_id, #active_scaffold_column_header_id, #active_scaffold_content_id, #active_scaffold_id, #active_scaffold_messages_id, #active_scaffold_tbody_id, #association_subform_id, #before_header_id, #controller_id, #element_cell_id, #element_form_id, #element_messages_id, #element_row_id, #empty_message_id, #id_from_controller, #loading_indicator_id, #search_input_id, #sub_form_id, #sub_form_list_id, #sub_section_id, #table_action_id
Instance Method Details
#action_link_html(link, url, html_options, record) ⇒ Object
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 211
def action_link_html(link, url, html_options, record)
label = url.delete(:link) if url.is_a?(Hash)
label ||= link.label
begin
if link.image.nil?
html = link_to(label, url, html_options)
else
html = link_to(image_tag(link.image[:name] , :size => link.image[:size], :alt => label), url, html_options)
end
url.nil? ? html.sub(/href=".*?"/, '').html_safe : html.html_safe
rescue ActionController::RoutingError => e
Rails.logger.error("ActiveScaffold link_to routing Error: #{e.inspect}")
"Routing Error"
end
end
|
#action_link_html_options(link, url_options, record, html_options) ⇒ Object
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 173
def action_link_html_options(link, url_options, record, html_options)
html_options.reverse_merge! link.html_options.merge(:class => link.action)
html_options[:method] = link.method if link.method != :get
html_options['data-confirm'] = link.confirm(record.try(:to_label)) if link.confirm?
html_options['data-controller'] = link.controller.to_s if link.controller
if link.inline?
html_options['data-position'] = link.position if link.position
html_options[:class] += ' as_action'
html_options['data-action'] = link.action
html_options['data-keep_open'] = true if link.keep_open?
end
if link.
html_options['data-popup'] = true
html_options[:target] = '_blank'
end
html_options[:remote] = true unless link.page? || link.
html_options[:class] += " #{link.html_options[:class]}" unless link.html_options[:class].blank?
html_options
end
|
#action_link_url_options(link, url_options, record, options = {}) ⇒ Object
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 158
def action_link_url_options(link, url_options, record, options = {})
url_options = url_options.clone
url_options[:action] = link.action
url_options[:controller] = link.controller.to_s if link.controller
url_options.delete(:search) if link.controller and link.controller.to_s != params[:controller]
url_options.merge! link.parameters if link.parameters
@link_record = record
url_options.merge! self.instance_eval(&(link.dynamic_parameters)) if link.dynamic_parameters.is_a?(Proc)
@link_record = nil
url_options_for_nested_link(link.column, record, link, url_options, options) if link.nested_link?
url_options_for_sti_link(link.column, record, link, url_options, options) unless record.nil? || active_scaffold_config.sti_children.nil?
url_options[:_method] = link.method if !link.confirm? && link.inline? && link.method != :get
url_options
end
|
#active_scaffold_config ⇒ Object
access to the configuration variable
20
21
22
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 20
def active_scaffold_config
controller.class.active_scaffold_config
end
|
#active_scaffold_config_for(*args) ⇒ Object
24
25
26
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 24
def active_scaffold_config_for(*args)
controller.class.active_scaffold_config_for(*args)
end
|
#active_scaffold_controller_for(*args) ⇒ Object
28
29
30
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 28
def active_scaffold_controller_for(*args)
controller.class.active_scaffold_controller_for(*args)
end
|
#active_scaffold_error_messages_for(*params) ⇒ Object
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 341
def active_scaffold_error_messages_for(*params)
options = params..symbolize_keys
options.reverse_merge!(:container_tag => :div, :list_type => :ul)
objects = Array.wrap(options.delete(:object) || params).map do |object|
object = instance_variable_get("@#{object}") unless object.respond_to?(:to_model)
object = convert_to_model(object)
if object.class.respond_to?(:model_name)
options[:object_name] ||= object.class.model_name.human.downcase
end
object
end
objects.compact!
count = objects.inject(0) {|sum, object| sum + object.errors.count }
unless count.zero?
html = {}
[:id, :class].each do |key|
if options.include?(key)
value = options[key]
html[key] = value unless value.blank?
else
html[key] = 'errorExplanation'
end
end
options[:object_name] ||= params.first
= if options.include?(:header_message)
options[:header_message]
else
as_('errors.template.header', :count => count, :model => options[:object_name].to_s.gsub('_', ' '))
end
message = options.include?(:message) ? options[:message] : as_('errors.template.body')
error_messages = objects.sum do |object|
object.errors.full_messages.map do |msg|
options[:list_type] != :br ? content_tag(:li, msg) : msg
end
end
error_messages = if options[:list_type] == :br
error_messages.join('<br/>').html_safe
else
content_tag(options[:list_type], error_messages.join.html_safe)
end
contents = []
contents << content_tag(options[:header_tag] || :h2, ) unless .blank?
contents << content_tag(:p, message) unless message.blank?
contents << error_messages
contents = contents.join.html_safe
options[:container_tag] ? content_tag(options[:container_tag], contents, html) : contents
else
''
end
end
|
#active_scaffold_ie_stylesheets(frontend = :default) ⇒ Object
Provides stylesheets for IE to include with stylesheet_link_tag
102
103
104
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 102
def active_scaffold_ie_stylesheets(frontend = :default)
[ActiveScaffold::Config::Core.asset_path("stylesheet-ie.css", frontend)]
end
|
#active_scaffold_includes(*args) ⇒ Object
easy way to include ActiveScaffold assets
107
108
109
110
111
112
113
114
115
116
117
118
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 107
def active_scaffold_includes(*args)
frontend = args.first.is_a?(Symbol) ? args.shift : :default
options = args.first.is_a?(Hash) ? args.shift : {}
js = javascript_include_tag(*active_scaffold_javascripts(frontend).push(options))
css = stylesheet_link_tag(*active_scaffold_stylesheets(frontend).push(options))
options[:cache] += '_ie' if options[:cache].is_a? String
options[:concat] += '_ie' if options[:concat].is_a? String
ie_css = stylesheet_link_tag(*active_scaffold_ie_stylesheets(frontend).push(options))
js + "\n" + css + "\n<!--[if IE]>".html_safe + ie_css + "<![endif]-->\n".html_safe
end
|
#active_scaffold_javascripts(frontend = :default) ⇒ Object
Provides list of javascripts to include with javascript_include_tag
You can use this with your javascripts like
<%= javascript_include_tag :defaults, 'your_own_cool_script', active_scaffold_javascripts, :cache => true %>
#active_scaffold_stylesheets(frontend = :default) ⇒ Object
Provides stylesheets to include with stylesheet_link_tag
97
98
99
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 97
def active_scaffold_stylesheets(frontend = :default)
[ActiveScaffold::Config::Core.asset_path("stylesheet.css", frontend)]
end
|
#as_main_div_class ⇒ Object
285
286
287
288
289
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 285
def as_main_div_class
classes = ["active-scaffold", "active-scaffold-#{controller_id}", "#{params[:controller]}-view", "#{active_scaffold_config.theme}-theme"]
classes << "as_touch" if touch_device?
classes.join(' ')
end
|
#clean_class_name(name) ⇒ Object
337
338
339
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 337
def clean_class_name(name)
name.underscore.gsub('/', '_')
end
|
#clean_column_name(name) ⇒ Object
333
334
335
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 333
def clean_column_name(name)
name.to_s.gsub('?', '')
end
|
#column_calculation(column) ⇒ Object
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 299
def column_calculation(column)
unless column.calculate.instance_of? Proc
conditions = controller.send(:all_conditions)
includes = active_scaffold_config.list.count_includes
includes ||= controller.send(:active_scaffold_includes) unless conditions.nil?
calculation_scope = beginning_of_chain
append_to_query(calculation_scope, {
:where => conditions,
:joins => controller.send(:joins_for_collection),
:includes => includes})
calculation_scope.calculate(column.calculate, column.name)
else
column.calculate.call(@records)
end
end
|
#column_class(column, column_value, record) ⇒ Object
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 260
def column_class(column, column_value, record)
@numeric_classes ||= [:decimal, :float, :integer]
classes = []
classes << "#{column.name}-column"
if column.css_class.is_a?(Proc)
css_class = column.css_class.call(column_value, record)
classes << css_class unless css_class.nil?
else
classes << column.css_class
end unless column.css_class.nil?
classes << 'empty' if column_empty? column_value
classes << 'sorted' if active_scaffold_config.list.user.sorting.sorts_on?(column)
classes << 'numeric' if column.column && @numeric_classes.include?(column.column.type)
classes.join(' ').rstrip
end
|
#column_empty?(column_value) ⇒ Boolean
291
292
293
294
295
296
297
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 291
def column_empty?(column_value)
@empty_column_strings ||= [' ', active_scaffold_config.list.empty_field_text]
empty = column_value.nil?
empty ||= column_value.empty? if column_value.respond_to? :empty?
empty ||= @empty_column_strings.include?(column_value) if String === column_value
return empty
end
|
#column_heading_class(column, sorting) ⇒ Object
277
278
279
280
281
282
283
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 277
def column_heading_class(column, sorting)
classes = []
classes << "#{column.name}-column_heading"
classes << "sorted #{sorting.direction_of(column).downcase}" if sorting.sorts_on? column
classes << column.css_class unless column.css_class.nil? || column.css_class.is_a?(Proc)
classes.join(' ')
end
|
#column_show_add_existing(column) ⇒ Object
323
324
325
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 323
def column_show_add_existing(column)
(column.allow_add_existing and options_for_association_count(column.association) > 0)
end
|
#column_show_add_new(column, associated, record) ⇒ Object
327
328
329
330
331
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 327
def column_show_add_new(column, associated, record)
value = (column.plural_association? && !column.readonly_association?) || (column.singular_association? and not associated.empty?)
value = false unless record.class.authorized_for?(:crud_type => :create)
value
end
|
#controller_path_for_activerecord(klass) ⇒ Object
36
37
38
39
40
41
42
43
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 36
def controller_path_for_activerecord(klass)
begin
controller = active_scaffold_controller_for(klass)
controller.controller_path
rescue ActiveScaffold::ControllerNotFound
controller = nil
end
end
|
78
79
80
81
82
83
84
85
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 78
def form_remote_upload_tag(url_for_options = {}, options = {})
options[:target] = action_iframe_id(url_for_options)
options[:multipart] ||= true
options[:class] = "#{options[:class]} as_remote_upload".strip
output=""
output << form_tag(url_for_options, options)
(output << "<iframe id='#{action_iframe_id(url_for_options)}' name='#{action_iframe_id(url_for_options)}' style='display:none'></iframe>").html_safe
end
|
#generate_temporary_id ⇒ Object
51
52
53
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 51
def generate_temporary_id
(Time.now.to_f*1000).to_i.to_s
end
|
#get_action_link_id(url_options, record = nil, column = nil) ⇒ Object
198
199
200
201
202
203
204
205
206
207
208
209
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 198
def get_action_link_id(url_options, record = nil, column = nil)
id = url_options[:id] || url_options[:parent_id]
id = "#{column.association.name}-#{record.id}" if column && column.plural_association?
if record.try(column.association.name.to_sym).present?
id = "#{column.association.name}-#{record.send(column.association.name).id}-#{record.id}"
else
id = "#{column.association.name}-#{record.id}" unless record.nil?
end if column && column.singular_association?
id = "#{id}-#{url_options[:batch_scope].downcase}" if url_options[:batch_scope]
action_id = "#{id_from_controller(url_options[:controller]) + '-' if url_options[:parent_controller]}#{url_options[:action].to_s}"
action_link_id(action_id, id)
end
|
Should this column be displayed in the subform?
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 66
def in_subform?(column, parent_record)
return true unless column.association
return false if column.polymorphic_association?
return false if column.association.reverse_for?(parent_record.class)
return true
end
|
#link_to_visibility_toggle(id, options = {}) ⇒ Object
Creates a javascript-based link that toggles the visibility of some element on the page. By default, it toggles the visibility of the sibling after the one it’s nested in. You may pass custom javascript logic in options to change that, though. For example, you could say :of => ‘$(“my_div_id”)’. You may also flag whether the other element is visible by default or not, and the initial text will adjust accordingly.
128
129
130
131
132
133
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 128
def link_to_visibility_toggle(id, options = {})
options[:default_visible] = true if options[:default_visible].nil?
options[:hide_label] = as_(:hide)
options[:show_label] = as_(:show)
javascript_tag("ActiveScaffold.create_visibility_toggle('#{id}', #{options.to_json});")
end
|
#loading_indicator_tag(options) ⇒ Object
a general-use loading indicator (the “stuff is happening, please wait” feedback)
121
122
123
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 121
def loading_indicator_tag(options)
image_tag "indicator.gif", :style => "visibility:hidden;", :id => loading_indicator_id(options), :alt => "loading indicator", :class => "loading-indicator"
end
|
Turns [[label, value]] into <option> tags Takes optional parameter of :include_blank
57
58
59
60
61
62
63
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 57
def option_tags_for(select_options, options = {})
select_options.insert(0,[as_(:_select_),nil]) if options[:include_blank]
select_options.collect do |option|
label, value = option[0], option[1]
value.nil? ? "<option value="">#{label}</option>" : "<option value=\"#{value}\">#{label}</option>"
end
end
|
#render_action_link(link, url_options, record = nil, html_options = {}) ⇒ Object
139
140
141
142
143
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 139
def render_action_link(link, url_options, record = nil, html_options = {})
url_options = action_link_url_options(link, url_options, record)
html_options = action_link_html_options(link, url_options, record, html_options)
action_link_html(link, url_options, html_options, record)
end
|
#render_column_calculation(column) ⇒ Object
315
316
317
318
319
320
321
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 315
def render_column_calculation(column)
calculation = column_calculation(column)
override_formatter = "render_#{column.name}_#{column.calculate}"
calculation = send(override_formatter, calculation) if respond_to? override_formatter
"#{"#{as_(column.calculate)}: " unless column.calculate.is_a? Proc}#{format_column_value nil, column, calculation}"
end
|
#render_group_action_link(link, url_options, options, record = nil) ⇒ Object
145
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 145
def render_group_action_link(link, url_options, options, record = nil)
if link.type == :member && !options[:authorized]
action_link_html(link, nil, {:class => "disabled #{link.action}#{link.html_options[:class].blank? ? '' : (' ' + link.html_options[:class])}"}, record)
else
begin
render_action_link(link, url_options, record)
rescue
Rails.logger.error("render_action_link: exception occured: #{$!} link: #{link.inspect}, url_options: #{url_options.inspect}, options: #{options.inspect}, record: #{record.inspect}")
action_link_html(link, nil, {:class => "disabled #{link.action}#{link.html_options[:class].blank? ? '' : (' ' + link.html_options[:class])}"}, record)
end
end
end
|
#skip_action_link(link, *args) ⇒ Object
135
136
137
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 135
def skip_action_link(link, *args)
(!link.ignore_method.nil? && controller.respond_to?(link.ignore_method, true) && controller.send(link.ignore_method, *args)) || ((link.security_method_set? or controller.respond_to?(link.security_method, true)) and !controller.send(link.security_method, *args))
end
|
#template_exists?(template_name, partial = false) ⇒ Boolean
This is the template finder logic, keep it updated with however we find stuff in rails currently this very similar to the logic in ActionBase::Base.render for options file
47
48
49
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 47
def template_exists?(template_name, partial = false)
lookup_context.exists? template_name, '', partial
end
|
#url_options_for_nested_link(column, record, link, url_options, options = {}) ⇒ Object
232
233
234
235
236
237
238
239
240
241
242
243
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 232
def url_options_for_nested_link(column, record, link, url_options, options = {})
if column && column.association
url_options[:assoc_id] = url_options.delete(:id)
url_options[:id] = record.send(column.association.name).id if column.singular_association? && record.send(column.association.name).present?
link.eid = "#{controller_id.from(3)}_#{record.id}_#{column.association.name}" unless options.has_key?(:reuse_eid)
url_options[:eid] = link.eid
elsif link.parameters && link.parameters[:named_scope]
url_options[:assoc_id] = url_options.delete(:id)
link.eid = "#{controller_id.from(3)}_#{record.id}_#{link.parameters[:named_scope]}" unless options.has_key?(:reuse_eid)
url_options[:eid] = link.eid
end
end
|
#url_options_for_sti_link(column, record, link, url_options, options = {}) ⇒ Object
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
# File 'lib/active_scaffold/helpers/view_helpers.rb', line 245
def url_options_for_sti_link(column, record, link, url_options, options = {})
if link.column.nil?
sti_controller_path = controller_path_for_activerecord(record.class)
if sti_controller_path
url_options[:controller] = sti_controller_path
url_options[:parent_sti] = controller_path
end
end
end
|