parent
ed5cf1ba69
commit
dfcc1b567d
|
@ -30,6 +30,19 @@ timeout = @.taiga.timeout
|
|||
|
||||
module = angular.module("taigaKanban")
|
||||
|
||||
# Vars
|
||||
|
||||
defaultViewMode = "maximized"
|
||||
defaultViewModes = {
|
||||
maximized: {
|
||||
cardClass: "kanban-task-maximized"
|
||||
}
|
||||
minimized: {
|
||||
cardClass: "kanban-task-minimized"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#############################################################################
|
||||
## Kanban Controller
|
||||
#############################################################################
|
||||
|
@ -147,6 +160,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
@scope.usStatusById = groupBy(project.us_statuses, (x) -> x.id)
|
||||
@scope.usStatusList = _.sortBy(project.us_statuses, "order")
|
||||
|
||||
@.loadStatusViewMode()
|
||||
@scope.$emit("project:loaded", project)
|
||||
return project
|
||||
|
||||
|
@ -161,6 +175,22 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
|||
.then(=> @.loadKanban())
|
||||
.then(=> @scope.$broadcast("redraw:wip"))
|
||||
|
||||
## View Mode methods
|
||||
|
||||
loadStatusViewMode: ->
|
||||
@scope.statusViewModes = {}
|
||||
for status in @scope.usStatusList
|
||||
@scope.statusViewModes[status.id] = defaultViewMode
|
||||
|
||||
updateStatusViewMode: (statusId, newViewMode) ->
|
||||
@scope.statusViewModes[statusId] = newViewMode
|
||||
|
||||
getCardClass: (statusId)->
|
||||
mode = @scope.statusViewModes[statusId] or defaultViewMode
|
||||
return defaultViewModes[mode].cardClass or defaultViewModes[defaultViewMode].cardClass
|
||||
|
||||
# Utils methods
|
||||
|
||||
prepareBulkUpdateData: (uses, field="kanban_order") ->
|
||||
return _.map(uses, (x) -> {"us_id": x.id, "order": x[field]})
|
||||
|
||||
|
|
|
@ -4,15 +4,28 @@ div.kanban-table
|
|||
h2.task-colum_name(ng-repeat="s in usStatusList track by s.id",
|
||||
ng-style="{'border-top-color':s.color}")
|
||||
span(tg-bo-bind="s.name")
|
||||
a.icon.icon-minimize(href="", title="Add New task")
|
||||
//-a.icon.icon-maximize(href="", title="Add New task")
|
||||
a.icon.icon-plus(tg-check-permission="add_us", href="", title="Add New task", ng-click="ctrl.addNewUs('standard', s.id)")
|
||||
a.icon.icon-bulk(tg-check-permission="add_us", href="", title="Add New bulk", ng-click="ctrl.addNewUs('bulk', s.id)")
|
||||
|
||||
a.icon.icon-minimize(href="", title="Minimize",
|
||||
ng-if="statusViewModes[s.id] == 'maximized'",
|
||||
ng-click="ctrl.updateStatusViewMode(s.id, 'minimized')")
|
||||
a.icon.icon-maximize(href="", title="Maximize",
|
||||
ng-if="statusViewModes[s.id] == 'minimized'",
|
||||
ng-click="ctrl.updateStatusViewMode(s.id, 'maximized')")
|
||||
|
||||
a.icon.icon-plus(href="", title="Add New task",
|
||||
ng-click="ctrl.addNewUs('standard', s.id)",
|
||||
tg-check-permission="add_us")
|
||||
|
||||
a.icon.icon-bulk(href="", title="Add New bulk",
|
||||
ng-click="ctrl.addNewUs('bulk', s.id)",
|
||||
tg-check-permission="add_us")
|
||||
|
||||
div.kanban-table-body
|
||||
div.kanban-table-inner(tg-kanban-row-width-fixer)
|
||||
div.kanban-uses-box.task-column(ng-repeat="status in usStatusList track by status.id",
|
||||
tg-kanban-sortable,
|
||||
tg-kanban-wip-limit,
|
||||
tg-kanban-column-height-fixer)
|
||||
div.kanban-task.kanban-task-maximized(ng-repeat="us in usByStatus[status.id] track by us.id",
|
||||
tg-kanban-userstory, ng-model="us")
|
||||
div.kanban-task(ng-repeat="us in usByStatus[status.id] track by us.id",
|
||||
tg-kanban-userstory, ng-model="us",
|
||||
ng-class="ctrl.getCardClass(status.id)")
|
||||
|
|
Loading…
Reference in New Issue