US #903: Task #1014: Toggle view mode

stable
David Barragán Merino 2014-09-17 14:12:02 +02:00 committed by Andrey Antukh
parent ed5cf1ba69
commit dfcc1b567d
2 changed files with 49 additions and 6 deletions

View File

@ -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]})

View File

@ -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)")