zammad/app/models/taskbar/has_attachments.rb
2026-01-02 15:41:09 +02:00

36 lines
904 B
Ruby

# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
module Taskbar::HasAttachments
extend ActiveSupport::Concern
included do
scope :with_form_id, -> { where("state LIKE '%#{SqlHelper.quote_like('form_id')}%'") }
after_destroy :clear_attachments
end
# form_id is saved directly in a new ticket, but inside of the article when updating an existing ticket
def persisted_form_id
state&.dig(:form_id) || state&.dig(:article, :form_id)
end
private
def attachments
return [] if persisted_form_id.blank?
UploadCache.new(persisted_form_id).attachments
end
def add_attachments_to_attributes(attributes)
attributes.tap do |result|
result['attachments'] = attachments.map(&:attributes_for_display)
end
end
def clear_attachments
return if persisted_form_id.blank?
UploadCache.new(persisted_form_id).destroy
end
end