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

View File

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

View File

@ -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;

View File

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

View File

@ -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: "&"
} }
} }

View File

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

View File

@ -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;
}
}
} }

View File

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

View File

@ -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: "&"
} }
} }

View File

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

View File

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