email_archive.rb 870 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. class FormUpdater::Updater::GuidedSetup::EmailArchive < FormUpdater::Updater
  3. def authorized?
  4. current_user.permissions?('admin.wizard')
  5. end
  6. def resolve
  7. if meta[:initial]
  8. prepare_initial_data
  9. end
  10. super
  11. end
  12. private
  13. def prepare_initial_data
  14. result['archive_state_id'] = initial_archive_state_id
  15. end
  16. def initial_archive_state_id
  17. {
  18. initialValue: default_archive_state_id,
  19. options: archive_state_options,
  20. }
  21. end
  22. def default_archive_state_id
  23. ::Ticket::State.active.by_category(:closed).pick(:id)
  24. end
  25. def archive_state_options
  26. FormUpdater::Relation::TicketState.new(
  27. context:,
  28. current_user:,
  29. filter_ids: ::Ticket::State.by_category(:archivable_into).active.pluck(:id),
  30. ).options
  31. end
  32. end