Mercurial > kallithea
changeset 5387:2fa786ba2b2a
js: refactor AutoComplete functions to pass jQuery results around until DOM elements are passed to YUI
A small step forward that enables other refactorings.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Tue, 11 Aug 2015 12:39:07 +0200 |
parents | 982deaaef275 |
children | 5f9321340e44 |
files | kallithea/public/js/base.js kallithea/templates/admin/repos/repo_edit_settings.html kallithea/templates/changeset/changeset_file_comment.html kallithea/templates/pullrequests/pullrequest.html kallithea/templates/pullrequests/pullrequest_show.html |
diffstat | 5 files changed, 18 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/public/js/base.js Tue Aug 11 12:39:07 2015 +0200 +++ b/kallithea/public/js/base.js Tue Aug 11 12:39:07 2015 +0200 @@ -744,7 +744,7 @@ setTimeout(function() { // callbacks tooltip_activate(); - MentionsAutoComplete('text_'+line_no, 'mentions_container_'+line_no, + MentionsAutoComplete($('#text_'+line_no), $('#mentions_container_'+line_no), _USERS_AC_DATA); $('#text_'+line_no).focus(); }, 10) @@ -1140,10 +1140,10 @@ }; // Generate a basic autocomplete instance that can be tweaked further by the caller -var autocompleteCreate = function (inputElement, container, matchFunc) { +var autocompleteCreate = function ($inputElement, $container, matchFunc) { var datasource = new YAHOO.util.FunctionDataSource(matchFunc); - var autocomplete = new YAHOO.widget.AutoComplete(inputElement, container, datasource); + var autocomplete = new YAHOO.widget.AutoComplete($inputElement[0], $container[0], datasource); autocomplete.useShadow = false; autocomplete.resultTypeList = false; autocomplete.animVert = false; @@ -1154,13 +1154,13 @@ return autocomplete; } -var SimpleUserAutoComplete = function (inputElement, container, users_list) { +var SimpleUserAutoComplete = function ($inputElement, $container, users_list) { var matchUsers = function (sQuery) { return autocompleteMatchUsers(sQuery, users_list); } - var userAC = autocompleteCreate(inputElement, container, matchUsers); + var userAC = autocompleteCreate($inputElement, $container, matchUsers); // Handler for selection of an entry var itemSelectHandler = function (sType, aArgs) { @@ -1172,7 +1172,7 @@ userAC.itemSelectEvent.subscribe(itemSelectHandler); } -var MembersAutoComplete = function (inputElement, container, users_list, groups_list) { +var MembersAutoComplete = function ($inputElement, $container, users_list, groups_list) { var matchAll = function (sQuery) { var u = autocompleteMatchUsers(sQuery, users_list); @@ -1180,11 +1180,11 @@ return u.concat(g); }; - var membersAC = autocompleteCreate(inputElement, container, matchAll); + var membersAC = autocompleteCreate($inputElement, $container, matchAll); // Handler for selection of an entry var itemSelectHandler = function (sType, aArgs) { - var nextId = inputElement.split('perm_new_member_name_')[1]; + var nextId = $inputElement.attr('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 @@ -1202,7 +1202,7 @@ membersAC.itemSelectEvent.subscribe(itemSelectHandler); } -var MentionsAutoComplete = function (inputElement, container, users_list) { +var MentionsAutoComplete = function ($inputElement, $container, users_list) { var matchUsers = function (sQuery) { var org_sQuery = sQuery; @@ -1213,7 +1213,7 @@ return autocompleteMatchUsers(sQuery, users_list); } - var mentionsAC = autocompleteCreate(inputElement, container, matchUsers); + var mentionsAC = autocompleteCreate($inputElement, $container, matchUsers); mentionsAC.suppressInputUpdate = true; // Overwrite formatResult to take into account mentionQuery mentionsAC.formatResult = function (oResultData, sQuery, sResultMatch) { @@ -1274,7 +1274,6 @@ return [null, null]; }; - var $inputElement = $('#'+inputElement); $inputElement.keyup(function(e){ var currentMessage = $inputElement.val(); var currentCaretPosition = $inputElement[0].selectionStart; @@ -1333,13 +1332,13 @@ } /* activate auto completion of users as PR reviewers */ -var PullRequestAutoComplete = function (inputElement, container, users_list) { +var PullRequestAutoComplete = function ($inputElement, $container, users_list) { var matchUsers = function (sQuery) { return autocompleteMatchUsers(sQuery, users_list); }; - var reviewerAC = autocompleteCreate(inputElement, container, matchUsers); + var reviewerAC = autocompleteCreate($inputElement, $container, matchUsers); reviewerAC.suppressInputUpdate = true; // Handler for selection of an entry @@ -1421,8 +1420,8 @@ var $last_node = $('.last_new_member').last(); // empty tr between last and add var next_id = $('.new_members').length; $last_node.before($('<tr class="new_members">').append(_html.format(next_id))); - MembersAutoComplete("perm_new_member_name_"+next_id, - "perm_container_"+next_id, users_list, groups_list); + MembersAutoComplete($("#perm_new_member_name_"+next_id), + $("#perm_container_"+next_id), users_list, groups_list); } function ajaxActionRevokePermission(url, obj_id, obj_type, field_id, extra_data) {
--- a/kallithea/templates/admin/repos/repo_edit_settings.html Tue Aug 11 12:39:07 2015 +0200 +++ b/kallithea/templates/admin/repos/repo_edit_settings.html Tue Aug 11 12:39:07 2015 +0200 @@ -147,6 +147,6 @@ // autocomplete var _USERS_AC_DATA = ${c.users_array|n}; - SimpleUserAutoComplete('user', 'owner_container', _USERS_AC_DATA); + SimpleUserAutoComplete($('#user'), $('#owner_container'), _USERS_AC_DATA); }); </script>
--- a/kallithea/templates/changeset/changeset_file_comment.html Tue Aug 11 12:39:07 2015 +0200 +++ b/kallithea/templates/changeset/changeset_file_comment.html Tue Aug 11 12:39:07 2015 +0200 @@ -199,7 +199,7 @@ <script> $(document).ready(function () { - MentionsAutoComplete('text', 'mentions_container', _USERS_AC_DATA, _GROUPS_AC_DATA); + MentionsAutoComplete($('#text'), $('#mentions_container'), _USERS_AC_DATA, _GROUPS_AC_DATA); $(window).on('beforeunload', function(){ if($('.form-open').size() || $('textarea#text').val()){
--- a/kallithea/templates/pullrequests/pullrequest.html Tue Aug 11 12:39:07 2015 +0200 +++ b/kallithea/templates/pullrequests/pullrequest.html Tue Aug 11 12:39:07 2015 +0200 @@ -130,7 +130,7 @@ <script type="text/javascript"> var _USERS_AC_DATA = ${c.users_array|n}; var _GROUPS_AC_DATA = ${c.user_groups_array|n}; - PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA); + PullRequestAutoComplete($('#user'), $('#reviewers_container'), _USERS_AC_DATA); pyroutes.register('pullrequest_repo_info', "${url('pullrequest_repo_info',repo_name='%(repo_name)s')}", ['repo_name']);
--- a/kallithea/templates/pullrequests/pullrequest_show.html Tue Aug 11 12:39:07 2015 +0200 +++ b/kallithea/templates/pullrequests/pullrequest_show.html Tue Aug 11 12:39:07 2015 +0200 @@ -374,7 +374,7 @@ <script type="text/javascript"> $(document).ready(function(){ - PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA); + PullRequestAutoComplete($('#user'), $('#reviewers_container'), _USERS_AC_DATA); $('.code-difftable').on('click', '.add-bubble', function(e){ show_comment_form($(this));