Update assigned

stable
Xavier Julián 2016-08-02 10:24:33 +02:00 committed by David Barragán Merino
parent 1a76aa5d1a
commit 1891191ebc
11 changed files with 109 additions and 23 deletions

View File

@ -22,12 +22,9 @@ AssignedItemDirective = () ->
link = (scope, el, attrs) ->
return {
# controller: "AssignedToSelectorCtrl",
# controllerAs: "vm",
# bindToController: true,
templateUrl: "components/assigned-to/assigned-item/assigned-item.html",
scope: {
member: "=",
member: "="
},
link: link
}

View File

@ -1,3 +1,3 @@
.assignable-member-single(ng-click="onSelectMember()")
.assignable-member-single
img.assignable-member-avatar(tg-avatar="member")
.assignable-member-name {{member.full_name}}

View File

@ -1,12 +1,14 @@
.assignable-member-single {
align-items: center;
background: $white;
border-bottom: 1px solid $whitish;
display: flex;
padding: .25rem 0;
.assigned-members-option & {
background: $white;
border-bottom: 1px solid $whitish;
cursor: pointer;
}
&:hover {
background: rgba($primary-light, .05);
cursor: pointer;
}
.assignable-member-avatar {
flex-basis: 3rem;

View File

@ -21,14 +21,21 @@ class AssignedToSelectorController
@.$inject = []
constructor: () ->
if @.assigned
@._getAssignedMember()
@._filterAssignedMember()
_filterAssignedMember: () ->
@.nonAssignedMembers = _.filter(@.project.members, (member) =>
return member.id != @.assigned.get('id')
_getAssignedMember: () ->
@.assignedMember = _.filter(@.project.members, (member) =>
return member.id == @.assigned.get('id')
)
onAssignTo: (member) ->
console.log member
_filterAssignedMember: () ->
if @.assigned
@.nonAssignedMembers = _.filter(@.project.members, (member) =>
return member.id != @.assigned.get('id')
)
else
@.nonAssignedMembers = @.project.members
angular.module('taigaComponents').controller('AssignedToSelectorCtrl', AssignedToSelectorController)

View File

@ -26,7 +26,9 @@ AssignedToSelectorDirective = () ->
templateUrl: "components/assigned-to/assigned-to-selector/assigned-to-selector.html",
scope: {
assigned: "=",
project: "="
project: "=",
onRemoveAssigned: "&",
onAssignTo: "&"
}
}

View File

@ -10,8 +10,18 @@ tg-lightbox-close
ng-model-options="{debounce: 200}"
)
ul.assignable-member-list
li.assigned-member(
ng-repeat="member in vm.assignedMember"
ng-if="vm.assigned"
)
tg-assigned-item(member="member")
tg-svg.unassign-epic(
svg-icon="icon-close"
svg-title-translate="COMMON.ASSIGNED_TO.REMOVE_ASSIGNED"
ng-click="vm.onRemoveAssigned()"
)
li(ng-repeat="member in vm.nonAssignedMembers | filter: vm.assignToMember.name | limitTo:6")
tg-assigned-item.assigned-members-option(
member="member"
ng-click="vm.onAssignTo(member)"
ng-click="vm.onAssignTo({'member': member})"
)

View File

@ -4,4 +4,24 @@
.assignable-member-list {
margin-top: 1rem;
.assigned-member {
align-items: center;
background: rgba($primary-light, .05);
border-bottom: 1px solid $whitish;
display: flex;
justify-content: space-between;
margin-bottom: 1rem;
}
.unassign-epic {
cursor: pointer;
margin-right: 1rem;
}
.icon {
fill: $red-light;
transition: fill .2s;
&:hover {
cursor: pointer;
fill: $red;
}
}
}

View File

@ -14,25 +14,38 @@
# 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: attchment.controller.coffee
# File: assigned-to.controller.coffee
###
class AssignedToController
@.$inject = [
"tgLightboxFactory"
"tgLightboxFactory",
"lightboxService",
]
constructor: (@lightboxFactory) ->
constructor: (@lightboxFactory, @lightboxService) ->
@.has_permissions = _.includes(@.project.my_permissions, 'modify_epic')
_closeAndRemoveAssigned: () ->
@lightboxService.closeAll()
@.onRemoveAssigned()
_closeAndAssign: (member) ->
@lightboxService.closeAll()
@.onAssignTo({'member': member})
onSelectAssignedTo: (assigned, project) ->
@lightboxFactory.create('tg-assigned-to-selector', {
"class": "lightbox lightbox-assigned-to-selector open",
"assigned": "assigned",
"project": "project"
"project": "project",
"on-remove-assigned": "onRemoveAssigned()"
"on-assign-to": "assignTo(member)"
}, {
"assigned": @.assignedTo,
"project": @.project
"project": @.project,
"onRemoveAssigned": @._closeAndRemoveAssigned.bind(this),
"assignTo": @._closeAndAssign.bind(this)
})
angular.module('taigaComponents').controller('AssignedToCtrl', AssignedToController)

View File

@ -26,7 +26,9 @@ AssignedToDirective = () ->
templateUrl: "components/assigned-to/assigned-to.html",
scope: {
assignedTo: "=",
project: "="
project: "=",
onRemoveAssigned: "&",
onAssignTo: "&"
}
}

View File

@ -73,7 +73,38 @@ class EpicRowController
else
@.displayUserStories = false
onSelectAssignedTo: () ->
console.log 'Assigned to'
onRemoveAssigned: () ->
id = @.epic.get('id')
version = @.epic.get('version')
patch = {
'assigned_to': null,
'version': version
}
onSuccess = =>
@.onUpdateEpicStatus()
@confirm.notify('success')
onError = (data) =>
@confirm.notify('error')
return @rs.epics.patch(id, patch).then(onSuccess, onError)
onAssignTo: (member) ->
id = @.epic.get('id')
version = @.epic.get('version')
patch = {
'assigned_to': member.id,
'version': version
}
onSuccess = =>
@.onUpdateEpicStatus()
@confirm.notify('success')
onError = (data) =>
@confirm.notify('error')
return @rs.epics.patch(id, patch).then(onSuccess, onError)
module.controller("EpicRowCtrl", EpicRowController)

View File

@ -35,6 +35,8 @@
tg-assigned-to-component(
assigned-to="vm.epic.get('assigned_to_extra_info')"
project="vm.project"
on-remove-assigned="vm.onRemoveAssigned()"
on-assign-to="vm.onAssignTo(member)"
)
.status(
ng-if="vm.column.status && !vm.permissions.canEdit"