Module: VisualConditionBuilder::ApplicationHelper

Included in:
ApplicationDictionary
Defined in:
app/helpers/visual_condition_builder/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#build_conditions(dictionary, *args) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/helpers/visual_condition_builder/application_helper.rb', line 4

def build_conditions(dictionary, *args)
  dictionary_name = get_dictionary_name(dictionary)
  dictionary_klass = get_dictionary_klass(dictionary)
  container_name = "#{dictionary_name}_condition_container"

  hArgs = (args ||= []).reduce(Hash.new, :merge)
  hArgs = normalize_placeholder_label(hArgs)

  builder_options = {
      dictionary: dictionary_klass.dictionary(get_dictionary_context(dictionary), self.request)
  }.deep_merge(hArgs)

  capture do
    concat((:div, nil, id: container_name))
    concat(javascript_tag(<<txtjs
        $(document).ready(function () {
          $('##{container_name}').conditionBuilder(#{builder_options.to_json});
        });
txtjs
    ))
  end
end

#conditions_fields(dictionary) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/helpers/visual_condition_builder/application_helper.rb', line 27

def conditions_fields(dictionary)
  dictionary_name = get_dictionary_name(dictionary)
  dictionary_klass = get_dictionary_klass(dictionary)
  container_name = "#{dictionary_name}_condition_container"
  capture do
    (:div, class: 'dropdown add-condition', data: {target: "##{container_name}"}) do
      concat((:button, class: 'btn btn-default dropdown-toggle', data: {toggle: 'dropdown'}, type: 'button') do
        concat(I18n.t(:dropdown, default: ['Fields'], scope: [:condition_builder]))
        concat((:span, nil, class:'caret'))
      end)
      concat((:ul, class: 'dropdown-menu add-condition-menu') do
        create_conditions_fields_item(dictionary_klass.fields(get_dictionary_context(dictionary)))
      end)
    end
  end
end