Sha256: a86f22e97267d8845042eaf62601702a5070d7fcc5dc259ef1892234a356c5f5

Contents?: true

Size: 1.77 KB

Versions: 15

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

Decidim.register_component(:blogs) do |component|
  component.engine = Decidim::Blogs::Engine
  component.admin_engine = Decidim::Blogs::AdminEngine
  component.icon = "media/images/decidim_blogs.svg"
  component.icon_key = "pen-nib-line"
  component.permissions_class_name = "Decidim::Blog::Permissions"

  component.query_type = "Decidim::Blogs::BlogsType"

  component.on(:before_destroy) do |instance|
    raise StandardError, "Cannot remove this component" if Decidim::Blogs::Post.where(component: instance).any?
  end

  component.register_stat :posts_count, primary: true, priority: Decidim::StatsRegistry::MEDIUM_PRIORITY do |components, _start_at, _end_at|
    Decidim::Blogs::Post.where(component: components).count
  end

  component.actions = %w(create update destroy)

  component.settings(:global) do |settings|
    settings.attribute :announcement, type: :text, translated: true, editor: true
    settings.attribute :comments_enabled, type: :boolean, default: true
    settings.attribute :comments_max_length, type: :integer, required: true
  end

  component.settings(:step) do |settings|
    settings.attribute :announcement, type: :text, translated: true, editor: true
    settings.attribute :comments_blocked, type: :boolean, default: false
    settings.attribute :endorsements_enabled, type: :boolean, default: true
    settings.attribute :endorsements_blocked, type: :boolean
  end

  component.register_resource(:blogpost) do |resource|
    resource.model_class_name = "Decidim::Blogs::Post"
    resource.card = "decidim/blogs/post"
    resource.actions = %w(endorse comment)
    resource.searchable = true
  end

  component.seeds do |participatory_space|
    require "decidim/blogs/seeds"

    Decidim::Blogs::Seeds.new(participatory_space:).call
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
decidim-blogs-0.29.2 lib/decidim/blogs/component.rb
decidim-blogs-0.28.5 lib/decidim/blogs/component.rb
decidim-blogs-0.29.1 lib/decidim/blogs/component.rb
decidim-blogs-0.28.4 lib/decidim/blogs/component.rb
decidim-blogs-0.29.0 lib/decidim/blogs/component.rb
decidim-blogs-0.28.3 lib/decidim/blogs/component.rb
decidim-blogs-0.29.0.rc4 lib/decidim/blogs/component.rb
decidim-blogs-0.29.0.rc3 lib/decidim/blogs/component.rb
decidim-blogs-0.29.0.rc2 lib/decidim/blogs/component.rb
decidim-blogs-0.29.0.rc1 lib/decidim/blogs/component.rb
decidim-blogs-0.28.2 lib/decidim/blogs/component.rb
decidim-blogs-0.28.1 lib/decidim/blogs/component.rb
decidim-blogs-0.28.0 lib/decidim/blogs/component.rb
decidim-blogs-0.28.0.rc5 lib/decidim/blogs/component.rb
decidim-blogs-0.28.0.rc4 lib/decidim/blogs/component.rb