knowledge_base_visibility_note_helper.rb 935 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. module KnowledgeBaseVisibilityNoteHelper
  2. def visibility_note(object)
  3. return if !current_user&.permissions?('knowledge_base.editor')
  4. text = visibility_text(object)
  5. return if text.nil?
  6. render 'knowledge_base/public/visibility_note', text: text
  7. end
  8. def visibility_text(object)
  9. case object
  10. when CanBePublished
  11. visiblity_text_can_be_published(object)
  12. when KnowledgeBase::Category
  13. visiblity_text_category(object)
  14. end
  15. end
  16. def visiblity_text_can_be_published(object)
  17. case object.can_be_published_aasm.current_state
  18. when :internal
  19. 'internal'
  20. when :archived
  21. 'archived'
  22. when :draft
  23. 'not published'
  24. end
  25. end
  26. def visiblity_text_category(object)
  27. return if object.public_content?
  28. if object.self_with_children_answers.only_internal.any?
  29. 'hidden, visible only internally'
  30. else
  31. 'hidden, no published answers'
  32. end
  33. end
  34. end