summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Eastwood <contact@ericeastwood.com>2017-06-09 18:07:50 -0500
committerEric Eastwood <contact@ericeastwood.com>2017-06-14 11:52:16 -0500
commitdded02d15c27943975af2577eda70ce7688325a6 (patch)
tree62cafe2b662f79cd11a90a0d070ddf5d1881aaa3
parent64e85fdaffcd03ef52ff74953b1a4e0caf5a23e8 (diff)
downloadgitlab-ce-dded02d15c27943975af2577eda70ce7688325a6.tar.gz
Fix milestone page assignees when dropped in ongoing list
Fix https://gitlab.com/gitlab-org/gitlab-ce/issues/32861
-rw-r--r--app/assets/javascripts/milestone.js24
-rw-r--r--spec/features/milestones/milestones_spec.rb10
2 files changed, 23 insertions, 11 deletions
diff --git a/app/assets/javascripts/milestone.js b/app/assets/javascripts/milestone.js
index 841b24a60a3..07ede5ee913 100644
--- a/app/assets/javascripts/milestone.js
+++ b/app/assets/javascripts/milestone.js
@@ -65,14 +65,18 @@
};
Milestone.successCallback = function(data, element) {
- var img_tag;
- if (data.assignee) {
- img_tag = $('<img/>');
- img_tag.attr('src', data.assignee.avatar_url);
- img_tag.addClass('avatar s16');
- $(element).find('.assignee-icon img').replaceWith(img_tag);
- } else {
- $(element).find('.assignee-icon').empty();
+ const $avatarContainer = $(element).find('.assignee-icon');
+ $avatarContainer.empty();
+
+ if (data.assignees && data.assignees.length > 0) {
+ const $avatars = data.assignees.map((assignee) => {
+ const img_tag = $('<img/>');
+ img_tag.attr('src', assignee.avatar_url);
+ img_tag.addClass('avatar s16');
+ return img_tag;
+ });
+
+ $avatarContainer.append($avatars);
}
};
@@ -161,9 +165,9 @@
data = (function() {
switch (newState) {
case 'ongoing':
- return opts.fieldName + '[assignee_id]=' + gon.current_user_id;
+ return `${opts.fieldName}[assignee_ids][]=${gon.current_user_id}`;
case 'unassigned':
- return opts.fieldName + '[assignee_id]=';
+ return `${opts.fieldName}[assignee_ids][]=0`;
case 'closed':
return opts.fieldName + '[state_event]=close';
}
diff --git a/spec/features/milestones/milestones_spec.rb b/spec/features/milestones/milestones_spec.rb
index b3dfd6d0e81..c8a4d23f695 100644
--- a/spec/features/milestones/milestones_spec.rb
+++ b/spec/features/milestones/milestones_spec.rb
@@ -37,6 +37,14 @@ describe 'Milestone draggable', feature: true, js: true do
expect(issue_target).to have_selector('.issuable-row')
end
+
+ it 'assigns issue when it has been dragged to ongoing list' do
+ login_as(:admin)
+ create_and_drag_issue
+
+ expect(@issue.reload.assignees).not_to be_empty
+ expect(page).to have_selector("#sortable_issue_#{@issue.iid} .assignee-icon img", count: 1)
+ end
end
context 'merge requests' do
@@ -72,7 +80,7 @@ describe 'Milestone draggable', feature: true, js: true do
end
def create_and_drag_issue(params = {})
- create(:issue, params.merge(title: 'Foo', project: project, milestone: milestone))
+ @issue = create(:issue, params.merge(title: 'Foo', project: project, milestone: milestone))
visit namespace_project_milestone_path(project.namespace, project, milestone)
scroll_into_view('.milestone-content')