Update assigned
parent
1a76aa5d1a
commit
1891191ebc
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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}}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -26,7 +26,9 @@ AssignedToSelectorDirective = () ->
|
|||
templateUrl: "components/assigned-to/assigned-to-selector/assigned-to-selector.html",
|
||||
scope: {
|
||||
assigned: "=",
|
||||
project: "="
|
||||
project: "=",
|
||||
onRemoveAssigned: "&",
|
||||
onAssignTo: "&"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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})"
|
||||
)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -26,7 +26,9 @@ AssignedToDirective = () ->
|
|||
templateUrl: "components/assigned-to/assigned-to.html",
|
||||
scope: {
|
||||
assignedTo: "=",
|
||||
project: "="
|
||||
project: "=",
|
||||
onRemoveAssigned: "&",
|
||||
onAssignTo: "&"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue