From 85b8d8e776424722b4b53ce294db472800685019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20Hermida?= Date: Tue, 24 Apr 2018 22:20:20 +0200 Subject: [PATCH] Add multiple avatar for US card in Kanban --- app/coffee/modules/kanban/kanban-usertories.coffee | 6 ++++++ .../components/card/card-templates/card-owner.jade | 13 +++++++++++-- app/modules/components/card/card.controller.coffee | 4 ++++ app/modules/components/card/card.scss | 3 +++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/coffee/modules/kanban/kanban-usertories.coffee b/app/coffee/modules/kanban/kanban-usertories.coffee index 0b0f13bf..477bc92b 100644 --- a/app/coffee/modules/kanban/kanban-usertories.coffee +++ b/app/coffee/modules/kanban/kanban-usertories.coffee @@ -223,6 +223,12 @@ class KanbanUserstoriesService extends taiga.Service us.id = usModel.id us.assigned_to = @.usersById[usModel.assigned_to] + us.assigned_users = [] + + usModel.assigned_users.forEach (assignedUserId) => + assignedUserData = @.usersById[assignedUserId] + us.assigned_users.push(assignedUserData) + us.colorized_tags = _.map us.model.tags, (tag) => return {name: tag[0], color: tag[1]} diff --git a/app/modules/components/card/card-templates/card-owner.jade b/app/modules/components/card/card-templates/card-owner.jade index 49789626..48e76d3a 100644 --- a/app/modules/components/card/card-templates/card-owner.jade +++ b/app/modules/components/card/card-templates/card-owner.jade @@ -1,11 +1,20 @@ .card-owner - .card-owner-info(ng-if="vm.item.get('assigned_to')") + .card-owner-info(ng-if="vm.item.get('assigned_to') && (!vm.hasMultipleAssignedUsers() || !vm.visible('owner'))") .card-owner-avatar img( ng-class="{'is-iocaine': vm.item.getIn(['model', 'is_iocaine'])}" tg-avatar="vm.item.get('assigned_to')" ) - span.card-owner-name(ng-if="vm.visible('owner')") {{vm.item.getIn(['assigned_to', 'full_name'])}} + span.card-owner-name(ng-if="vm.visible('owner') && !vm.hasMultipleAssignedUsers()") {{vm.item.getIn(['assigned_to', 'full_name'])}} + div(ng-if="!vm.visible('owner')") + include card-title + + .card-owner-info.multiple(ng-if="vm.item.get('assigned_to') && vm.hasMultipleAssignedUsers() && vm.visible('owner')") + .card-owner-avatar(tg-repeat="assignedUser in vm.item.get('assigned_users')") + img( + ng-class="{'is-iocaine': vm.item.getIn(['model', 'is_iocaine'])}" + tg-avatar="assignedUser" + ) div(ng-if="!vm.visible('owner')") include card-title diff --git a/app/modules/components/card/card.controller.coffee b/app/modules/components/card/card.controller.coffee index f264f85c..b42b171f 100644 --- a/app/modules/components/card/card.controller.coffee +++ b/app/modules/components/card/card.controller.coffee @@ -27,6 +27,10 @@ class CardController tasks = @.item.getIn(['model', 'tasks']) return tasks and tasks.size > 0 + hasMultipleAssignedUsers: () -> + assignedUsers = @.item.getIn(['model', 'assigned_users']) + return assignedUsers and assignedUsers.size > 1 + hasVisibleAttachments: () -> return @.item.get('images').size > 0 diff --git a/app/modules/components/card/card.scss b/app/modules/components/card/card.scss index a66f5425..469d3c15 100644 --- a/app/modules/components/card/card.scss +++ b/app/modules/components/card/card.scss @@ -79,6 +79,9 @@ .card-owner-info { align-items: center; display: flex; + &.multiple .card-owner-avatar img { + margin-right: .45rem; + } } .card-owner-avatar { line-height: 0;