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 @.loading = true
@epicsService.createEpic(@.epic, @.attachments) @epicsService.createEpic(@.newEpic, @.attachments)
.then (response) => # On success .then (response) => # On success
@.onCreateEpic() @.onCreateEpic()
.then null, (response) => # On error @.loading = false
.catch (response) => # On error
@.loading = false
@.setFormErrors(response.data) @.setFormErrors(response.data)
if response.data._error_message if response.data._error_message
@confirm.notify("error", response.data._error_message) @confirm.notify("error", response.data._error_message)
@.loading = false
# Color selector # Color selector
selectColor: (color) -> selectColor: (color) ->

View File

@ -54,13 +54,16 @@ class EpicsDashboardController
return @projectService.hasPermission("add_epic") return @projectService.hasPermission("add_epic")
onCreateEpic: () -> 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', { @lightboxFactory.create('tg-create-epic', {
"class": "lightbox lightbox-create-epic open" "class": "lightbox lightbox-create-epic open"
"on-create-epic": "onCreateEpic()" "on-create-epic": "onCreateEpic()"
}, { }, {
"onCreateEpic": () => "onCreateEpic": onCreateEpic.bind(this)
@lightboxService.closeAll()
@confirm.notify("success")
}) })
angular.module("taigaEpics").controller("EpicsDashboardCtrl", EpicsDashboardController) angular.module("taigaEpics").controller("EpicsDashboardCtrl", EpicsDashboardController)

View File

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