@projectUsersSelect = init: -> $('.ajax-project-users-select').each (i, select) -> project_id = $(select).data('project-id') || $('body').data('project-id') $(select).select2 placeholder: $(select).data('placeholder') || "Search for a user" multiple: $(select).hasClass('multiselect') minimumInputLength: 0 query: (query) -> Api.projectUsers project_id, query.term, (users) -> data = { results: users } nullUser = { name: 'Unassigned', avatar: null, username: 'none', id: '' } data.results.unshift(nullUser) query.callback(data) initSelection: (element, callback) -> id = $(element).val() if id isnt "" Api.user(id, callback) formatResult: projectUsersSelect.projectUserFormatResult formatSelection: projectUsersSelect.projectUserFormatSelection dropdownCssClass: "ajax-project-users-dropdown" dropdownAutoWidth: true escapeMarkup: (m) -> # we do not want to escape markup since we are displaying html in results m projectUserFormatResult: (user) -> if user.avatar_url avatar = user.avatar_url else avatar = gon.default_avatar_url if user.id == '' avatarMarkup = '' else avatarMarkup = "
" "
#{avatarMarkup}
#{user.name}
#{user.username}
" projectUserFormatSelection: (user) -> user.name $ -> projectUsersSelect.init()