Class: Decidim::DecidimAwesome::Admin::CookieItemForm

Inherits:
Form
  • Object
show all
Includes:
TranslatableAttributes
Defined in:
app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb

Constant Summary collapse

ITEM_TYPES =
%w(cookie local_storage).freeze

Instance Method Summary collapse

Instance Method Details

#blocked?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 74

def blocked?
  current_item && category["default"] && current_item["default"]
end

#categoryObject



58
59
60
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 58

def category
  context[:category] || {}
end

#category_itemsObject



66
67
68
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 66

def category_items
  category["items"] || {}
end

#current_itemObject



70
71
72
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 70

def current_item
  category_items[id]
end

#idObject



62
63
64
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 62

def id
  context[:id]
end

#item_type_optionsObject



41
42
43
44
45
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 41

def item_type_options
  ITEM_TYPES.index_by do |type|
    I18n.t("cookie_item.types.#{type}", scope: "activemodel.attributes")
  end
end

#non_editable_fields_unchangedObject



35
36
37
38
39
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 35

def non_editable_fields_unchanged
  errors.add(:type, :invalid) unless type == current_item["type"]
  errors.add(:name, :invalid) unless name == current_item["name"]
  errors.add(:expiration, :invalid) unless expiration == current_item["expiration"]
end

#to_paramsObject



47
48
49
50
51
52
53
54
55
56
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 47

def to_params
  {
    "name" => name,
    "type" => type.presence || "cookie",
    "edited" => true,
    "service" => service,
    "description" => description,
    "expiration" => expiration
  }
end

#validate_uniquenessObject



29
30
31
32
33
# File 'app/forms/decidim/decidim_awesome/admin/cookie_item_form.rb', line 29

def validate_uniqueness
  return if category_items[name].nil?

  errors.add(:name, :taken) if name != id
end