diff options
author | Jacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home> | 2016-03-19 20:49:36 -0400 |
---|---|---|
committer | Jacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home> | 2016-03-25 09:53:14 -0400 |
commit | 201101dfff831fc3c05475b7219d2870ca700fa5 (patch) | |
tree | fb5b97855c1cbbe66544b3681815a90b80a74889 | |
parent | 5db2622aeafe40bf6027bb45592f2fda5bfec396 (diff) | |
download | gitlab-ce-201101dfff831fc3c05475b7219d2870ca700fa5.tar.gz |
Add Assign to me button and unassigned.
-rw-r--r-- | app/assets/javascripts/issuable_context.js.coffee | 3 | ||||
-rw-r--r-- | app/assets/javascripts/users_select.js.coffee | 65 | ||||
-rw-r--r-- | app/views/shared/issuable/_sidebar.html.haml | 2 |
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 |