Module: Crm::PublicationsHelper

Defined in:
app/helpers/crm/publications_helper.rb

Overview

View helper for CRM publications — form setup and the action/transmit
link sets rendered on the CRM publication views.

Instance Method Summary collapse

Instance Method Details

#publication_command_options(publication = @publication) ⇒ Array<String>

Build the management action links for a publication.

Parameters:

  • publication (Publication) (defaults to: @publication)

    the publication to render commands for

Returns:

  • (Array<String>)

    safe HTML link fragments



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/helpers/crm/publications_helper.rb', line 23

def publication_command_options(publication = @publication)
  links = []
  if can?(:update, publication)
    links << link_to("Edit", edit_publication_path(publication), data: { turbo_action: 'replace' })
    links << link_to("Revise", revise_publication_path(publication), data: { turbo_method: :post })
    links << link_to("Update Stock", edit_stock_publication_path(publication), data: { turbo_method: :post })
    links << link_to("Generate Cover Image", generate_cover_image_publication_path(publication), data: { turbo_method: :post })
    links << link_to("Create PDF Variation", create_pdf_variation_publication_path(publication), data: { turbo_method: :post }) if publication.literature && can?(:read, GeneratedPdf)
    links << link_to("Translate PDF", translate_pdf_publication_path(publication)) if publication.literature&.attachment_stored? && can?(:read, GeneratedPdf) && DeepLClient.configured?
    links << link_to("Edit Typst Master", edit_typst_publication_path(publication), data: { turbo_method: :post }) if publication.literature&.typst_source.present? && can?(:read, GeneratedPdf)
    links << link_to(fa_icon('broom', text: 'Purge Cache'), purge_cache_publication_path(publication), data: { turbo_method: :post })
  end
  links << link_to(fa_icon('trash', text: 'Destroy'), publication_path(publication), data: { turbo_method: :delete, turbo_confirm: 'Are you sure you want to delete this publication?' }) if can?(:manage, publication)
  links
end

#publication_transmit_options(publication = @publication) ⇒ Array<String>

Build the transmit/download links for a publication's literature.

Parameters:

  • publication (Publication) (defaults to: @publication)

    the publication to render links for

Returns:

  • (Array<String>)

    safe HTML link fragments



43
44
45
46
47
48
49
50
# File 'app/helpers/crm/publications_helper.rb', line 43

def publication_transmit_options(publication = @publication)
  links = []
  if publication.literature
    links << link_to("Transmit", new_communication_path(upload_id: publication.literature_id, return_path: publication_path(publication)))
    links << link_to(fa_icon('download', text: 'Download'), upload_path(publication.literature))
  end
  links
end

#setup_publication(publication) ⇒ Publication

Prepare a publication for the form by ensuring its literature upload exists.

Parameters:

  • publication (Publication)

    the publication being edited

Returns:

  • (Publication)

    the same publication, with literature built



13
14
15
16
17
# File 'app/helpers/crm/publications_helper.rb', line 13

def setup_publication(publication)
  publication.tap do |p|
    p.build_literature unless p.literature
  end
end