Merge pull request #1239 from taigaio/issue/4956/emails-import
Display emails along with users on importstable
commit
363d432f0d
|
@ -26,6 +26,7 @@ class ImportProjectMembersController
|
||||||
constructor: (@currentUserService, @userService) ->
|
constructor: (@currentUserService, @userService) ->
|
||||||
@.selectImportUserLightbox = false
|
@.selectImportUserLightbox = false
|
||||||
@.warningImportUsers = false
|
@.warningImportUsers = false
|
||||||
|
@.displayEmailSelector = true
|
||||||
@.cancelledUsers = Immutable.List()
|
@.cancelledUsers = Immutable.List()
|
||||||
@.selectedUsers = Immutable.List()
|
@.selectedUsers = Immutable.List()
|
||||||
@.selectableUsers = Immutable.List()
|
@.selectableUsers = Immutable.List()
|
||||||
|
@ -56,6 +57,7 @@ class ImportProjectMembersController
|
||||||
user = user.set('taigaUser', taigaUser)
|
user = user.set('taigaUser', taigaUser)
|
||||||
|
|
||||||
@.selectedUsers = @.selectedUsers.push(user)
|
@.selectedUsers = @.selectedUsers.push(user)
|
||||||
|
|
||||||
@.discardSuggestedUser(externalUser)
|
@.discardSuggestedUser(externalUser)
|
||||||
|
|
||||||
@.refreshSelectableUsers()
|
@.refreshSelectableUsers()
|
||||||
|
@ -130,8 +132,10 @@ class ImportProjectMembersController
|
||||||
users = @.getDistinctSelectedTaigaUsers()
|
users = @.getDistinctSelectedTaigaUsers()
|
||||||
|
|
||||||
@.selectableUsers = users.map (it) -> return it.get('taigaUser')
|
@.selectableUsers = users.map (it) -> return it.get('taigaUser')
|
||||||
|
@.displayEmailSelector = false
|
||||||
else
|
else
|
||||||
@.selectableUsers = @.userContacts
|
@.selectableUsers = @.userContacts
|
||||||
|
@.displayEmailSelector = true
|
||||||
|
|
||||||
@.selectableUsers = @.selectableUsers.push(@.currentUser)
|
@.selectableUsers = @.selectableUsers.push(@.currentUser)
|
||||||
|
|
||||||
|
|
|
@ -315,6 +315,7 @@ describe "ImportProjectMembersCtrl", ->
|
||||||
ctrl = $controller("ImportProjectMembersCtrl")
|
ctrl = $controller("ImportProjectMembersCtrl")
|
||||||
|
|
||||||
ctrl.isImportMoreUsersDisabled = sinon.stub().returns(false)
|
ctrl.isImportMoreUsersDisabled = sinon.stub().returns(false)
|
||||||
|
ctrl.displayEmailSelector = false
|
||||||
|
|
||||||
ctrl.userContacts = Immutable.fromJS([1])
|
ctrl.userContacts = Immutable.fromJS([1])
|
||||||
ctrl.currentUser = 2
|
ctrl.currentUser = 2
|
||||||
|
@ -322,14 +323,16 @@ describe "ImportProjectMembersCtrl", ->
|
||||||
ctrl.refreshSelectableUsers()
|
ctrl.refreshSelectableUsers()
|
||||||
|
|
||||||
expect(ctrl.selectableUsers.toJS()).to.be.eql([1, 2])
|
expect(ctrl.selectableUsers.toJS()).to.be.eql([1, 2])
|
||||||
|
expect(ctrl.displayEmailSelector).to.be.true
|
||||||
|
|
||||||
|
|
||||||
it "refresh selectable users array with the selected ones", () ->
|
it.only "refresh selectable users array with the selected ones", () ->
|
||||||
ctrl = $controller("ImportProjectMembersCtrl")
|
ctrl = $controller("ImportProjectMembersCtrl")
|
||||||
|
|
||||||
ctrl.getDistinctSelectedTaigaUsers = sinon.stub().returns(Immutable.fromJS([
|
ctrl.getDistinctSelectedTaigaUsers = sinon.stub().returns(Immutable.fromJS([
|
||||||
{taigaUser: 1}
|
{taigaUser: 1}
|
||||||
]))
|
]))
|
||||||
|
ctrl.displayEmailSelector = false
|
||||||
|
|
||||||
ctrl.isImportMoreUsersDisabled = sinon.stub().returns(true)
|
ctrl.isImportMoreUsersDisabled = sinon.stub().returns(true)
|
||||||
|
|
||||||
|
@ -339,6 +342,7 @@ describe "ImportProjectMembersCtrl", ->
|
||||||
ctrl.refreshSelectableUsers()
|
ctrl.refreshSelectableUsers()
|
||||||
|
|
||||||
expect(ctrl.selectableUsers.toJS()).to.be.eql([1, 2])
|
expect(ctrl.selectableUsers.toJS()).to.be.eql([1, 2])
|
||||||
|
expect(ctrl.displayEmailSelector).to.be.false
|
||||||
|
|
||||||
it "import more user disable in private project", () ->
|
it "import more user disable in private project", () ->
|
||||||
ctrl = $controller("ImportProjectMembersCtrl")
|
ctrl = $controller("ImportProjectMembersCtrl")
|
||||||
|
|
|
@ -73,6 +73,7 @@
|
||||||
limit-members-public-project="vm.limitMembersPublicProject"
|
limit-members-public-project="vm.limitMembersPublicProject"
|
||||||
visible="vm.selectImportUserLightbox"
|
visible="vm.selectImportUserLightbox"
|
||||||
user="vm.searchingUser"
|
user="vm.searchingUser"
|
||||||
|
display-email-selector="vm.displayEmailSelector"
|
||||||
selectable-users="vm.selectableUsers"
|
selectable-users="vm.selectableUsers"
|
||||||
on-close="vm.selectImportUserLightbox = false"
|
on-close="vm.selectImportUserLightbox = false"
|
||||||
on-select-user="vm.confirmUser(user, taigaUser)"
|
on-select-user="vm.confirmUser(user, taigaUser)"
|
||||||
|
|
|
@ -40,9 +40,10 @@ SelectImportUserLightboxDirective = (lightboxService, lightboxKeyboardNavigation
|
||||||
onClose: '&',
|
onClose: '&',
|
||||||
onSelectUser: '&',
|
onSelectUser: '&',
|
||||||
selectableUsers: '<',
|
selectableUsers: '<',
|
||||||
isPrivate: '=',
|
isPrivate: '<',
|
||||||
limitMembersPrivateProject: '=',
|
limitMembersPrivateProject: '<',
|
||||||
limitMembersPublicProject: '='
|
limitMembersPublicProject: '<',
|
||||||
|
displayEmailSelector: '<'
|
||||||
},
|
},
|
||||||
templateUrl: 'projects/create/select-import-user-lightbox/select-import-user-lightbox.html'
|
templateUrl: 'projects/create/select-import-user-lightbox/select-import-user-lightbox.html'
|
||||||
link: link
|
link: link
|
||||||
|
|
|
@ -23,7 +23,10 @@ tg-lightbox-close(on-close="vm.onClose()")
|
||||||
translate-values="{'members': vm.limitMembersPrivateProject.max}"
|
translate-values="{'members': vm.limitMembersPrivateProject.max}"
|
||||||
)
|
)
|
||||||
|
|
||||||
form(ng-if="vm.mode == 'mail'", ng-submit="vm.assignUser()")
|
form(
|
||||||
|
ng-if="vm.mode == 'mail'"
|
||||||
|
ng-submit="vm.assignUser()"
|
||||||
|
)
|
||||||
div.create-project-warning
|
div.create-project-warning
|
||||||
tg-svg(svg-icon="icon-exclamation")
|
tg-svg(svg-icon="icon-exclamation")
|
||||||
span(translate="PROJECT.IMPORT.WARNING_MAIL_USER")
|
span(translate="PROJECT.IMPORT.WARNING_MAIL_USER")
|
||||||
|
@ -73,12 +76,13 @@ tg-lightbox-close(on-close="vm.onClose()")
|
||||||
img(tg-avatar="user")
|
img(tg-avatar="user")
|
||||||
a.user-list-name(
|
a.user-list-name(
|
||||||
href=""
|
href=""
|
||||||
title="{{user.full_name_display || user.full_name}}"
|
title="{{user.full_name_display || user.full_name || user}}"
|
||||||
) {{user.full_name_display || user.full_name}}
|
) {{user.full_name_display || user.full_name || user}}
|
||||||
|
|
||||||
.more-users(ng-if="filteredCollection.length >= 5")
|
.more-users(ng-if="filteredCollection.length > 5")
|
||||||
span(translate="COMMON.ASSIGNED_TO.TOO_MANY")
|
span(translate="COMMON.ASSIGNED_TO.TOO_MANY")
|
||||||
|
|
||||||
button.search-user-mode(
|
button.search-user-mode(
|
||||||
ng-click="vm.mode = 'mail'"
|
ng-click="vm.mode = 'mail'"
|
||||||
|
ng-if="vm.displayEmailSelector"
|
||||||
) {{'PROJECT.IMPORT.WRITE_EMAIL' | translate}}
|
) {{'PROJECT.IMPORT.WRITE_EMAIL' | translate}}
|
||||||
|
|
Loading…
Reference in New Issue