Do not close dropdown and enter with empty selection.

This commit is contained in:
Martin Edenhofer 2016-03-09 08:14:28 +01:00
parent aa999012fd
commit a17a1d3d41

View file

@ -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: =>