Mercurial > kallithea
changeset 5243:790f01320369
autocomplete: fix completion of repository owner
The owner field of a repository setting was supposed to be autocompletable,
but never really did (at least not in Kallithea, probably it once did in
Rhodecode).
Instead of making yet another 'OwnerAutoComplete', make a generic
SimpleUserAutoComplete that can be reused in other places that only need
completion of a text input field.
author | Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> |
---|---|
date | Mon, 29 Jun 2015 17:42:39 +0200 |
parents | a5b32cea5c03 |
children | df3079729bd9 |
files | kallithea/controllers/admin/repos.py kallithea/public/js/base.js kallithea/templates/admin/repos/repo_edit_settings.html |
diffstat | 3 files changed, 23 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/admin/repos.py Tue Jun 30 17:53:40 2015 +0200 +++ b/kallithea/controllers/admin/repos.py Mon Jun 29 17:42:39 2015 +0200 @@ -370,6 +370,8 @@ c.repo_fields = RepositoryField.query()\ .filter(RepositoryField.repository == c.repo_info).all() + repo_model = RepoModel() + c.users_array = repo_model.get_users_js() c.active = 'settings' return htmlfill.render( render('admin/repos/repo_edit.html'),
--- a/kallithea/public/js/base.js Tue Jun 30 17:53:40 2015 +0200 +++ b/kallithea/public/js/base.js Mon Jun 29 17:42:39 2015 +0200 @@ -1242,24 +1242,34 @@ return autocomplete; } -var _MembersAutoComplete = function (divid, cont, users_list, groups_list) { +var SimpleUserAutoComplete = function (divid, cont, users_list) { var matchUsers = function (sQuery) { return autocompleteMatchUsers(sQuery, users_list); } - var matchGroups = function (sQuery) { - return autocompleteMatchGroups(sQuery, groups_list); - } + + var userAC = autocompleteCreate(divid, cont, matchUsers); + + // Handler for selection of an entry + var itemSelectHandler = function (sType, aArgs) { + 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 + myAC.getInputEl().value = oData.nname; + }; + userAC.itemSelectEvent.subscribe(itemSelectHandler); +} + +var _MembersAutoComplete = function (divid, cont, users_list, groups_list) { + var matchAll = function (sQuery) { - var u = matchUsers(sQuery); - var g = matchGroups(sQuery); + var u = autocompleteMatchUsers(sQuery, users_list); + var g = autocompleteMatchGroups(sQuery, groups_list); return u.concat(g); }; var membersAC = autocompleteCreate(divid, cont, matchAll); - var ownerAC = autocompleteCreate("user", "owner_container", matchUsers); - // Handler for selection of an entry var itemSelectHandler = function (sType, aArgs) { var nextId = divid.split('perm_new_member_name_')[1]; @@ -1278,9 +1288,6 @@ } }; membersAC.itemSelectEvent.subscribe(itemSelectHandler); - if(ownerAC.itemSelectEvent){ - ownerAC.itemSelectEvent.subscribe(itemSelectHandler); - } } var MentionsAutoComplete = function (divid, cont, users_list) {
--- a/kallithea/templates/admin/repos/repo_edit_settings.html Tue Jun 30 17:53:40 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_edit_settings.html Mon Jun 29 17:42:39 2015 +0200 @@ -162,5 +162,8 @@ 'dropdownAutoWidth': true }); + // autocomplete + var _USERS_AC_DATA = ${c.users_array|n}; + SimpleUserAutoComplete('user', 'owner_container', _USERS_AC_DATA); }); </script>