Method: Decidim::CollaborativeTexts::Admin::DocumentsController#update

Defined in:
decidim-collaborative_texts/app/controllers/decidim/collaborative_texts/admin/documents_controller.rb

#updateObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'decidim-collaborative_texts/app/controllers/decidim/collaborative_texts/admin/documents_controller.rb', line 43

def update
  enforce_permission_to(:update, :collaborative_text, document:)
  @form = form(DocumentForm).from_params(params)

  UpdateDocument.call(@form, document) do
    on(:ok) do
      flash[:notice] = I18n.t("documents.update.success", scope: "decidim.collaborative_texts.admin")
      redirect_to documents_path
    end

    on(:invalid) do
      flash.now[:alert] = I18n.t("documents.update.invalid", scope: "decidim.collaborative_texts.admin")
      # This is a safe-guard in case there is no body coming from the POST request (as this attribute is read-only in certain cases)
      @form.body = document.body if @form.body.blank?
      render action: "edit", status: :unprocessable_entity
    end
  end
end