Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
affed370
Commit
affed370
authored
Aug 16, 2016
by
Douglas Barbosa Alexandre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use `Issues::UpdateService` to close/reopen an issue
parent
d8fc783b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
21 deletions
+15
-21
app/services/boards/issues/move_service.rb
app/services/boards/issues/move_service.rb
+15
-21
No files found.
app/services/boards/issues/move_service.rb
View file @
affed370
...
...
@@ -6,36 +6,24 @@ module Boards
return
false
unless
valid_move?
update_service
.
execute
(
issue
)
reopen_service
.
execute
(
issue
)
if
moving_from
.
done?
close_service
.
execute
(
issue
)
if
moving_to
.
done?
true
end
private
def
valid_move?
moving_from
.
present?
&&
moving_to
.
present?
moving_from
_list
.
present?
&&
moving_to_list
.
present?
end
def
issue
@issue
||=
project
.
issues
.
visible_to_user
(
user
).
find_by!
(
iid:
params
[
:id
])
end
def
moving_from
@moving_from
||=
board
.
lists
.
find_by
(
id:
params
[
:from_list_id
])
end
def
moving_to
@moving_to
||=
board
.
lists
.
find_by
(
id:
params
[
:to_list_id
])
def
moving_from_list
@moving_from_list
||=
board
.
lists
.
find_by
(
id:
params
[
:from_list_id
])
end
def
close_service
::
Issues
::
CloseService
.
new
(
project
,
user
)
end
def
reopen_service
::
Issues
::
ReopenService
.
new
(
project
,
user
)
def
moving_to_list
@moving_to_list
||=
board
.
lists
.
find_by
(
id:
params
[
:to_list_id
])
end
def
update_service
...
...
@@ -45,18 +33,24 @@ module Boards
def
issue_params
{
add_label_ids:
add_label_ids
,
remove_label_ids:
remove_label_ids
remove_label_ids:
remove_label_ids
,
state_event:
issue_state
}
end
def
issue_state
return
'reopen'
if
moving_from_list
.
done?
return
'close'
if
moving_to_list
.
done?
end
def
add_label_ids
[
moving_to
.
label_id
].
compact
[
moving_to
_list
.
label_id
].
compact
end
def
remove_label_ids
label_ids
=
if
moving_to
.
label?
moving_from
.
label_id
if
moving_to
_list
.
label?
moving_from
_list
.
label_id
else
board
.
lists
.
label
.
pluck
(
:label_id
)
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment