Module: DynamicScope::ViewHelpers

Defined in:
lib/dynamic_scope/view_helpers.rb

Instance Method Summary collapse

Instance Method Details

#dynamic_scope(columns, options = {}, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dynamic_scope/view_helpers.rb', line 9

def dynamic_scope(columns, options = {}, &block)
  options[:method] ||= :get
  options[:param_name] ||= :dynamic_scope
  options[:clear_scope_link] = true if options[:clear_scope_link].nil?
  old_scope = params[options[:param_name]]&.to_unsafe_h || {}
  (:div, class: :dynamic_scope) do
    concat((:div, class: :templates) { dynamic_scope_input_templates(columns, options) } )
    concat(form_tag({}, options) do
      generate_dynamic_scope_controls(columns, old_scope, options)
      if block_given?
        concat((:div, class: :dynamic_scope_content) do
          concat capture(&block)
        end)
      else
        concat(dynamic_scope_controls)
      end
    end)
  end
end

#dynamic_scope_controlsObject



35
36
37
# File 'lib/dynamic_scope/view_helpers.rb', line 35

def dynamic_scope_controls
  @dynamic_scope_controls
end

#dynamic_scope_for(model, old_scope = nil, options = {}, &block) ⇒ Object



3
4
5
6
7
# File 'lib/dynamic_scope/view_helpers.rb', line 3

def dynamic_scope_for(model, old_scope = nil, options={}, &block)
  columns = model.send(:dynamic_scope_columns)
  old_scope = nil if model.send(:dynamic_scope_is_empty?, old_scope)
  dynamic_scope(columns, old_scope, options, block)
end


29
30
31
32
33
# File 'lib/dynamic_scope/view_helpers.rb', line 29

def link_to_add_dynamic_scope_field
  link_to('javascript:void(0);', :class => 'dynamic_scope_add') do
    concat( (:span) { t('dynamic_scope.add_criteria') } )
  end
end