Commit 03920b96 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #6456 from jasonblanchard/remove-issue-assignee

Added option to remove issue assignee on project issue page and issue ed...
parents a9dcfd85 3ada1d7e
...@@ -7,6 +7,7 @@ v 6.7.0 ...@@ -7,6 +7,7 @@ v 6.7.0
- Piwik Integration (Sebastian Winkler) - Piwik Integration (Sebastian Winkler)
- Show contribution guide link for new issue form (Jeroen van Baarsen) - Show contribution guide link for new issue form (Jeroen van Baarsen)
- Fix CI status for merge requests from fork - Fix CI status for merge requests from fork
- Added option to remove issue assignee on project issue page and issue edit page (Jason Blanchard)
v 6.6.2 v 6.6.2
- Fix 500 error on branch/tag create or remove via UI - Fix 500 error on branch/tag create or remove via UI
......
...@@ -10,6 +10,16 @@ ...@@ -10,6 +10,16 @@
query: (query) -> query: (query) ->
Api.projectUsers project_id, query.term, (users) -> Api.projectUsers project_id, query.term, (users) ->
data = { results: users } data = { results: users }
nullUser = {
name: 'Unassigned',
avatar: null,
username: 'none',
id: ''
}
data.results.unshift(nullUser)
query.callback(data) query.callback(data)
initSelection: (element, callback) -> initSelection: (element, callback) ->
...@@ -35,8 +45,13 @@ ...@@ -35,8 +45,13 @@
else else
avatar = gon.relative_url_root + "/assets/no_avatar.png" avatar = gon.relative_url_root + "/assets/no_avatar.png"
if user.id == ''
avatarMarkup = ''
else
avatarMarkup = "<div class='user-image'><img class='avatar s24' src='#{avatar}'></div>"
"<div class='user-result'> "<div class='user-result'>
<div class='user-image'><img class='avatar s24' src='#{avatar}'></div> #{avatarMarkup}
<div class='user-name'>#{user.name}</div> <div class='user-name'>#{user.name}</div>
<div class='user-username'>#{user.username}</div> <div class='user-username'>#{user.username}</div>
</div>" </div>"
......
...@@ -43,6 +43,31 @@ describe "Issues" do ...@@ -43,6 +43,31 @@ describe "Issues" do
page.should have_content project.name page.should have_content project.name
end end
end end
end
describe "Editing issue assignee" do
let!(:issue) do
create(:issue,
author: @user,
assignee: @user,
project: project)
end
it 'allows user to select unasigned', :js => true do
visit edit_project_issue_path(project, issue)
page.should have_content "Assign to #{@user.name}"
page.first('#s2id_issue_assignee_id').click
sleep 2 # wait for ajax stuff to complete
page.first('.user-result').click
click_button "Save changes"
page.should have_content "Assignee: Select assignee"
issue.reload.assignee.should be_nil
end
end end
describe "Filter issue" do describe "Filter issue" do
...@@ -245,6 +270,28 @@ describe "Issues" do ...@@ -245,6 +270,28 @@ describe "Issues" do
page.should have_content milestone.title page.should have_content milestone.title
end end
end end
describe 'removing assignee' do
let(:user2) { create(:user) }
before :each do
issue.assignee = user2
issue.save
end
it 'allows user to remove assignee', :js => true do
visit project_issue_path(project, issue)
page.should have_content "Assignee: #{user2.name}"
page.first('#s2id_issue_assignee_id').click
sleep 2 # wait for ajax stuff to complete
page.first('.user-result').click
page.should have_content "Assignee: Unassigned"
sleep 2 # wait for ajax stuff to complete
issue.reload.assignee.should be_nil
end
end
end end
def first_issue def first_issue
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment