Sha256: cb84751fac4f1a2a0b0d4011c2c7af0cf274bf81002e6edd2a161ab60696c13a

Contents?: true

Size: 851 Bytes

Versions: 19

Compression:

Stored size: 851 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    # A form object to create or update pages.
    class StaticPageForm < Form
      include TranslatableAttributes

      attribute :slug, String
      translatable_attribute :title, String
      translatable_attribute :content, String

      mimic :static_page

      validates :slug, presence: true
      validates :title, :content, translatable_presence: true
      validates :slug, format: { with: /\A[a-z0-9-]+/ }

      validate :slug, :slug_uniqueness

      alias organization current_organization

      def slug
        super.to_s.downcase
      end

      private

      def slug_uniqueness
        return unless organization
        return unless organization.static_pages.where(slug: slug).where.not(id: id).any?

        errors.add(:slug, :taken)
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
decidim-admin-0.11.2 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.11.1 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.11.0.pre1 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.10.1 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.10.0 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.9.3 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.9.2 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.9.1 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.9.0 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.8.4 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.8.3 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.8.2 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.8.1 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.8.0 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.7.4 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.7.3 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.7.2 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.7.1 app/forms/decidim/admin/static_page_form.rb
decidim-admin-0.7.0 app/forms/decidim/admin/static_page_form.rb