Changeset - 2fa786ba2b2a
[Not reviewed]
default
0 5 0
Mads Kiilerich - 10 years ago 2015-08-11 12:39:07
madski@unity3d.com
js: refactor AutoComplete functions to pass jQuery results around until DOM elements are passed to YUI

A small step forward that enables other refactorings.
5 files changed with 18 insertions and 19 deletions:
0 comments (0 inline, 0 general)
kallithea/public/js/base.js
Show inline comments
 
@@ -744,7 +744,7 @@ function _comment_div_append_form($comme
 
    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 @@ var autocompleteFormatter = function (oR
 
};
 

	
 
// 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 @@ var autocompleteCreate = function (input
 
    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 @@ var SimpleUserAutoComplete = function (i
 
    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 @@ var MembersAutoComplete = function (inpu
 
        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 @@ var MembersAutoComplete = function (inpu
 
    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 @@ var MentionsAutoComplete = function (inp
 
            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 @@ var MentionsAutoComplete = function (inp
 
        return [null, null];
 
    };
 

	
 
    var $inputElement = $('#'+inputElement);
 
    $inputElement.keyup(function(e){
 
            var currentMessage = $inputElement.val();
 
            var currentCaretPosition = $inputElement[0].selectionStart;
 
@@ -1333,13 +1332,13 @@ var removeReviewMember = function(review
 
}
 

	
 
/* 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 addPermAction = function(_html, user
 
    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) {
kallithea/templates/admin/repos/repo_edit_settings.html
Show inline comments
 
@@ -147,6 +147,6 @@ ${h.form(url('put_repo', repo_name=c.rep
 

	
 
        // autocomplete
 
        var _USERS_AC_DATA = ${c.users_array|n};
 
        SimpleUserAutoComplete('user', 'owner_container', _USERS_AC_DATA);
 
        SimpleUserAutoComplete($('#user'), $('#owner_container'), _USERS_AC_DATA);
 
    });
 
</script>
kallithea/templates/changeset/changeset_file_comment.html
Show inline comments
 
@@ -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()){
kallithea/templates/pullrequests/pullrequest.html
Show inline comments
 
@@ -130,7 +130,7 @@ ${self.repo_context_bar('showpullrequest
 
<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']);
 

	
kallithea/templates/pullrequests/pullrequest_show.html
Show inline comments
 
@@ -374,7 +374,7 @@ ${self.repo_context_bar('showpullrequest
 

	
 
    <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));
0 comments (0 inline, 0 general)