Move HTTP/SSH clone button logic to helpers
This commit is contained in:
parent
0fb5ffd8b0
commit
af65046c5f
2 changed files with 37 additions and 16 deletions
35
app/helpers/button_helper.rb
Normal file
35
app/helpers/button_helper.rb
Normal file
|
@ -0,0 +1,35 @@
|
|||
module ButtonHelper
|
||||
def http_clone_button(project)
|
||||
klass = 'btn'
|
||||
klass << ' active' if default_clone_protocol == 'http'
|
||||
klass << ' has_tooltip' if current_user.try(:require_password?)
|
||||
|
||||
protocol = gitlab_config.protocol.upcase
|
||||
|
||||
content_tag :button, protocol,
|
||||
class: klass,
|
||||
data: {
|
||||
clone: project.http_url_to_repo,
|
||||
container: 'body',
|
||||
html: 'true',
|
||||
title: "Set a password on your account<br>to pull or push via #{protocol}"
|
||||
},
|
||||
type: :button
|
||||
end
|
||||
|
||||
def ssh_clone_button(project)
|
||||
klass = 'btn'
|
||||
klass << ' active' if default_clone_protocol == 'ssh'
|
||||
klass << ' has_tooltip' if current_user.try(:require_ssh_key?)
|
||||
|
||||
content_tag :button, 'SSH',
|
||||
class: klass,
|
||||
data: {
|
||||
clone: project.ssh_url_to_repo,
|
||||
container: 'body',
|
||||
html: 'true',
|
||||
title: 'Add an SSH key to your profile<br>to pull or push via SSH.'
|
||||
},
|
||||
type: :button
|
||||
end
|
||||
end
|
|
@ -2,23 +2,9 @@
|
|||
.git-clone-holder.input-group
|
||||
.input-group-addon.git-protocols
|
||||
.input-group-btn
|
||||
%button{ |
|
||||
type: 'button', |
|
||||
class: "btn #{ 'active' if default_clone_protocol == 'ssh' }#{ ' has_tooltip' if current_user && current_user.require_ssh_key? }", |
|
||||
:"data-clone" => project.ssh_url_to_repo, |
|
||||
:"data-title" => "Add an SSH key to your profile<br> to pull or push via SSH.",
|
||||
:"data-html" => "true",
|
||||
:"data-container" => "body"}
|
||||
SSH
|
||||
= ssh_clone_button(project)
|
||||
.input-group-btn
|
||||
%button{ |
|
||||
type: 'button', |
|
||||
class: "btn #{ 'active' if default_clone_protocol == 'http' }#{ ' has_tooltip' if current_user && current_user.require_password? }", |
|
||||
:"data-clone" => project.http_url_to_repo, |
|
||||
:"data-title" => "Set a password on your account<br> to pull or push via #{gitlab_config.protocol.upcase}.",
|
||||
:"data-html" => "true",
|
||||
:"data-container" => "body"}
|
||||
= gitlab_config.protocol.upcase
|
||||
= http_clone_button(project)
|
||||
= text_field_tag :project_clone, default_url_to_repo(project), class: "js-select-on-focus form-control", readonly: true
|
||||
- if project.kind_of?(Project)
|
||||
.input-group-addon.has_tooltip{title: "#{visibility_level_label(project.visibility_level)} project", data: { container: "body" } }
|
||||
|
|
Loading…
Reference in a new issue