Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Reigel <mail@koffeinfrei.org>2017-06-23 23:52:43 +0300
committerAlexis Reigel <mail@koffeinfrei.org>2017-07-27 16:43:36 +0300
commit78b5264511a76e481110236e9c14764d9c1b953a (patch)
tree4668a172d537a2a7de8459e19e4c178ec292ba86 /app/helpers/commits_helper.rb
parent2ea951454a535ba16693c083c122218b8608329b (diff)
add gpg commit popover badges
Diffstat (limited to 'app/helpers/commits_helper.rb')
-rw-r--r--app/helpers/commits_helper.rb78
1 files changed, 78 insertions, 0 deletions
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index d08e346d605..34ba5694288 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -212,4 +212,82 @@ module CommitsHelper
[commits, 0]
end
end
+
+ def commit_gpg_signature_badge(signature)
+ if signature.valid_signature?
+ commit_gpg_valid_signature_badge(signature)
+ else
+ commit_gpg_invalid_signature_badge(signature)
+ end
+ end
+
+ def commit_gpg_valid_signature_badge(signature)
+ title = capture do
+ concat content_tag('i', '', class: 'fa fa-check-circle gpg-badge-popover-icon valid', 'aria-hidden' => 'true')
+ concat 'This commit was signed with a verified signature.'
+ end
+
+ content = capture do
+ concat(
+ content_tag(:div, class: 'gpg-badge-popover-avatar') do
+ user_avatar(user: signature.gpg_key.user, size: 32)
+ end
+ )
+
+ concat(
+ content_tag(:div, class: 'gpg-badge-popover-username') do
+ signature.gpg_key.user.username
+ end
+ )
+
+ concat(
+ content_tag(:div) do
+ signature.gpg_key.user.name
+ end
+ )
+ end
+
+ commit_gpg_signature_badge_with(signature, label: 'Verified', title: title, content: content, css_classes: ['valid'])
+ end
+
+ def commit_gpg_invalid_signature_badge(signature)
+ title = capture do
+ concat content_tag('i', '', class: 'fa fa-question-circle gpg-badge-popover-icon invalid', 'aria-hidden' => 'true')
+ concat 'This commit was signed with an unverified signature.'
+ end
+ commit_gpg_signature_badge_with(signature, label: 'Unverified', title: title, css_classes: ['invalid'])
+ end
+
+ def commit_gpg_signature_badge_with(signature, label:, title: '', content: '', css_classes: [])
+ css_classes = %w(btn btn-xs gpg-badge) + css_classes
+
+ content = capture do
+ concat(
+ content_tag(:div, class: 'clearfix') do
+ content
+ end
+ )
+
+ concat "GPG key ID: #{signature.gpg_key_primary_keyid}"
+ end
+
+ title = capture do
+ content_tag 'span', class: 'gpg-badge-popover-title' do
+ title
+ end
+ end
+
+ data = {
+ toggle: 'popover',
+ html: 'true',
+ placement: 'auto bottom',
+ trigger: 'focus',
+ title: title,
+ content: content
+ }
+
+ content_tag :button, class: css_classes, data: data do
+ label
+ end
+ end
end