# HG changeset patch # User Thomas De Schampheleire # Date 1435162968 -7200 # Node ID 0c82cb41d266779b4c660dc3d7c6fa23604283f0 # Parent 96ed562709f98a52940e3448e4343100f0c02bce autocomplete: factor out matchUsers function diff -r 96ed562709f9 -r 0c82cb41d266 kallithea/public/js/base.js --- a/kallithea/public/js/base.js Wed Jun 24 21:32:26 2015 +0200 +++ b/kallithea/public/js/base.js Wed Jun 24 18:22:48 2015 +0200 @@ -1107,31 +1107,37 @@ ajaxPOST(sUrl, postData, success, failure); }; -/** MEMBERS AUTOCOMPLETE WIDGET **/ +/** + * Autocomplete functionality + */ + +// Custom search function for the DataSource of users +var autocompleteMatchUsers = function (sQuery, myUsers) { + // Case insensitive matching + var query = sQuery.toLowerCase(); + var i = 0; + var l = myUsers.length; + var matches = []; + + // Match against each name of each contact + for (; i < l; i++) { + var contact = myUsers[i]; + if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || + ((contact.lname+"").toLowerCase().indexOf(query) > -1) || + ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { + matches[matches.length] = contact; + } + } + return matches; +}; + var _MembersAutoComplete = function (divid, cont, users_list, groups_list) { - var myUsers = users_list; var myGroups = groups_list; - // Define a custom search function for the DataSource of users var matchUsers = function (sQuery) { - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myUsers.length; - var matches = []; - - // Match against each name of each contact - for (; i < l; i++) { - var contact = myUsers[i]; - if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || - ((contact.lname+"").toLowerCase().indexOf(query) > -1) || - ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { - matches[matches.length] = contact; - } - } - return matches; - }; + return autocompleteMatchUsers(sQuery, users_list); + } // Define a custom search function for the DataSource of userGroups var matchGroups = function (sQuery) { @@ -1151,7 +1157,6 @@ return matches; }; - //match all var matchAll = function (sQuery) { var u = matchUsers(sQuery); var g = matchGroups(sQuery); @@ -1290,32 +1295,15 @@ } var MentionsAutoComplete = function (divid, cont, users_list) { - var myUsers = users_list; - // Define a custom search function for the DataSource of users var matchUsers = function (sQuery) { var org_sQuery = sQuery; if(this.mentionQuery == null){ return [] } sQuery = this.mentionQuery; - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myUsers.length; - var matches = []; - - // Match against each name of each contact - for (; i < l; i++) { - var contact = myUsers[i]; - if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || - ((contact.lname+"").toLowerCase().indexOf(query) > -1) || - ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { - matches[matches.length] = contact; - } - } - return matches - }; + return autocompleteMatchUsers(sQuery, users_list); + } // DataScheme for owner var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers); @@ -1511,27 +1499,10 @@ /* activate auto completion of users as PR reviewers */ var PullRequestAutoComplete = function (divid, cont, users_list) { - var myUsers = users_list; - // Define a custom search function for the DataSource of users var matchUsers = function (sQuery) { - // Case insensitive matching - var query = sQuery.toLowerCase(); - var i = 0; - var l = myUsers.length; - var matches = []; - - // Match against each name of each contact - for (; i < l; i++) { - var contact = myUsers[i]; - if (((contact.fname+"").toLowerCase().indexOf(query) > -1) || - ((contact.lname+"").toLowerCase().indexOf(query) > -1) || - ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) { - matches[matches.length] = contact; - } - } - return matches; - }; + return autocompleteMatchUsers(sQuery, users_list); + }; // DataScheme for owner var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);