Add separated method for bulk order update for: backlog, kanban and sprint.
parent
f2bf83ec42
commit
ade97c19fd
|
@ -215,13 +215,13 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
"milestone": null
|
"milestone": null
|
||||||
})
|
})
|
||||||
|
|
||||||
prepareBulkUpdateData: (uses) ->
|
prepareBulkUpdateData: (uses, field="backlog_order") ->
|
||||||
return _.map(uses, (x) -> {"us_id": x.id, "order": x.order})
|
return _.map(uses, (x) -> {"us_id": x.id, "order": x[field]})
|
||||||
|
|
||||||
resortUserStories: (uses) ->
|
resortUserStories: (uses, field="backlog_order") ->
|
||||||
items = []
|
items = []
|
||||||
for item, index in uses
|
for item, index in uses
|
||||||
item.order = index
|
item[field] = index
|
||||||
if item.isModified()
|
if item.isModified()
|
||||||
items.push(item)
|
items.push(item)
|
||||||
|
|
||||||
|
@ -245,17 +245,27 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
userstories.splice(r, 1)
|
userstories.splice(r, 1)
|
||||||
userstories.splice(newUsIndex, 0, us)
|
userstories.splice(newUsIndex, 0, us)
|
||||||
|
|
||||||
|
# If in backlog
|
||||||
|
if newSprintId == null
|
||||||
# Rehash userstories order field
|
# Rehash userstories order field
|
||||||
items = @.resortUserStories(userstories)
|
items = @.resortUserStories(userstories, "backlog_order")
|
||||||
data = @.prepareBulkUpdateData(items)
|
data = @.prepareBulkUpdateData(items, "backlog_order")
|
||||||
|
|
||||||
# Persist in bulk all affected
|
# Persist in bulk all affected
|
||||||
# userstories with order change
|
# userstories with order change
|
||||||
promise = @rs.userstories.bulkUpdateOrder(us.project, data).then =>
|
@rs.userstories.bulkUpdateBacklogOrder(us.project, data).then =>
|
||||||
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
||||||
|
|
||||||
promise.then null, ->
|
# For sprint
|
||||||
console.log "FAIL"
|
else
|
||||||
|
# Rehash userstories order field
|
||||||
|
items = @.resortUserStories(userstories, "sprint_order")
|
||||||
|
data = @.prepareBulkUpdateData(items, "sprint_order")
|
||||||
|
|
||||||
|
# Persist in bulk all affected
|
||||||
|
# userstories with order change
|
||||||
|
@rs.userstories.bulkUpdateSprintOrder(us.project, data).then =>
|
||||||
|
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
||||||
|
|
||||||
return promise
|
return promise
|
||||||
|
|
||||||
|
@ -282,14 +292,13 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
# Rehash userstories order field
|
# Rehash userstories order field
|
||||||
# and persist in bulk all changes.
|
# and persist in bulk all changes.
|
||||||
promise = promise.then =>
|
promise = promise.then =>
|
||||||
items = @.resortUserStories(@scope.userstories)
|
items = @.resortUserStories(@scope.userstories, "backlog_order")
|
||||||
data = @.prepareBulkUpdateData(items)
|
data = @.prepareBulkUpdateData(items, "backlog_order")
|
||||||
promise = @rs.userstories.bulkUpdateOrder(us.project, data).then =>
|
return @rs.userstories.bulkUpdateBacklogOrder(us.project, data).then =>
|
||||||
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
||||||
|
|
||||||
promise.then null, ->
|
promise.then null, ->
|
||||||
# TODO
|
console.log "FAIL" # TODO
|
||||||
console.log "FAIL"
|
|
||||||
|
|
||||||
return promise
|
return promise
|
||||||
|
|
||||||
|
@ -327,14 +336,13 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
# Rehash userstories order field
|
# Rehash userstories order field
|
||||||
# and persist in bulk all changes.
|
# and persist in bulk all changes.
|
||||||
promise = promise.then =>
|
promise = promise.then =>
|
||||||
items = @.resortUserStories(newSprint.user_stories)
|
items = @.resortUserStories(newSprint.user_stories, "sprint_order")
|
||||||
data = @.prepareBulkUpdateData(items)
|
data = @.prepareBulkUpdateData(items, "sprint_order")
|
||||||
promise = @rs.userstories.bulkUpdateOrder(us.project, data).then =>
|
return @rs.userstories.bulkUpdateSprintOrder(us.project, data).then =>
|
||||||
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
@rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
||||||
|
|
||||||
promise.then null, ->
|
promise.then null, ->
|
||||||
# TODO
|
console.log "FAIL" # TODO
|
||||||
console.log "FAIL"
|
|
||||||
|
|
||||||
return promise
|
return promise
|
||||||
|
|
||||||
|
|
|
@ -161,13 +161,13 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
.then(=> @.loadKanban())
|
.then(=> @.loadKanban())
|
||||||
.then(=> @scope.$broadcast("redraw:wip"))
|
.then(=> @scope.$broadcast("redraw:wip"))
|
||||||
|
|
||||||
prepareBulkUpdateData: (uses) ->
|
prepareBulkUpdateData: (uses, field="kanban_order") ->
|
||||||
return _.map(uses, (x) -> {"us_id": x.id, "order": x.order})
|
return _.map(uses, (x) -> {"us_id": x.id, "order": x[field]})
|
||||||
|
|
||||||
resortUserStories: (uses) ->
|
resortUserStories: (uses) ->
|
||||||
items = []
|
items = []
|
||||||
for item, index in uses
|
for item, index in uses
|
||||||
item.order = index
|
item.kanban_order = index
|
||||||
if item.isModified()
|
if item.isModified()
|
||||||
items.push(item)
|
items.push(item)
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
items = @.resortUserStories(@scope.usByStatus[statusId])
|
items = @.resortUserStories(@scope.usByStatus[statusId])
|
||||||
data = @.prepareBulkUpdateData(items)
|
data = @.prepareBulkUpdateData(items)
|
||||||
|
|
||||||
return @rs.userstories.bulkUpdateOrder(us.project, data).then =>
|
return @rs.userstories.bulkUpdateKanbanOrder(us.project, data).then =>
|
||||||
# @rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
# @rootscope.$broadcast("sprint:us:moved", us, oldSprintId, newSprintId)
|
||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,9 @@ urls = {
|
||||||
"milestones": "/api/v1/milestones"
|
"milestones": "/api/v1/milestones"
|
||||||
"userstories": "/api/v1/userstories"
|
"userstories": "/api/v1/userstories"
|
||||||
"bulk-create-us": "/api/v1/userstories/bulk_create"
|
"bulk-create-us": "/api/v1/userstories/bulk_create"
|
||||||
"bulk-update-us-order": "/api/v1/userstories/bulk_update_order"
|
"bulk-update-us-backlog-order": "/api/v1/userstories/bulk_update_backlog_order"
|
||||||
|
"bulk-update-us-sprint-order": "/api/v1/userstories/bulk_update_sprint_order"
|
||||||
|
"bulk-update-us-kanban-order": "/api/v1/userstories/bulk_update_kanban_order"
|
||||||
"userstories-restore": "/api/v1/userstories/%s/restore"
|
"userstories-restore": "/api/v1/userstories/%s/restore"
|
||||||
"tasks": "/api/v1/tasks"
|
"tasks": "/api/v1/tasks"
|
||||||
"bulk-create-tasks": "/api/v1/tasks/bulk_create"
|
"bulk-create-tasks": "/api/v1/tasks/bulk_create"
|
||||||
|
|
|
@ -55,8 +55,18 @@ resourceProvider = ($repo, $http, $urls, $storage) ->
|
||||||
|
|
||||||
return $http.post(url, data)
|
return $http.post(url, data)
|
||||||
|
|
||||||
service.bulkUpdateOrder = (projectId, data) ->
|
service.bulkUpdateBacklogOrder = (projectId, data) ->
|
||||||
url = $urls.resolve("bulk-update-us-order")
|
url = $urls.resolve("bulk-update-us-backlog-order")
|
||||||
|
params = {project_id: projectId, bulk_stories: data}
|
||||||
|
return $http.post(url, params)
|
||||||
|
|
||||||
|
service.bulkUpdateSprintOrder = (projectId, data) ->
|
||||||
|
url = $urls.resolve("bulk-update-us-sprint-order")
|
||||||
|
params = {project_id: projectId, bulk_stories: data}
|
||||||
|
return $http.post(url, params)
|
||||||
|
|
||||||
|
service.bulkUpdateKanbanOrder = (projectId, data) ->
|
||||||
|
url = $urls.resolve("bulk-update-us-kanban-order")
|
||||||
params = {project_id: projectId, bulk_stories: data}
|
params = {project_id: projectId, bulk_stories: data}
|
||||||
return $http.post(url, params)
|
return $http.post(url, params)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue