diff --git a/app/helpers/action_helper.rb b/app/helpers/action_helper.rb index ee4d0ce55..6a2878427 100644 --- a/app/helpers/action_helper.rb +++ b/app/helpers/action_helper.rb @@ -11,14 +11,24 @@ def action_note(action) if action.comment.present? format_and_auto_link_plain_text(action.comment) elsif action.is_fact_check_request? && action.email_addresses.present? - "Request sent to #{mail_to action.email_addresses}" + "Request sent to #{mail_to action.email_addresses}".html_safe elsif action.recipient_id.present? - "Assigned to #{mail_to action.recipient.email, action.recipient.name}" + "Assigned to #{mail_to action.recipient.email, action.recipient.name}".html_safe end end def format_and_auto_link_plain_text(text) text = auto_link(escape_once(text), link: :urls, sanitize: false) - simple_format(text, {}, :sanitize => false) + text = auto_link_zendesk_tickets(text) + simple_format(text, {}, :sanitize => false).html_safe + end + + def auto_link_zendesk_tickets(text) + text = text.gsub(/(?:zen|zendesk|zendesk ticket)(?:\s)?(?:#|\:)?(?:\s)?(\d{4,})/i) do |match| + ticket = $1 + link_to match, "https://govuk.zendesk.com/tickets/#{ticket}" + end + + text.html_safe end end diff --git a/app/views/shared/_edition_history.html.erb b/app/views/shared/_edition_history.html.erb index 5a5d52cb5..4997e8b12 100644 --- a/app/views/shared/_edition_history.html.erb +++ b/app/views/shared/_edition_history.html.erb @@ -34,7 +34,7 @@ <% end %>
- <%= action_note(action).html_safe %> + <%= action_note(action) %>
<% end %> diff --git a/test/unit/helpers/admin/action_helper_test.rb b/test/unit/helpers/admin/action_helper_test.rb new file mode 100644 index 000000000..c3d292ef5 --- /dev/null +++ b/test/unit/helpers/admin/action_helper_test.rb @@ -0,0 +1,17 @@ +require 'test_helper' + +class ActionHelperTest < ActionView::TestCase + test "it converts zendesk tickets to links" do + + expected_link = 'https://govuk.zendesk.com/tickets/1234' + texts = ['Zendesk ticket #1234', 'zendesk 1234', 'Zen 1234', 'zen #1234', 'zen#1234', 'zen:1234', 'zendesk: 1234'] + + texts.each do |text| + assert_equal auto_link_zendesk_tickets(text), "#{text}" + end + + assert_equal auto_link_zendesk_tickets("zendesk 1234. Next"), "zendesk 1234. Next" + assert_equal auto_link_zendesk_tickets("something something zendesk 1234. Next"), "something something zendesk 1234. Next" + assert_equal auto_link_zendesk_tickets("somezendesk 1234. Next"), "somezendesk 1234. Next" + end +end