Fix create-epic lightbox

stable
David Barragán Merino 2016-09-08 09:19:21 +02:00
parent 99e04c369f
commit 14e53ec76b
3 changed files with 31 additions and 27 deletions

View File

@ -52,14 +52,15 @@ class CreateEpicController
@.loading = true
@epicsService.createEpic(@.epic, @.attachments)
@epicsService.createEpic(@.newEpic, @.attachments)
.then (response) => # On success
@.onCreateEpic()
.then null, (response) => # On error
@.loading = false
.catch (response) => # On error
@.loading = false
@.setFormErrors(response.data)
if response.data._error_message
@confirm.notify("error", response.data._error_message)
@.loading = false
# Color selector
selectColor: (color) ->

View File

@ -54,13 +54,16 @@ class EpicsDashboardController
return @projectService.hasPermission("add_epic")
onCreateEpic: () ->
onCreateEpic = () =>
@lightboxService.closeAll()
@confirm.notify("success")
return # To prevent error https://docs.angularjs.org/error/$parse/isecdom?p0=onCreateEpic()
@lightboxFactory.create('tg-create-epic', {
"class": "lightbox lightbox-create-epic open"
"on-create-epic": "onCreateEpic()"
}, {
"onCreateEpic": () =>
@lightboxService.closeAll()
@confirm.notify("success")
"onCreateEpic": onCreateEpic.bind(this)
})
angular.module("taigaEpics").controller("EpicsDashboardCtrl", EpicsDashboardController)

View File

@ -21,22 +21,22 @@ taiga = @.taiga
class EpicsService
@.$inject = [
"tgProjectService",
"tgAttachmentsService"
"tgResources",
"tgXhrErrorService",
"$q"
'tgProjectService',
'tgAttachmentsService'
'tgResources',
'tgXhrErrorService',
'$q'
]
constructor: (@projectService, @attachmentsService, @resources, @xhrError, @q) ->
@._epics = Immutable.List()
taiga.defineImmutableProperty @, "epics", () => return @._epics
taiga.defineImmutableProperty @, 'epics', () => return @._epics
clear: () ->
@._epics = Immutable.List()
fetchEpics: () ->
return @resources.epics.list(@projectService.project.get("id"))
return @resources.epics.list(@projectService.project.get('id'))
.then (epics) =>
@._epics = epics
.catch (xhr) =>
@ -46,54 +46,54 @@ class EpicsService
return @resources.userstories.listInEpic(epic.get('id'))
createEpic: (epicData, attachments) ->
@.epicData.project = @projectsService.project.id
epicData.project = @projectService.project.get('id')
return @resources.epics.post(@.epicData)
return @resources.epics.post(epicData)
.then (epic) =>
promises = _.map attachments.toJS(), (attachment) =>
@attachmentsService.upload(attachment.file, epic.get("id"), epic.get("project"), 'epic')
@attachmentsService.upload(attachment.file, epic.get('id'), epic.get('project'), 'epic')
@q.all(promises).then () =>
@.fetchEpics()
reorderEpic: (epic, newIndex) ->
withoutMoved = @.epics.filter (it) => it.get("id") != epic.get("id")
withoutMoved = @.epics.filter (it) => it.get('id') != epic.get('id')
beforeDestination = withoutMoved.slice(0, newIndex)
previous = beforeDestination.last()
newOrder = if !previous then 0 else epic.get("epics_order") + 1
newOrder = if !previous then 0 else epic.get('epics_order') + 1
previousWithTheSameOrder = beforeDestination.filter (it) =>
it.get("epics_order") == previous.get("epics_order")
it.get('epics_order') == previous.get('epics_order')
setOrders = Immutable.OrderedMap previousWithTheSameOrder.map (it) =>
[it.get('id'), it.get("epics_order")]
[it.get('id'), it.get('epics_order')]
data = {
order: newOrder,
version: epic.get("version")
version: epic.get('version')
}
return @resources.epics.reorder(epic.get("id"), data, setOrders)
return @resources.epics.reorder(epic.get('id'), data, setOrders)
.then () =>
@.fetchEpics()
updateEpicStatus: (epic, statusId) ->
data = {
status: statusId,
version: epic.get("version")
version: epic.get('version')
}
return @resources.epics.patch(epic.get("id"), data)
return @resources.epics.patch(epic.get('id'), data)
.then () =>
@.fetchEpics()
updateEpicAssignedTo: (epic, userId) ->
data = {
assigned_to: userId,
version: epic.get("version")
version: epic.get('version')
}
return @resources.epics.patch(epic.get("id"), data)
return @resources.epics.patch(epic.get('id'), data)
.then () =>
@.fetchEpics()
angular.module("taigaEpics").service("tgEpicsService", EpicsService)
angular.module('taigaEpics').service('tgEpicsService', EpicsService)