Changeset - 790f01320369
[Not reviewed]
default
0 3 0
Thomas De Schampheleire - 10 years ago 2015-06-29 17:42:39
thomas.de.schampheleire@gmail.com
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.
3 files changed with 23 insertions and 11 deletions:
0 comments (0 inline, 0 general)
kallithea/controllers/admin/repos.py
Show inline comments
 
@@ -367,12 +367,14 @@ class ReposController(BaseRepoController
 
        defaults = self.__load_data(repo_name)
 
        if 'clone_uri' in defaults:
 
            del defaults['clone_uri']
 

	
 
        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'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
kallithea/public/js/base.js
Show inline comments
 
@@ -1239,30 +1239,40 @@ var autocompleteCreate = function (input
 
    autocomplete.animSpeed = 0.1;
 
    autocomplete.formatResult = autocompleteFormatter;
 

	
 
    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];
 
        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
 
@@ -1275,15 +1285,12 @@ var _MembersAutoComplete = function (div
 
            //groups
 
            myAC.getInputEl().value = oData.grname;
 
            $('#perm_new_member_type_'+nextId).val('users_group');
 
        }
 
    };
 
    membersAC.itemSelectEvent.subscribe(itemSelectHandler);
 
    if(ownerAC.itemSelectEvent){
 
        ownerAC.itemSelectEvent.subscribe(itemSelectHandler);
 
    }
 
}
 

	
 
var MentionsAutoComplete = function (divid, cont, users_list) {
 

	
 
    var matchUsers = function (sQuery) {
 
            var org_sQuery = sQuery;
kallithea/templates/admin/repos/repo_edit_settings.html
Show inline comments
 
@@ -159,8 +159,11 @@ ${h.form(url('repo', repo_name=c.repo_in
 
            'dropdownAutoWidth': true
 
        });
 
        $('#repo_group').select2({
 
            'dropdownAutoWidth': true
 
        });
 

	
 
        // autocomplete
 
        var _USERS_AC_DATA = ${c.users_array|n};
 
        SimpleUserAutoComplete('user', 'owner_container', _USERS_AC_DATA);
 
    });
 
</script>
0 comments (0 inline, 0 general)