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