select.rb 950 B

1234567891011121314151617181920212223242526272829303132333435
  1. # Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
  2. class CoreWorkflow::Result::Select < CoreWorkflow::Result::Backend
  3. def run
  4. return if skip?
  5. @result_object.result[:select][field] = select_value
  6. @result_object.payload['params'][field] = @result_object.result[:select][field]
  7. set_rerun
  8. true
  9. end
  10. def skip?
  11. return true if select_value.nil?
  12. return true if params_set?
  13. return true if select_set?
  14. false
  15. end
  16. def select_value
  17. @select_value ||= Array(@perform_config['select']).reject { |v| @result_object.result[:restrict_values][field].exclude?(v) }
  18. return @select_value if multiple?
  19. @select_value.first
  20. end
  21. def params_set?
  22. @result_object.payload['params'][field] && select_value == @result_object.payload['params'][field]
  23. end
  24. def select_set?
  25. @result_object.result[:select][field] && select_value == @result_object.result[:select][field]
  26. end
  27. end