{"version":3,"sources":["webpack:///./pages/groups/group_members/index/index.js","webpack:///./member_expiration_date.js","webpack:///./members.js","webpack:///./users_select.js"],"names":["_users_select__WEBPACK_IMPORTED_MODULE_2__","__webpack_require__","document","addEventListener","Object","_member_expiration_date__WEBPACK_IMPORTED_MODULE_0__","_members__WEBPACK_IMPORTED_MODULE_1__","memberExpirationDate","selector","arguments","length","undefined","toggleClearInput","jquery__WEBPACK_IMPORTED_MODULE_0___default","this","closest","toggleClass","val","inputs","each","i","el","$input","calendar","pikaday__WEBPACK_IMPORTED_MODULE_1___default","a","field","get","theme","format","minDate","Date","container","parent","parse","dateString","_lib_utils_datefix__WEBPACK_IMPORTED_MODULE_2__","toString","date","onSelect","dateText","trigger","call","setDate","data","next","on","event","preventDefault","input","find","Members","_classCallCheck","addListeners","initGLDropdown","off","formSubmit","bind","formSuccess","gl","utils","disableButtonIfEmptyField","_this","btn","$btn","glDropdown","selectable","isSelectable","selected","$el","hasClass","fieldName","id","toggleLabel","text","clicked","options","e","$this","currentTarget","_getMemberListItems","getMemberListItems","$toggle","$dateInput","disable","_getMemberListItems2","enable","$memberListItem","is","$","UsersSelect","currentUser","els","$els","users","user","usersPath","userPath","_typeof","JSON","handleClick","dropdown","$block","$collapsedSidebar","$dropdown","$loading","$selectbox","$value","abilityName","assignTo","assigneeTemplate","collapsedAssigneeTemplate","defaultLabel","defaultNullUser","firstUser","issueURL","selectedId","selectedIdDefault","showAnyUser","showNullUser","showMenuAbove","projectId","groupId","showCurrentUser","todoFilter","todoStateFilter","authorId","fadeOut","assignYourself","unassignedSelected","remove","createElement","type","name","currentUserInfo","value","dataset","meta","underscore__WEBPACK_IMPORTED_MODULE_1___default","escape","before","after","getSelectedUserInputs","getSelected","map","index","parseInt","checkMaxSelect","maxSelect","firstSelectedId","emitSidebarEvent","getMultiSelectDropdownTitle","selectedUser","isSelected","selectedUsers","filter","u","otherSelected","s","hide","removeClass","gon","current_user_id","current_user_fullname","assignee_id","fadeIn","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_2__","put","then","_ref","tooltipTitle","assignee","username","avatar","avatar_url","_locale__WEBPACK_IMPORTED_MODULE_3__","html","attr","tooltip","template","term","callback","instance","processData","selectedInputs","uniq","userId","_input$dataset","avatarUrl","concat","anyUser","len","obj","showDivider","splice","unshift","beforeDivider","header","indexOf","sort","b","forEach","positionMenuAbove","filterable","filterRemote","search","fields","inputValue","filterInput","multiSelect","filteredFullData","parseData","addClass","hidden","css","inputMeta","isIssueIndex","isMRIndex","page","isMarking","selectedObj","isActive","previouslySelected","toLowerCase","element","addInput","show","isSelecting","_boards_stores_modal_store__WEBPACK_IMPORTED_MODULE_4__","store","Issuable","filterResults","submit","opened","highlightSelected","updateLabel","renderRow","img","default_avatar_url","select","showEmailUser","skipLdap","skipUsers","select2","placeholder","multiple","minimumInputLength","query","emailUser","nullUser","ref","results","match","trimmed","trim","invite","initSelection","args","slice","apply","formatResult","formatSelection","dropdownCssClass","escapeMarkup","m","window","noop","prototype","user_id","test","url","buildUrl","replace","_ref2","params","active","project_id","group_id","skip_ldap","todo_filter","todo_state_filter","current_user","author_id","skip_users","_ref3","relative_url_root","__webpack_exports__"],"mappings":"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","file":"pages.groups.group_members.index.40443935.chunk.js","sourcesContent":["/* eslint-disable no-new */\n\nimport memberExpirationDate from '~/member_expiration_date';\nimport Members from '~/members';\nimport UsersSelect from '~/users_select';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n memberExpirationDate();\n new Members();\n new UsersSelect();\n});\n","import $ from 'jquery';\nimport Pikaday from 'pikaday';\nimport { parsePikadayDate, pikadayToString } from './lib/utils/datefix';\n\n// Add datepickers to all `js-access-expiration-date` elements. If those elements are\n// children of an element with the `clearable-input` class, and have a sibling\n// `js-clear-input` element, then show that element when there is a value in the\n// datepicker, and make clicking on that element clear the field.\n//\nexport default function memberExpirationDate(selector = '.js-access-expiration-date') {\n function toggleClearInput() {\n $(this).closest('.clearable-input').toggleClass('has-value', $(this).val() !== '');\n }\n const inputs = $(selector);\n\n inputs.each((i, el) => {\n const $input = $(el);\n\n const calendar = new Pikaday({\n field: $input.get(0),\n theme: 'gitlab-theme animate-picker',\n format: 'yyyy-mm-dd',\n minDate: new Date(),\n container: $input.parent().get(0),\n parse: dateString => parsePikadayDate(dateString),\n toString: date => pikadayToString(date),\n onSelect(dateText) {\n $input.val(calendar.toString(dateText));\n\n $input.trigger('change');\n\n toggleClearInput.call($input);\n },\n });\n\n calendar.setDate(parsePikadayDate($input.val()));\n $input.data('pikaday', calendar);\n });\n\n inputs.next('.js-clear-input').on('click', function clicked(event) {\n event.preventDefault();\n\n const input = $(this).closest('.clearable-input').find(selector);\n const calendar = input.data('pikaday');\n\n calendar.setDate(null);\n input.trigger('change');\n toggleClearInput.call(input);\n });\n\n inputs.on('blur', toggleClearInput);\n\n inputs.each(toggleClearInput);\n}\n","import $ from 'jquery';\n\nexport default class Members {\n constructor() {\n this.addListeners();\n this.initGLDropdown();\n }\n\n addListeners() {\n $('.js-member-update-control').off('change').on('change', this.formSubmit.bind(this));\n $('.js-edit-member-form').off('ajax:success').on('ajax:success', this.formSuccess.bind(this));\n gl.utils.disableButtonIfEmptyField('#user_ids', 'input[name=commit]', 'change');\n }\n\n initGLDropdown() {\n $('.js-member-permissions-dropdown').each((i, btn) => {\n const $btn = $(btn);\n\n $btn.glDropdown({\n selectable: true,\n isSelectable(selected, $el) {\n return !$el.hasClass('is-active');\n },\n fieldName: $btn.data('fieldName'),\n id(selected, $el) {\n return $el.data('id');\n },\n toggleLabel(selected, $el) {\n return $el.text();\n },\n clicked: (options) => {\n this.formSubmit(null, options.$el);\n },\n });\n });\n }\n\n formSubmit(e, $el = null) {\n const $this = e ? $(e.currentTarget) : $el;\n const { $toggle, $dateInput } = this.getMemberListItems($this);\n\n $this.closest('form').trigger('submit.rails');\n\n $toggle.disable();\n $dateInput.disable();\n }\n\n formSuccess(e) {\n const { $toggle, $dateInput } = this.getMemberListItems($(e.currentTarget).closest('.member'));\n\n $toggle.enable();\n $dateInput.enable();\n }\n // eslint-disable-next-line class-methods-use-this\n getMemberListItems($el) {\n const $memberListItem = $el.is('.member') ? $el : $(`#${$el.data('elId')}`);\n\n return {\n $memberListItem,\n $toggle: $memberListItem.find('.dropdown-menu-toggle'),\n $dateInput: $memberListItem.find('.js-access-expiration-date'),\n };\n }\n}\n","/* eslint-disable func-names, one-var, no-var, prefer-rest-params, quotes, max-len, one-var-declaration-per-line, vars-on-top, prefer-arrow-callback, consistent-return, comma-dangle, object-shorthand, no-shadow, no-unused-vars, no-else-return, no-self-compare, prefer-template, no-unused-expressions, yoda, prefer-spread, no-void, camelcase, no-param-reassign */\n/* global Issuable */\n/* global emitSidebarEvent */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport axios from './lib/utils/axios_utils';\nimport { __ } from './locale';\nimport ModalStore from './boards/stores/modal_store';\n\n// TODO: remove eventHub hack after code splitting refactor\nwindow.emitSidebarEvent = window.emitSidebarEvent || $.noop;\n\nfunction UsersSelect(currentUser, els, options = {}) {\n var $els;\n this.users = this.users.bind(this);\n this.user = this.user.bind(this);\n this.usersPath = \"/autocomplete/users.json\";\n this.userPath = \"/autocomplete/users/:id.json\";\n if (currentUser != null) {\n if (typeof currentUser === 'object') {\n this.currentUser = currentUser;\n } else {\n this.currentUser = JSON.parse(currentUser);\n }\n }\n\n const { handleClick } = options;\n\n $els = $(els);\n\n if (!els) {\n $els = $('.js-user-search');\n }\n\n $els.each((function(_this) {\n return function(i, dropdown) {\n var options = {};\n var $block, $collapsedSidebar, $dropdown, $loading, $selectbox, $value, abilityName, assignTo, assigneeTemplate, collapsedAssigneeTemplate, defaultLabel, defaultNullUser, firstUser, issueURL, selectedId, selectedIdDefault, showAnyUser, showNullUser, showMenuAbove;\n $dropdown = $(dropdown);\n options.projectId = $dropdown.data('projectId');\n options.groupId = $dropdown.data('groupId');\n options.showCurrentUser = $dropdown.data('currentUser');\n options.todoFilter = $dropdown.data('todoFilter');\n options.todoStateFilter = $dropdown.data('todoStateFilter');\n showNullUser = $dropdown.data('nullUser');\n defaultNullUser = $dropdown.data('nullUserDefault');\n showMenuAbove = $dropdown.data('showMenuAbove');\n showAnyUser = $dropdown.data('anyUser');\n firstUser = $dropdown.data('firstUser');\n options.authorId = $dropdown.data('authorId');\n defaultLabel = $dropdown.data('defaultLabel');\n issueURL = $dropdown.data('issueUpdate');\n $selectbox = $dropdown.closest('.selectbox');\n $block = $selectbox.closest('.block');\n abilityName = $dropdown.data('abilityName');\n $value = $block.find('.value');\n $collapsedSidebar = $block.find('.sidebar-collapsed-user');\n $loading = $block.find('.block-loading').fadeOut();\n selectedIdDefault = (defaultNullUser && showNullUser) ? 0 : null;\n selectedId = $dropdown.data('selected');\n\n if (selectedId === undefined) {\n selectedId = selectedIdDefault;\n }\n\n const assignYourself = function () {\n const unassignedSelected = $dropdown.closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=0]`);\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n\n // Save current selected user to the DOM\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = $dropdown.data('fieldName');\n\n const currentUserInfo = $dropdown.data('currentUserInfo');\n\n if (currentUserInfo) {\n input.value = currentUserInfo.id;\n input.dataset.meta = _.escape(currentUserInfo.name);\n } else if (_this.currentUser) {\n input.value = _this.currentUser.id;\n }\n\n if ($selectbox) {\n $dropdown.parent().before(input);\n } else {\n $dropdown.after(input);\n }\n };\n\n if ($block[0]) {\n $block[0].addEventListener('assignYourself', assignYourself);\n }\n\n const getSelectedUserInputs = function() {\n return $selectbox\n .find(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n };\n\n const getSelected = function() {\n return getSelectedUserInputs()\n .map((index, input) => parseInt(input.value, 10))\n .get();\n };\n\n const checkMaxSelect = function() {\n const maxSelect = $dropdown.data('maxSelect');\n if (maxSelect) {\n const selected = getSelected();\n\n if (selected.length > maxSelect) {\n const firstSelectedId = selected[0];\n const firstSelected = $dropdown.closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=${firstSelectedId}]`);\n\n firstSelected.remove();\n emitSidebarEvent('sidebar.removeAssignee', {\n id: firstSelectedId,\n });\n }\n }\n };\n\n const getMultiSelectDropdownTitle = function(selectedUser, isSelected) {\n const selectedUsers = getSelected()\n .filter(u => u !== 0);\n\n const firstUser = getSelectedUserInputs()\n .map((index, input) => ({\n name: input.dataset.meta,\n value: parseInt(input.value, 10),\n }))\n .filter(u => u.id !== 0)\n .get(0);\n\n if (selectedUsers.length === 0) {\n return '未指派';\n } else if (selectedUsers.length === 1) {\n return firstUser.name;\n } else if (isSelected) {\n const otherSelected = selectedUsers.filter(s => s !== selectedUser.id);\n return `${selectedUser.name} + ${otherSelected.length} more`;\n } else {\n return `${firstUser.name} + ${selectedUsers.length - 1} more`;\n }\n };\n\n $('.assign-to-me-link').on('click', (e) => {\n e.preventDefault();\n $(e.currentTarget).hide();\n\n if ($dropdown.data('multiSelect')) {\n assignYourself();\n checkMaxSelect();\n\n const currentUserInfo = $dropdown.data('currentUserInfo');\n $dropdown.find('.dropdown-toggle-text').text(getMultiSelectDropdownTitle(currentUserInfo)).removeClass('is-default');\n } else {\n const $input = $(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n $input.val(gon.current_user_id);\n selectedId = $input.val();\n $dropdown.find('.dropdown-toggle-text').text(gon.current_user_fullname).removeClass('is-default');\n }\n });\n\n $block.on('click', '.js-assign-yourself', (e) => {\n e.preventDefault();\n return assignTo(_this.currentUser.id);\n });\n\n assignTo = function(selected) {\n var data;\n data = {};\n data[abilityName] = {};\n data[abilityName].assignee_id = selected != null ? selected : null;\n $loading.removeClass('hidden').fadeIn();\n $dropdown.trigger('loading.gl.dropdown');\n\n return axios.put(issueURL, data)\n .then(({ data }) => {\n var user, tooltipTitle;\n $dropdown.trigger('loaded.gl.dropdown');\n $loading.fadeOut();\n if (data.assignee) {\n user = {\n name: data.assignee.name,\n username: data.assignee.username,\n avatar: data.assignee.avatar_url\n };\n tooltipTitle = _.escape(user.name);\n } else {\n user = {\n name: '未指派',\n username: '',\n avatar: ''\n };\n tooltipTitle = __('Assignee');\n }\n $value.html(assigneeTemplate(user));\n $collapsedSidebar.attr('title', tooltipTitle).tooltip('_fixTitle');\n return $collapsedSidebar.html(collapsedAssigneeTemplate(user));\n });\n };\n collapsedAssigneeTemplate = _.template('<% if( avatar ) { %> \"> \"\"\"> <% } else { %> <% } %>');\n assigneeTemplate = _.template('<% if (username) { %> \"> <% if( avatar ) { %> \"\"\"> <% } %> <%- name %> @<%- username %> <% } else { %> No assignee - assign yourself <% } %>');\n return $dropdown.glDropdown({\n showMenuAbove: showMenuAbove,\n data: function(term, callback) {\n return _this.users(term, options, function(users) {\n // GitLabDropdownFilter returns this.instance\n // GitLabDropdownRemote returns this.options.instance\n const glDropdown = this.instance || this.options.instance;\n glDropdown.options.processData(term, users, callback);\n }.bind(this));\n },\n processData: function(term, data, callback) {\n let users = data;\n\n // Only show assigned user list when there is no search term\n if ($dropdown.hasClass('js-multiselect') && term.length === 0) {\n const selectedInputs = getSelectedUserInputs();\n\n // Potential duplicate entries when dealing with issue board\n // because issue board is also managed by vue\n const selectedUsers = _.uniq(selectedInputs, false, a => a.value)\n .filter((input) => {\n const userId = parseInt(input.value, 10);\n const inUsersArray = users.find(u => u.id === userId);\n\n return !inUsersArray && userId !== 0;\n })\n .map((input) => {\n const userId = parseInt(input.value, 10);\n const { avatarUrl, avatar_url, name, username } = input.dataset;\n return {\n avatar_url: avatarUrl || avatar_url,\n id: userId,\n name,\n username,\n };\n });\n\n users = data.concat(selectedUsers);\n }\n\n let anyUser;\n let index;\n let len;\n let name;\n let obj;\n let showDivider;\n if (term.length === 0) {\n showDivider = 0;\n if (firstUser) {\n // Move current user to the front of the list\n for (index = 0, len = users.length; index < len; index += 1) {\n obj = users[index];\n if (obj.username === firstUser) {\n users.splice(index, 1);\n users.unshift(obj);\n break;\n }\n }\n }\n if (showNullUser) {\n showDivider += 1;\n users.unshift({\n beforeDivider: true,\n name: '未指派',\n id: 0\n });\n }\n if (showAnyUser) {\n showDivider += 1;\n name = showAnyUser;\n if (name === true) {\n name = 'Any User';\n }\n anyUser = {\n beforeDivider: true,\n name: name,\n id: null\n };\n users.unshift(anyUser);\n }\n\n if (showDivider) {\n users.splice(showDivider, 0, 'divider');\n }\n\n if ($dropdown.hasClass('js-multiselect')) {\n const selected = getSelected().filter(i => i !== 0);\n\n if (selected.length > 0) {\n if ($dropdown.data('dropdownHeader')) {\n showDivider += 1;\n users.splice(showDivider, 0, {\n header: $dropdown.data('dropdownHeader'),\n });\n }\n\n const selectedUsers = users\n .filter(u => selected.indexOf(u.id) !== -1)\n .sort((a, b) => a.name > b.name);\n\n users = users.filter(u => selected.indexOf(u.id) === -1);\n\n selectedUsers.forEach((selectedUser) => {\n showDivider += 1;\n users.splice(showDivider, 0, selectedUser);\n });\n\n users.splice(showDivider + 1, 0, 'divider');\n }\n }\n }\n\n callback(users);\n if (showMenuAbove) {\n $dropdown.data('glDropdown').positionMenuAbove();\n }\n },\n filterable: true,\n filterRemote: true,\n search: {\n fields: ['name', 'username']\n },\n selectable: true,\n fieldName: $dropdown.data('fieldName'),\n toggleLabel: function(selected, el, glDropdown) {\n const inputValue = glDropdown.filterInput.val();\n\n if (this.multiSelect && inputValue === '') {\n // Remove non-users from the fullData array\n const users = glDropdown.filteredFullData();\n const callback = glDropdown.parseData.bind(glDropdown);\n\n // Update the data model\n this.processData(inputValue, users, callback);\n }\n\n if (this.multiSelect) {\n return getMultiSelectDropdownTitle(selected, $(el).hasClass('is-active'));\n }\n\n if (selected && 'id' in selected && $(el).hasClass('is-active')) {\n $dropdown.find('.dropdown-toggle-text').removeClass('is-default');\n if (selected.text) {\n return selected.text;\n } else {\n return selected.name;\n }\n } else {\n $dropdown.find('.dropdown-toggle-text').addClass('is-default');\n return defaultLabel;\n }\n },\n defaultLabel: defaultLabel,\n hidden: function(e) {\n if ($dropdown.hasClass('js-multiselect')) {\n emitSidebarEvent('sidebar.saveAssignees');\n }\n\n if (!$dropdown.data('alwaysShowSelectbox')) {\n $selectbox.hide();\n\n // Recalculate where .value is because vue might have changed it\n $block = $selectbox.closest('.block');\n $value = $block.find('.value');\n // display:block overrides the hide-collapse rule\n $value.css('display', '');\n }\n },\n multiSelect: $dropdown.hasClass('js-multiselect'),\n inputMeta: $dropdown.data('inputMeta'),\n clicked: function(options) {\n const { $el, e, isMarking } = options;\n const user = options.selectedObj;\n\n if ($dropdown.hasClass('js-multiselect')) {\n const isActive = $el.hasClass('is-active');\n const previouslySelected = $dropdown.closest('.selectbox')\n .find(\"input[name='\" + ($dropdown.data('fieldName')) + \"'][value!=0]\");\n\n // Enables support for limiting the number of users selected\n // Automatically removes the first on the list if more users are selected\n checkMaxSelect();\n\n if (user.beforeDivider && user.name.toLowerCase() === '未指派') {\n // Unassigned selected\n previouslySelected.each((index, element) => {\n const id = parseInt(element.value, 10);\n element.remove();\n });\n emitSidebarEvent('sidebar.removeAllAssignees');\n } else if (isActive) {\n // user selected\n emitSidebarEvent('sidebar.addAssignee', user);\n\n // Remove unassigned selection (if it was previously selected)\n const unassignedSelected = $dropdown.closest('.selectbox')\n .find(\"input[name='\" + ($dropdown.data('fieldName')) + \"'][value=0]\");\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n } else {\n if (previouslySelected.length === 0) {\n // Select unassigned because there is no more selected users\n this.addInput($dropdown.data('fieldName'), 0, {});\n }\n\n // User unselected\n emitSidebarEvent('sidebar.removeAssignee', user);\n }\n\n if (getSelected().find(u => u === gon.current_user_id)) {\n $('.assign-to-me-link').hide();\n } else {\n $('.assign-to-me-link').show();\n }\n }\n\n var isIssueIndex, isMRIndex, page, selected;\n page = $('body').attr('data-page');\n isIssueIndex = page === 'projects:issues:index';\n isMRIndex = (page === page && page === 'projects:merge_requests:index');\n if ($dropdown.hasClass('js-filter-bulk-update') || $dropdown.hasClass('js-issuable-form-dropdown')) {\n e.preventDefault();\n\n const isSelecting = (user.id !== selectedId);\n selectedId = isSelecting ? user.id : selectedIdDefault;\n\n if (selectedId === gon.current_user_id) {\n $('.assign-to-me-link').hide();\n } else {\n $('.assign-to-me-link').show();\n }\n return;\n }\n if ($el.closest('.add-issues-modal').length) {\n ModalStore.store.filter[$dropdown.data('fieldName')] = user.id;\n } else if (handleClick) {\n e.preventDefault();\n handleClick(user, isMarking);\n } else if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n return Issuable.filterResults($dropdown.closest('form'));\n } else if ($dropdown.hasClass('js-filter-submit')) {\n return $dropdown.closest('form').submit();\n } else if (!$dropdown.hasClass('js-multiselect')) {\n selected = $dropdown.closest('.selectbox').find(\"input[name='\" + ($dropdown.data('fieldName')) + \"']\").val();\n return assignTo(selected);\n }\n\n // Automatically close dropdown after assignee is selected\n // since CE has no multiple assignees\n // EE does not have a max-select\n if ($dropdown.data('maxSelect') &&\n getSelected().length === $dropdown.data('maxSelect')) {\n // Close the dropdown\n $dropdown.dropdown('toggle');\n }\n },\n id: function (user) {\n return user.id;\n },\n opened: function(e) {\n const $el = $(e.currentTarget);\n const selected = getSelected();\n if ($dropdown.hasClass('js-issue-board-sidebar') && selected.length === 0) {\n this.addInput($dropdown.data('fieldName'), 0, {});\n }\n $el.find('.is-active').removeClass('is-active');\n\n function highlightSelected(id) {\n $el.find(`li[data-user-id=\"${id}\"] .dropdown-menu-user-link`).addClass('is-active');\n }\n\n if (selected.length > 0) {\n getSelected().forEach(selectedId => highlightSelected(selectedId));\n } else if ($dropdown.hasClass('js-issue-board-sidebar')) {\n highlightSelected(0);\n } else {\n highlightSelected(selectedId);\n }\n },\n updateLabel: $dropdown.data('dropdownTitle'),\n renderRow: function(user) {\n var avatar, img, listClosingTags, listWithName, listWithUserName, username;\n username = user.username ? \"@\" + user.username : \"\";\n avatar = user.avatar_url ? user.avatar_url : gon.default_avatar_url;\n\n let selected = false;\n\n if (this.multiSelect) {\n selected = getSelected().find(u => user.id === u);\n\n const { fieldName } = this;\n const field = $dropdown.closest('.selectbox').find(\"input[name='\" + fieldName + \"'][value='\" + user.id + \"']\");\n\n if (field.length) {\n selected = true;\n }\n } else {\n selected = user.id === selectedId;\n }\n\n img = \"\";\n if (user.beforeDivider != null) {\n `
  • ${_.escape(user.name)}
  • `;\n } else {\n img = \"\";\n }\n\n return `\n
  • \n \n ${img}\n \n ${_.escape(user.name)}\n \n ${username ? `${username}` : ''}\n \n
  • \n `;\n }\n });\n };\n })(this));\n $('.ajax-users-select').each((function(_this) {\n return function(i, select) {\n var firstUser, showAnyUser, showEmailUser, showNullUser;\n var options = {};\n options.skipLdap = $(select).hasClass('skip_ldap');\n options.projectId = $(select).data('projectId');\n options.groupId = $(select).data('groupId');\n options.showCurrentUser = $(select).data('currentUser');\n options.authorId = $(select).data('authorId');\n options.skipUsers = $(select).data('skipUsers');\n showNullUser = $(select).data('nullUser');\n showAnyUser = $(select).data('anyUser');\n showEmailUser = $(select).data('emailUser');\n firstUser = $(select).data('firstUser');\n return $(select).select2({\n placeholder: \"Search for a user\",\n multiple: $(select).hasClass('multiselect'),\n minimumInputLength: 0,\n query: function(query) {\n return _this.users(query.term, options, function(users) {\n var anyUser, data, emailUser, index, len, name, nullUser, obj, ref;\n data = {\n results: users\n };\n if (query.term.length === 0) {\n if (firstUser) {\n // Move current user to the front of the list\n ref = data.results;\n\n for (index = 0, len = ref.length; index < len; index += 1) {\n obj = ref[index];\n if (obj.username === firstUser) {\n data.results.splice(index, 1);\n data.results.unshift(obj);\n break;\n }\n }\n }\n if (showNullUser) {\n nullUser = {\n name: '未指派',\n id: 0\n };\n data.results.unshift(nullUser);\n }\n if (showAnyUser) {\n name = showAnyUser;\n if (name === true) {\n name = 'Any User';\n }\n anyUser = {\n name: name,\n id: null\n };\n data.results.unshift(anyUser);\n }\n }\n if (showEmailUser && data.results.length === 0 && query.term.match(/^[^@]+@[^@]+$/)) {\n var trimmed = query.term.trim();\n emailUser = {\n name: \"邀请 \\\"\" + query.term + \"\\\" by email\",\n username: trimmed,\n id: trimmed,\n invite: true\n };\n data.results.unshift(emailUser);\n }\n return query.callback(data);\n });\n },\n initSelection: function() {\n var args;\n args = 1 <= arguments.length ? [].slice.call(arguments, 0) : [];\n return _this.initSelection.apply(_this, args);\n },\n formatResult: function() {\n var args;\n args = 1 <= arguments.length ? [].slice.call(arguments, 0) : [];\n return _this.formatResult.apply(_this, args);\n },\n formatSelection: function() {\n var args;\n args = 1 <= arguments.length ? [].slice.call(arguments, 0) : [];\n return _this.formatSelection.apply(_this, args);\n },\n dropdownCssClass: \"ajax-users-dropdown\",\n // we do not want to escape markup since we are displaying html in results\n escapeMarkup: function(m) {\n return m;\n }\n });\n };\n })(this));\n}\n\nUsersSelect.prototype.initSelection = function(element, callback) {\n var id, nullUser;\n id = $(element).val();\n if (id === \"0\") {\n nullUser = {\n name: '未指派'\n };\n return callback(nullUser);\n } else if (id !== \"\") {\n return this.user(id, callback);\n }\n};\n\nUsersSelect.prototype.formatResult = function(user) {\n var avatar;\n if (user.avatar_url) {\n avatar = user.avatar_url;\n } else {\n avatar = gon.default_avatar_url;\n }\n return \"
    \";\n};\n\nUsersSelect.prototype.formatSelection = function(user) {\n return _.escape(user.name);\n};\n\nUsersSelect.prototype.user = function(user_id, callback) {\n if (!/^\\d+$/.test(user_id)) {\n return false;\n }\n\n var url;\n url = this.buildUrl(this.userPath);\n url = url.replace(':id', user_id);\n return axios.get(url)\n .then(({ data }) => {\n callback(data);\n });\n};\n\n// Return users list. Filtered by query\n// Only active users retrieved\nUsersSelect.prototype.users = function(query, options, callback) {\n const url = this.buildUrl(this.usersPath);\n const params = {\n search: query,\n active: true,\n project_id: options.projectId || null,\n group_id: options.groupId || null,\n skip_ldap: options.skipLdap || null,\n todo_filter: options.todoFilter || null,\n todo_state_filter: options.todoStateFilter || null,\n current_user: options.showCurrentUser || null,\n author_id: options.authorId || null,\n skip_users: options.skipUsers || null\n };\n return axios.get(url, { params })\n .then(({ data }) => {\n callback(data);\n });\n};\n\nUsersSelect.prototype.buildUrl = function(url) {\n if (gon.relative_url_root != null) {\n url = gon.relative_url_root.replace(/\\/$/, '') + url;\n }\n return url;\n};\n\nexport default UsersSelect;\n"],"sourceRoot":""}