summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-11-24 19:32:06 -0500
committerRobert Speicher <rspeicher@gmail.com>2015-11-24 19:32:06 -0500
commit1d80cd315e403e02f85a99c35eb9e83f4d829f8d (patch)
tree83f3e2f5dd705e40d0dbdb3f5f5d9fba16baeac6 /app
parent7dab8ed739359bc579d8bc4d3de61816993ca57d (diff)
downloadgitlab-ce-1d80cd315e403e02f85a99c35eb9e83f4d829f8d.tar.gz
Add clipboard button to project clone panel
Closes #3585
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/project.js.coffee10
-rw-r--r--app/assets/stylesheets/pages/projects.scss7
-rw-r--r--app/helpers/button_helper.rb4
-rw-r--r--app/helpers/projects_helper.rb3
-rw-r--r--app/views/shared/_clone_panel.html.haml2
5 files changed, 15 insertions, 11 deletions
diff --git a/app/assets/javascripts/project.js.coffee b/app/assets/javascripts/project.js.coffee
index 0ea8fffce07..d37a00bdedc 100644
--- a/app/assets/javascripts/project.js.coffee
+++ b/app/assets/javascripts/project.js.coffee
@@ -3,11 +3,9 @@ class @Project
# Git clone panel switcher
cloneHolder = $('.git-clone-holder')
if cloneHolder.length
- $('a, button', cloneHolder).click ->
- $('a, button', cloneHolder).removeClass 'active'
- $(@).addClass 'active'
- $('#project_clone', cloneHolder).val $(@).data 'clone'
- $(".clone").text("").append $(@).data 'clone'
+ $('.js-protocol-switch', cloneHolder).click ->
+ $('.js-protocol-switch', cloneHolder).toggleClass('active')
+ $('#project_clone').val($(@).data('clone'))
# Ref switcher
$('.project-refs-select').on 'change', ->
@@ -39,4 +37,4 @@ class @Project
when 4 then label = ' On Mention '
$('#notifications-button').empty().append("<i class='fa fa-bell'></i>" + label + "<i class='fa fa-angle-down'></i>")
$(@).parents('ul').find('li.active').removeClass 'active'
- $(@).parent().addClass 'active' \ No newline at end of file
+ $(@).parent().addClass 'active'
diff --git a/app/assets/stylesheets/pages/projects.scss b/app/assets/stylesheets/pages/projects.scss
index d3b10040022..ad607ead2bf 100644
--- a/app/assets/stylesheets/pages/projects.scss
+++ b/app/assets/stylesheets/pages/projects.scss
@@ -178,6 +178,11 @@
&:active {
outline: none;
}
+
+ &.btn-clipboard {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
}
.active {
@@ -552,4 +557,4 @@ pre.light-well {
z-index: 100;
position: relative;
}
-} \ No newline at end of file
+}
diff --git a/app/helpers/button_helper.rb b/app/helpers/button_helper.rb
index b9bb1ac8d88..313b6dde910 100644
--- a/app/helpers/button_helper.rb
+++ b/app/helpers/button_helper.rb
@@ -23,7 +23,7 @@ module ButtonHelper
end
def http_clone_button(project)
- klass = 'btn'
+ klass = 'btn js-protocol-switch'
klass << ' active' if default_clone_protocol == 'http'
klass << ' has_tooltip' if current_user.try(:require_password?)
@@ -41,7 +41,7 @@ module ButtonHelper
end
def ssh_clone_button(project)
- klass = 'btn'
+ klass = 'btn js-protocol-switch'
klass << ' active' if default_clone_protocol == 'ssh'
klass << ' has_tooltip' if current_user.try(:require_ssh_key?)
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index c9cd4a0d54c..c0c51aae039 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -173,8 +173,7 @@ module ProjectsHelper
'unknown'
end
- def default_url_to_repo(project = nil)
- project = project || @project
+ def default_url_to_repo(project = @project)
current_user ? project.url_to_repo : project.http_url_to_repo
end
diff --git a/app/views/shared/_clone_panel.html.haml b/app/views/shared/_clone_panel.html.haml
index a82971157d3..408a46aaafc 100644
--- a/app/views/shared/_clone_panel.html.haml
+++ b/app/views/shared/_clone_panel.html.haml
@@ -6,6 +6,8 @@
.input-group-btn
= http_clone_button(project)
= text_field_tag :project_clone, default_url_to_repo(project), class: "js-select-on-focus form-control", readonly: true
+ .input-group-btn
+ = clipboard_button(clipboard_target: '#project_clone')
- if project.kind_of?(Project)
.input-group-addon.has_tooltip{title: "#{visibility_level_label(project.visibility_level)} project", data: { container: "body" } }
.visibility-level-label