Do not close dropdown and enter with empty selection.
This commit is contained in:
parent
aa999012fd
commit
a17a1d3d41
1 changed files with 21 additions and 20 deletions
|
@ -37,11 +37,11 @@ class App.UserOrganizationAutocompletion extends App.Controller
|
||||||
close: =>
|
close: =>
|
||||||
execute = =>
|
execute = =>
|
||||||
@el.removeClass('open')
|
@el.removeClass('open')
|
||||||
@delay( execute, 400, 'close' )
|
@delay(execute, 200, 'close')
|
||||||
|
|
||||||
$(window).off 'click.UserOrganizationAutocompletion'
|
$(window).off 'click.UserOrganizationAutocompletion'
|
||||||
|
|
||||||
selectUser: (e) ->
|
selectUser: (e) =>
|
||||||
userId = $(e.target).parents('.recipientList-entry').data('user-id')
|
userId = $(e.target).parents('.recipientList-entry').data('user-id')
|
||||||
if !userId
|
if !userId
|
||||||
userId = $(e.target).data('user-id')
|
userId = $(e.target).data('user-id')
|
||||||
|
@ -51,7 +51,7 @@ class App.UserOrganizationAutocompletion extends App.Controller
|
||||||
setUser: (userId) =>
|
setUser: (userId) =>
|
||||||
@el.find('[name="' + @attribute.name + '"]').val( userId ).trigger('change')
|
@el.find('[name="' + @attribute.name + '"]').val( userId ).trigger('change')
|
||||||
|
|
||||||
executeCallback: ->
|
executeCallback: =>
|
||||||
userId = @el.find('[name="' + @attribute.name + '"]').val()
|
userId = @el.find('[name="' + @attribute.name + '"]').val()
|
||||||
return if !userId
|
return if !userId
|
||||||
return if !App.User.exists(userId)
|
return if !App.User.exists(userId)
|
||||||
|
@ -158,7 +158,8 @@ class App.UserOrganizationAutocompletion extends App.Controller
|
||||||
userId = @$('.recipientList').find('li.is-active').data('user-id')
|
userId = @$('.recipientList').find('li.is-active').data('user-id')
|
||||||
if !userId
|
if !userId
|
||||||
organizationId = @$('.recipientList').find('li.is-active').data('organization-id')
|
organizationId = @$('.recipientList').find('li.is-active').data('organization-id')
|
||||||
if organizationId
|
if !organizationId
|
||||||
|
return
|
||||||
@showOrganizationMembers(undefined, @$('.recipientList').find('li.is-active'))
|
@showOrganizationMembers(undefined, @$('.recipientList').find('li.is-active'))
|
||||||
return
|
return
|
||||||
if userId is 'new'
|
if userId is 'new'
|
||||||
|
@ -174,19 +175,19 @@ class App.UserOrganizationAutocompletion extends App.Controller
|
||||||
@el.find('[name="' + @attribute.name + '_completion"]').on(
|
@el.find('[name="' + @attribute.name + '_completion"]').on(
|
||||||
'keyup',
|
'keyup',
|
||||||
(e) =>
|
(e) =>
|
||||||
item = $(e.target).val().trim()
|
term = $(e.target).val().trim()
|
||||||
return if @searchTerm is item
|
return if @searchTerm is term
|
||||||
@searchTerm = item
|
@searchTerm = term
|
||||||
|
|
||||||
# hide dropdown
|
# hide dropdown
|
||||||
if !item && !@attribute.disableCreateUser
|
if !term && !@attribute.disableCreateUser
|
||||||
@emptyResultList()
|
@emptyResultList()
|
||||||
@$('.recipientList').append( @buildUserNew() )
|
@$('.recipientList').append(@buildUserNew())
|
||||||
|
|
||||||
# show dropdown
|
# show dropdown
|
||||||
if item && ( !@attribute.minLengt || @attribute.minLengt <= item.length )
|
if term && ( !@attribute.minLengt || @attribute.minLengt <= term.length )
|
||||||
execute = => @searchUser(item)
|
execute = => @searchUser(term)
|
||||||
@delay( execute, 400, 'userSearch' )
|
@delay(execute, 400, 'userSearch')
|
||||||
)
|
)
|
||||||
|
|
||||||
searchUser: (term) =>
|
searchUser: (term) =>
|
||||||
|
@ -201,27 +202,27 @@ class App.UserOrganizationAutocompletion extends App.Controller
|
||||||
@emptyResultList()
|
@emptyResultList()
|
||||||
|
|
||||||
# load assets
|
# load assets
|
||||||
App.Collection.loadAssets( data.assets )
|
App.Collection.loadAssets(data.assets)
|
||||||
|
|
||||||
# build markup
|
# build markup
|
||||||
for item in data.result
|
for item in data.result
|
||||||
|
|
||||||
# organization
|
# organization
|
||||||
if item.type is 'Organization'
|
if item.type is 'Organization'
|
||||||
organization = App.Organization.fullLocal( item.id )
|
organization = App.Organization.fullLocal(item.id)
|
||||||
@el.find('.recipientList').append( @buildOrganizationItem(organization) )
|
@$('.recipientList').append(@buildOrganizationItem(organization))
|
||||||
|
|
||||||
# users of organization
|
# users of organization
|
||||||
if organization.member_ids
|
if organization.member_ids
|
||||||
@el.find('.dropdown-menu').append( @buildOrganizationMembers(organization) )
|
@$('.dropdown-menu').append(@buildOrganizationMembers(organization))
|
||||||
|
|
||||||
# users
|
# users
|
||||||
if item.type is 'User'
|
if item.type is 'User'
|
||||||
user = App.User.fullLocal( item.id )
|
user = App.User.fullLocal(item.id)
|
||||||
@el.find('.recipientList').append( @buildUserItem(user) )
|
@$('.recipientList').append(@buildUserItem(user))
|
||||||
|
|
||||||
if !@attribute.disableCreateUser
|
if !@attribute.disableCreateUser
|
||||||
@el.find('.recipientList').append( @buildUserNew() )
|
@$('.recipientList').append(@buildUserNew())
|
||||||
)
|
)
|
||||||
|
|
||||||
emptyResultList: =>
|
emptyResultList: =>
|
||||||
|
|
Loading…
Reference in a new issue