summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home>2016-03-19 20:49:36 -0400
committerJacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home>2016-03-25 09:53:14 -0400
commit201101dfff831fc3c05475b7219d2870ca700fa5 (patch)
treefb5b97855c1cbbe66544b3681815a90b80a74889
parent5db2622aeafe40bf6027bb45592f2fda5bfec396 (diff)
downloadgitlab-ce-201101dfff831fc3c05475b7219d2870ca700fa5.tar.gz
Add Assign to me button and unassigned.
-rw-r--r--app/assets/javascripts/issuable_context.js.coffee3
-rw-r--r--app/assets/javascripts/users_select.js.coffee65
-rw-r--r--app/views/shared/issuable/_sidebar.html.haml2
3 files changed, 39 insertions, 31 deletions
diff --git a/app/assets/javascripts/issuable_context.js.coffee b/app/assets/javascripts/issuable_context.js.coffee
index ddc7de602e4..1e804d25c14 100644
--- a/app/assets/javascripts/issuable_context.js.coffee
+++ b/app/assets/javascripts/issuable_context.js.coffee
@@ -1,8 +1,7 @@
class @IssuableContext
constructor: ->
@initParticipants()
-
- new UsersSelect()
+ new UsersSelect(currentUser)
$('select.select2').select2({width: 'resolve', dropdownAutoWidth: true})
$(".issuable-sidebar .inline-update").on "change", "select", ->
diff --git a/app/assets/javascripts/users_select.js.coffee b/app/assets/javascripts/users_select.js.coffee
index cb3e16a6007..76eb2b1d696 100644
--- a/app/assets/javascripts/users_select.js.coffee
+++ b/app/assets/javascripts/users_select.js.coffee
@@ -1,7 +1,8 @@
class @UsersSelect
- constructor: ->
+ constructor: (currentUser) ->
@usersPath = "/autocomplete/users.json"
@userPath = "/autocomplete/users/:id.json"
+ @currentUser = JSON.parse(currentUser)
$('.js-user-search').each (i, dropdown) =>
$dropdown = $(dropdown)
@@ -19,6 +20,40 @@ class @UsersSelect
$value = $block.find('.value')
$loading = $block.find('.block-loading').fadeOut()
+ $block.on('click','.js-assign-yourself' , (e) =>
+ e.preventDefault()
+ assignTo(@currentUser.id)
+ )
+
+ assignTo = (selected) ->
+ data = {}
+ data[abilityName] = {}
+ data[abilityName].assignee_id = selected
+ $loading
+ .fadeIn()
+ $.ajax(
+ type: 'PUT'
+ dataType: 'json'
+ url: issueURL
+ data: data
+ ).done (data) ->
+ $loading.fadeOut()
+ $selectbox.hide()
+
+ if data.assignee
+ user =
+ name: data.assignee.name
+ username: data.assignee.username
+ avatar: data.assignee.avatar.url
+ else
+ user =
+ name: 'Unassigned'
+ username: ''
+ avatar: ''
+
+ $value.html(noAssigneeTemplate(user))
+ $value.find('a').attr('href')
+
noAssigneeTemplate = _.template(
'<% if (username) { %>
<a class="author_link " href="/u/<%= username %>">
@@ -108,33 +143,7 @@ class @UsersSelect
selected = $dropdown
.closest('.selectbox')
.find("input[name='#{$dropdown.data('field-name')}']").val()
- data = {}
- data[abilityName] = {}
- data[abilityName].assignee_id = selected
- $loading
- .fadeIn()
- $.ajax(
- type: 'PUT'
- dataType: 'json'
- url: issueURL
- data: data
- ).done (data) ->
- $loading.fadeOut()
- $selectbox.hide()
-
- if data.assignee
- user =
- name: data.assignee.name
- username: data.assignee.username
- avatar: data.assignee.avatar.url
- else
- user =
- name: 'Unassigned'
- username: ''
- avatar: ''
-
- $value.html(noAssigneeTemplate(user))
- $value.find('a').attr('href')
+ assignTo(selected)
renderRow: (user) ->
username = if user.username then "@#{user.username}" else ""
diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml
index 162c7787c55..d6328216dae 100644
--- a/app/views/shared/issuable/_sidebar.html.haml
+++ b/app/views/shared/issuable/_sidebar.html.haml
@@ -152,5 +152,5 @@
:javascript
new MilestoneSelect();
new LabelsSelect();
- new IssuableContext();
+ new IssuableContext('#{current_user.to_json(only: [:username, :id, :name])}');
new Subscription('.subscription') \ No newline at end of file