Class: Decidim::Core::ComponentInputFilter

Inherits:
BaseInputFilter
  • Object
show all
Includes:
HasLocalizedInputFilter, HasPublishableInputFilter
Defined in:
decidim-core/lib/decidim/api/input_filters/component_input_filter.rb

Class Method Summary collapse

Methods included from HasLocalizedInputFilter

included

Methods included from HasPublishableInputFilter

date_to_iso8601, included

Class Method Details

.prepare_comments_enabled(active, _ctx) ⇒ Object



36
37
38
39
40
# File 'decidim-core/lib/decidim/api/input_filters/component_input_filter.rb', line 36

def self.prepare_comments_enabled(active, _ctx)
  lambda do |_model_name, _locale|
    ["settings @> ?", { global: { comments_enabled: active } }.to_json]
  end
end

.prepare_geolocation_enabled(active, _ctx) ⇒ Object



42
43
44
45
46
# File 'decidim-core/lib/decidim/api/input_filters/component_input_filter.rb', line 42

def self.prepare_geolocation_enabled(active, _ctx)
  lambda do |_model_name, _locale|
    ["settings @> ? or manifest_name='meetings'", { global: { geocoding_enabled: active } }.to_json]
  end
end

.prepare_name(search, ctx) ⇒ Object



48
49
50
51
52
53
54
# File 'decidim-core/lib/decidim/api/input_filters/component_input_filter.rb', line 48

def self.prepare_name(search, ctx)
  lambda do |model_name, locale|
    locale = ctx[:current_organization].default_locale if locale.blank?
    op = Arel::Nodes::InfixOperation.new("->>", model_name.arel_table[:name], Arel::Nodes.build_quoted(locale))
    op.matches("%#{search}%")
  end
end

.prepare_type(value, _ctx) ⇒ Object



56
57
58
# File 'decidim-core/lib/decidim/api/input_filters/component_input_filter.rb', line 56

def self.prepare_type(value, _ctx)
  { manifest_name: value.underscore }
end