diff --git a/kallithea/public/js/base.js b/kallithea/public/js/base.js --- a/kallithea/public/js/base.js +++ b/kallithea/public/js/base.js @@ -1153,7 +1153,7 @@ var SimpleUserAutoComplete = function ($ }); } -var MembersAutoComplete = function ($inputElement, users_list, groups_list) { +var MembersAutoComplete = function ($inputElement, $typeElement, users_list, groups_list) { var matchAll = function (sQuery) { var u = autocompleteMatchUsers(sQuery, users_list); @@ -1161,26 +1161,24 @@ var MembersAutoComplete = function ($inp return u.concat(g); }; - var membersAC = autocompleteCreate($inputElement, matchAll); - - // Handler for selection of an entry - var itemSelectHandler = function (sType, aArgs) { - var nextId = $inputElement.prop('id').split('perm_new_member_name_')[1]; - var myAC = aArgs[0]; // reference back to the AC instance - var elLI = aArgs[1]; // reference to the selected LI element - var oData = aArgs[2]; // object literal of selected item's result data - //fill the autocomplete with value - if (oData.nname != undefined) { - //users - myAC.getInputEl().value = oData.nname; - $('#perm_new_member_type_'+nextId).val('user'); + $inputElement.select2( + { + placeholder: $inputElement.attr('placeholder'), + minimumInputLength: 1, + query: function (query) { + query.callback({results: matchAll(query.term)}); + }, + formatSelection: autocompleteFormatter, + formatResult: autocompleteFormatter, + escapeMarkup: function(m) { return m; }, + }).on("select2-selecting", function(e) { + // e.choice.id is automatically used as selection value - just set the type of the selection + if (e.choice.nname != undefined) { + $typeElement.val('user'); } else { - //groups - myAC.getInputEl().value = oData.grname; - $('#perm_new_member_type_'+nextId).val('users_group'); + $typeElement.val('users_group'); } - }; - membersAC.itemSelectEvent.subscribe(itemSelectHandler); + }); } var MentionsAutoComplete = function ($inputElement, users_list) { @@ -1340,17 +1338,15 @@ function addPermAction(perm_type, users_ '