summaryrefslogtreecommitdiff
path: root/lib/gitlab/chat_commands/presenters/show_issue.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/chat_commands/presenters/show_issue.rb')
-rw-r--r--lib/gitlab/chat_commands/presenters/show_issue.rb72
1 files changed, 44 insertions, 28 deletions
diff --git a/lib/gitlab/chat_commands/presenters/show_issue.rb b/lib/gitlab/chat_commands/presenters/show_issue.rb
index 2a89c30b972..e5644a4ad7e 100644
--- a/lib/gitlab/chat_commands/presenters/show_issue.rb
+++ b/lib/gitlab/chat_commands/presenters/show_issue.rb
@@ -1,38 +1,54 @@
-module Gitlab::ChatCommands::Presenters
- class ShowIssue < Gitlab::ChatCommands::Presenters::Issuable
- def present
- in_channel_response(show_issue)
- end
+module Gitlab
+ module ChatCommands
+ module Presenters
+ class ShowIssue < Presenters::Issuable
+ def present
+ in_channel_response(show_issue)
+ end
- private
+ private
- def show_issue
- {
- attachments: [
+ def show_issue
{
- title: @resource.title,
- title_link: resource_url,
- author_name: author.name,
- author_icon: author.avatar_url,
- fallback: "#{@resource.to_reference}: #{@resource.title}",
- text: text,
- fields: fields,
- mrkdwn_in: [
- :title,
- :text
+ attachments: [
+ {
+ title: "#{@resource.title} · #{@resource.to_reference}",
+ title_link: resource_url,
+ author_name: author.name,
+ author_icon: author.avatar_url,
+ fallback: "New issue #{@resource.to_reference}: #{@resource.title}",
+ pretext: pretext,
+ text: text,
+ color: color(@resource),
+ fields: fields,
+ mrkdwn_in: [
+ :pretext,
+ :text
+ ]
+ }
]
}
- ]
- }
- end
+ end
+
+ def text
+ message = "**#{status_text(@resource)}**"
+
+ if @resource.upvotes.zero? && @resource.downvotes.zero? && @resource.user_notes_count.zero?
+ return message
+ end
+
+ message << " · "
+ message << ":+1: #{@resource.upvotes} " unless @resource.upvotes.zero?
+ message << ":-1: #{@resource.downvotes} " unless @resource.downvotes.zero?
+ message << ":speech_balloon: #{@resource.user_notes_count}" unless @resource.user_notes_count.zero?
- def text
- message = ""
- message << ":+1: #{@resource.upvotes} " unless @resource.upvotes.zero?
- message << ":-1: #{@resource.downvotes} " unless @resource.downvotes.zero?
- message << ":speech_balloon: #{@resource.user_notes_count}" unless @resource.user_notes_count.zero?
+ message
+ end
- message
+ def pretext
+ "Issue *#{@resource.to_reference} from #{project.name_with_namespace}"
+ end
+ end
end
end
end