Class: Decidim::DecidimAwesome::Admin::CookieCategoryForm

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

Constant Summary collapse

VISIBILITY_STATES =
%w(visible hidden).freeze

Instance Method Summary collapse

Instance Method Details

#blocked?Boolean

Returns:

  • (Boolean)


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

def blocked?
  current_category && current_category["blocked"]
end

#categoriesObject



54
55
56
# File 'app/forms/decidim/decidim_awesome/admin/cookie_category_form.rb', line 54

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

#current_categoryObject



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

def current_category
  categories[id]
end

#idObject



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

def id
  context[:id]
end

#non_editable_fields_unchangedObject



31
32
33
34
35
36
37
# File 'app/forms/decidim/decidim_awesome/admin/cookie_category_form.rb', line 31

def non_editable_fields_unchanged
  errors.add(:slug, :invalid) if slug_blocked? && (slug != current_category["slug"])
  if blocked?
    errors.add(:mandatory, :invalid) unless mandatory
    errors.add(:visibility, :invalid) unless visibility == "visible"
  end
end

#slug_blocked?Boolean

Returns:

  • (Boolean)


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

def slug_blocked?
  current_category && current_category["default"]
end

#to_paramsObject



43
44
45
46
47
48
49
50
51
52
# File 'app/forms/decidim/decidim_awesome/admin/cookie_category_form.rb', line 43

def to_params
  {
    "title" => title,
    "slug" => slug,
    "edited" => true,
    "description" => description,
    "visibility" => visibility,
    "mandatory" => mandatory
  }
end

#validate_uniquenessObject



25
26
27
28
29
# File 'app/forms/decidim/decidim_awesome/admin/cookie_category_form.rb', line 25

def validate_uniqueness
  return if categories[slug].nil?

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

#visibility_optionsObject



39
40
41
# File 'app/forms/decidim/decidim_awesome/admin/cookie_category_form.rb', line 39

def visibility_options
  VISIBILITY_STATES.index_by { |state| I18n.t("cookie_categories.form.visibility.#{state}", scope: "decidim.decidim_awesome.admin") }
end