Update assigned
parent
1a76aa5d1a
commit
1891191ebc
|
@ -22,12 +22,9 @@ AssignedItemDirective = () ->
|
||||||
link = (scope, el, attrs) ->
|
link = (scope, el, attrs) ->
|
||||||
|
|
||||||
return {
|
return {
|
||||||
# controller: "AssignedToSelectorCtrl",
|
|
||||||
# controllerAs: "vm",
|
|
||||||
# bindToController: true,
|
|
||||||
templateUrl: "components/assigned-to/assigned-item/assigned-item.html",
|
templateUrl: "components/assigned-to/assigned-item/assigned-item.html",
|
||||||
scope: {
|
scope: {
|
||||||
member: "=",
|
member: "="
|
||||||
},
|
},
|
||||||
link: link
|
link: link
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.assignable-member-single(ng-click="onSelectMember()")
|
.assignable-member-single
|
||||||
img.assignable-member-avatar(tg-avatar="member")
|
img.assignable-member-avatar(tg-avatar="member")
|
||||||
.assignable-member-name {{member.full_name}}
|
.assignable-member-name {{member.full_name}}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
.assignable-member-single {
|
.assignable-member-single {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: $white;
|
|
||||||
border-bottom: 1px solid $whitish;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: .25rem 0;
|
padding: .25rem 0;
|
||||||
|
.assigned-members-option & {
|
||||||
|
background: $white;
|
||||||
|
border-bottom: 1px solid $whitish;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba($primary-light, .05);
|
background: rgba($primary-light, .05);
|
||||||
cursor: pointer;
|
|
||||||
}
|
}
|
||||||
.assignable-member-avatar {
|
.assignable-member-avatar {
|
||||||
flex-basis: 3rem;
|
flex-basis: 3rem;
|
||||||
|
|
|
@ -21,14 +21,21 @@ class AssignedToSelectorController
|
||||||
@.$inject = []
|
@.$inject = []
|
||||||
|
|
||||||
constructor: () ->
|
constructor: () ->
|
||||||
|
if @.assigned
|
||||||
|
@._getAssignedMember()
|
||||||
@._filterAssignedMember()
|
@._filterAssignedMember()
|
||||||
|
|
||||||
|
_getAssignedMember: () ->
|
||||||
|
@.assignedMember = _.filter(@.project.members, (member) =>
|
||||||
|
return member.id == @.assigned.get('id')
|
||||||
|
)
|
||||||
|
|
||||||
_filterAssignedMember: () ->
|
_filterAssignedMember: () ->
|
||||||
|
if @.assigned
|
||||||
@.nonAssignedMembers = _.filter(@.project.members, (member) =>
|
@.nonAssignedMembers = _.filter(@.project.members, (member) =>
|
||||||
return member.id != @.assigned.get('id')
|
return member.id != @.assigned.get('id')
|
||||||
)
|
)
|
||||||
|
else
|
||||||
onAssignTo: (member) ->
|
@.nonAssignedMembers = @.project.members
|
||||||
console.log member
|
|
||||||
|
|
||||||
angular.module('taigaComponents').controller('AssignedToSelectorCtrl', AssignedToSelectorController)
|
angular.module('taigaComponents').controller('AssignedToSelectorCtrl', AssignedToSelectorController)
|
||||||
|
|
|
@ -26,7 +26,9 @@ AssignedToSelectorDirective = () ->
|
||||||
templateUrl: "components/assigned-to/assigned-to-selector/assigned-to-selector.html",
|
templateUrl: "components/assigned-to/assigned-to-selector/assigned-to-selector.html",
|
||||||
scope: {
|
scope: {
|
||||||
assigned: "=",
|
assigned: "=",
|
||||||
project: "="
|
project: "=",
|
||||||
|
onRemoveAssigned: "&",
|
||||||
|
onAssignTo: "&"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,18 @@ tg-lightbox-close
|
||||||
ng-model-options="{debounce: 200}"
|
ng-model-options="{debounce: 200}"
|
||||||
)
|
)
|
||||||
ul.assignable-member-list
|
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")
|
li(ng-repeat="member in vm.nonAssignedMembers | filter: vm.assignToMember.name | limitTo:6")
|
||||||
tg-assigned-item.assigned-members-option(
|
tg-assigned-item.assigned-members-option(
|
||||||
member="member"
|
member="member"
|
||||||
ng-click="vm.onAssignTo(member)"
|
ng-click="vm.onAssignTo({'member': member})"
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,4 +4,24 @@
|
||||||
|
|
||||||
.assignable-member-list {
|
.assignable-member-list {
|
||||||
margin-top: 1rem;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,25 +14,38 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# File: attchment.controller.coffee
|
# File: assigned-to.controller.coffee
|
||||||
###
|
###
|
||||||
|
|
||||||
class AssignedToController
|
class AssignedToController
|
||||||
@.$inject = [
|
@.$inject = [
|
||||||
"tgLightboxFactory"
|
"tgLightboxFactory",
|
||||||
|
"lightboxService",
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@lightboxFactory) ->
|
constructor: (@lightboxFactory, @lightboxService) ->
|
||||||
@.has_permissions = _.includes(@.project.my_permissions, 'modify_epic')
|
@.has_permissions = _.includes(@.project.my_permissions, 'modify_epic')
|
||||||
|
|
||||||
|
_closeAndRemoveAssigned: () ->
|
||||||
|
@lightboxService.closeAll()
|
||||||
|
@.onRemoveAssigned()
|
||||||
|
|
||||||
|
_closeAndAssign: (member) ->
|
||||||
|
@lightboxService.closeAll()
|
||||||
|
@.onAssignTo({'member': member})
|
||||||
|
|
||||||
onSelectAssignedTo: (assigned, project) ->
|
onSelectAssignedTo: (assigned, project) ->
|
||||||
@lightboxFactory.create('tg-assigned-to-selector', {
|
@lightboxFactory.create('tg-assigned-to-selector', {
|
||||||
"class": "lightbox lightbox-assigned-to-selector open",
|
"class": "lightbox lightbox-assigned-to-selector open",
|
||||||
"assigned": "assigned",
|
"assigned": "assigned",
|
||||||
"project": "project"
|
"project": "project",
|
||||||
|
"on-remove-assigned": "onRemoveAssigned()"
|
||||||
|
"on-assign-to": "assignTo(member)"
|
||||||
}, {
|
}, {
|
||||||
"assigned": @.assignedTo,
|
"assigned": @.assignedTo,
|
||||||
"project": @.project
|
"project": @.project,
|
||||||
|
"onRemoveAssigned": @._closeAndRemoveAssigned.bind(this),
|
||||||
|
"assignTo": @._closeAndAssign.bind(this)
|
||||||
})
|
})
|
||||||
|
|
||||||
angular.module('taigaComponents').controller('AssignedToCtrl', AssignedToController)
|
angular.module('taigaComponents').controller('AssignedToCtrl', AssignedToController)
|
||||||
|
|
|
@ -26,7 +26,9 @@ AssignedToDirective = () ->
|
||||||
templateUrl: "components/assigned-to/assigned-to.html",
|
templateUrl: "components/assigned-to/assigned-to.html",
|
||||||
scope: {
|
scope: {
|
||||||
assignedTo: "=",
|
assignedTo: "=",
|
||||||
project: "="
|
project: "=",
|
||||||
|
onRemoveAssigned: "&",
|
||||||
|
onAssignTo: "&"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,38 @@ class EpicRowController
|
||||||
else
|
else
|
||||||
@.displayUserStories = false
|
@.displayUserStories = false
|
||||||
|
|
||||||
onSelectAssignedTo: () ->
|
onRemoveAssigned: () ->
|
||||||
console.log 'Assigned to'
|
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)
|
module.controller("EpicRowCtrl", EpicRowController)
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
tg-assigned-to-component(
|
tg-assigned-to-component(
|
||||||
assigned-to="vm.epic.get('assigned_to_extra_info')"
|
assigned-to="vm.epic.get('assigned_to_extra_info')"
|
||||||
project="vm.project"
|
project="vm.project"
|
||||||
|
on-remove-assigned="vm.onRemoveAssigned()"
|
||||||
|
on-assign-to="vm.onAssignTo(member)"
|
||||||
)
|
)
|
||||||
.status(
|
.status(
|
||||||
ng-if="vm.column.status && !vm.permissions.canEdit"
|
ng-if="vm.column.status && !vm.permissions.canEdit"
|
||||||
|
|
Loading…
Reference in New Issue