Module: Effective::EffectiveDatatable::Dsl::Filters
- Included in:
- DatatableDslTool
- Defined in:
- app/models/effective/effective_datatable/dsl/filters.rb
Instance Method Summary collapse
- #changes_columns_count ⇒ Object (also: #changes_column_count)
- #filter(name = nil, value = :_no_value, as: nil, label: nil, parse: nil, required: false, **input_html) ⇒ Object
-
#form(url: nil, verb: nil) ⇒ Object
This changes the filters from using an AJAX, to a POST or GET.
- #scope(name = nil, *args, default: nil, label: nil) ⇒ Object
Instance Method Details
#changes_columns_count ⇒ Object Also known as: changes_column_count
47 48 49 |
# File 'app/models/effective/effective_datatable/dsl/filters.rb', line 47 def changes_columns_count form() end |
#filter(name = nil, value = :_no_value, as: nil, label: nil, parse: nil, required: false, **input_html) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/models/effective/effective_datatable/dsl/filters.rb', line 5 def filter(name = nil, value = :_no_value, as: nil, label: nil, parse: nil, required: false, **input_html) return datatable.filter if (name == nil && value == :_no_value) # This lets block methods call 'filter' and get the values raise 'expected second argument to be a value' if value == :_no_value raise 'parse must be a Proc' if parse.present? && !parse.kind_of?(Proc) # Merge search if input_html.kind_of?(Hash) && input_html[:search].kind_of?(Hash) input_html = input_html.merge(input_html[:search]) end datatable._filters[name.to_sym] = { value: value, as: as, label: label || (label == false ? false : name.to_s.titleize), name: name.to_sym, parse: parse, required: required, input_html: input_html.merge({ value: value }) } end |
#form(url: nil, verb: nil) ⇒ Object
This changes the filters from using an AJAX, to a POST or GET
39 40 41 42 43 44 45 |
# File 'app/models/effective/effective_datatable/dsl/filters.rb', line 39 def form(url: nil, verb: nil) url ||= request.path verb ||= (Rails.application.routes.recognize_path(url, method: :post).present? rescue false) ? :post : :get datatable._form[:url] = url datatable._form[:verb] = verb end |
#scope(name = nil, *args, default: nil, label: nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'app/models/effective/effective_datatable/dsl/filters.rb', line 27 def scope(name = nil, *args, default: nil, label: nil) return datatable.scope unless name # This lets block methods call 'scope' and get the values datatable._scopes[name.to_sym] = { default: default, label: label || name.to_s.titleize, name: name.to_sym, args: args.presence } end |