91 lines
3.0 KiB
CoffeeScript
91 lines
3.0 KiB
CoffeeScript
###
|
|
# Copyright (C) 2014-2018 Taiga Agile LLC
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as
|
|
# published by the Free Software Foundation, either version 3 of the
|
|
# License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# File: components/move-to-sprint/move-to-sprint-controller.coffee
|
|
###
|
|
|
|
taiga = @.taiga
|
|
|
|
class MoveToSprintController
|
|
@.$inject = [
|
|
'$scope'
|
|
'tgLightboxFactory'
|
|
]
|
|
|
|
constructor: (@scope, @lightboxFactory) ->
|
|
@.hasOpenItems = false
|
|
@.disabled = false
|
|
@.openItems = {
|
|
uss: []
|
|
tasks: []
|
|
issues: []
|
|
}
|
|
|
|
@scope.$watch "vm.uss", () => @getOpenUss()
|
|
@scope.$watch "vm.unnasignedTasks", () => @getOpenUnassignedTasks()
|
|
@scope.$watch "vm.issues", () => @getOpenIssues()
|
|
|
|
checkOpenItems: () ->
|
|
return _.some(Object.keys(@.openItems), (x) => @.openItems[x].length > 0)
|
|
|
|
openLightbox: () ->
|
|
if @.disabled is not true && @.hasOpenItems
|
|
openItems = {}
|
|
_.map @.openItems, (itemsList, itemsType) ->
|
|
if itemsList.length
|
|
openItems[itemsType] = itemsList
|
|
|
|
@lightboxFactory.create('tg-lb-move-to-sprint', {
|
|
"class": "lightbox lightbox-move-to-sprint"
|
|
"sprint": "sprint"
|
|
"open-items": "openItems"
|
|
}, {
|
|
sprint: @.sprint
|
|
openItems: openItems
|
|
})
|
|
|
|
getOpenUss: () ->
|
|
return if !@.uss
|
|
@.openItems.uss = []
|
|
@.uss.map (us) =>
|
|
if us.is_closed is false
|
|
@.openItems.uss.push({
|
|
us_id: us.id
|
|
order: us.sprint_order
|
|
})
|
|
@.hasOpenItems = @checkOpenItems()
|
|
|
|
getOpenUnassignedTasks: () ->
|
|
return if !@.unnasignedTasks
|
|
@.openItems.tasks = []
|
|
@.unnasignedTasks.map (column) => column.map (task) =>
|
|
if task.get('model').get('is_closed') is false
|
|
@.openItems.tasks.push({
|
|
task_id: task.get('model').get('id')
|
|
order: task.get('model').get('taskboard_order')
|
|
})
|
|
@.hasOpenItems = @checkOpenItems()
|
|
|
|
getOpenIssues: () ->
|
|
return if !@.issues
|
|
@.openItems.issues = []
|
|
@.issues.map (issue) =>
|
|
if issue.get('status').get('is_closed') is false
|
|
@.openItems.issues.push({ issue_id: issue.get('id') })
|
|
@.hasOpenItems = @checkOpenItems()
|
|
|
|
angular.module('taigaComponents').controller('MoveToSprintCtrl', MoveToSprintController)
|