Sha256: b7bdd6fc665480d164d1720235d719800d25fb6403bdaba7fef65e27eb24a777

Contents?: true

Size: 1.28 KB

Versions: 20

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    # This command gets called when a content block is updated from the admin
    # panel.
    class UpdateHelpSections < Decidim::Command
      def initialize(form, organization, user)
        @form = form
        @organization = organization
        @user = user
      end

      def call
        return broadcast(:invalid) unless @form.valid?

        ActiveRecord::Base.transaction do
          @form.sections.each do |section|
            next unless content_has_changed?(section)

            Decidim.traceability.perform_action!("update", ContextualHelpSection, @user, { "resource" => { "title" => section.id.humanize } }) do
              ContextualHelpSection.set_content(@organization, section.id, section.content)
              ContextualHelpSection.find_by(organization: @organization, section_id: section.id)
            end
          end
        end

        broadcast(:ok)
      end

      private

      def content_has_changed?(section)
        return if ContextualHelpSection.find_by(organization: @organization, section_id: section.id).nil? && section.content.compact_blank.blank?

        section.content != ContextualHelpSection.find_content(@organization, section.id).except("machine_translations")
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
decidim-admin-0.28.5 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.4 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.9 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.3 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.8 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.2 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.7 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.1 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.6 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.0 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.5 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.0.rc5 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.28.0.rc4 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.4 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.3 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.2 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.1 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.0 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.0.rc2 app/commands/decidim/admin/update_help_sections.rb
decidim-admin-0.27.0.rc1 app/commands/decidim/admin/update_help_sections.rb