Mercurial > kallithea
changeset 5238:c1784f495867
autocomplete: clean up handlers for itemSelectEvent
The handlers that execute when an autocompleted item is selected are really
specific and cannot be factored out. Nevertheless, some cleanup:
- rationalize indentation
- remove redundant copy/pasted comments
- remove redundant group handling in MentionsAutoComplete
- remove redundant checks on 'oData.nname != undefined', used to
differentiate user vs. group completion, in places that only allow user
autocompletion
author | Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> |
---|---|
date | Fri, 26 Jun 2015 22:07:00 +0200 |
parents | 3afeca108a5b |
children | 68638dc98dc8 |
files | kallithea/public/js/base.js |
diffstat | 1 files changed, 36 insertions(+), 46 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/public/js/base.js Thu Jun 25 21:46:43 2015 +0200 +++ b/kallithea/public/js/base.js Fri Jun 26 22:07:00 2015 +0200 @@ -1272,26 +1272,26 @@ membersAC.formatResult = autocompleteFormatter; ownerAC.formatResult = autocompleteFormatter; - var myHandler = 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 - //fill the autocomplete with value - if (oData.nname != undefined) { - //users - myAC.getInputEl().value = oData.nname; - $('#perm_new_member_type_'+nextId).val('user'); - } else { - //groups - myAC.getInputEl().value = oData.grname; - $('#perm_new_member_type_'+nextId).val('users_group'); - } - }; - - membersAC.itemSelectEvent.subscribe(myHandler); + // 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 + //fill the autocomplete with value + if (oData.nname != undefined) { + //users + myAC.getInputEl().value = oData.nname; + $('#perm_new_member_type_'+nextId).val('user'); + } else { + //groups + myAC.getInputEl().value = oData.grname; + $('#perm_new_member_type_'+nextId).val('users_group'); + } + }; + membersAC.itemSelectEvent.subscribe(itemSelectHandler); if(ownerAC.itemSelectEvent){ - ownerAC.itemSelectEvent.subscribe(myHandler); + ownerAC.itemSelectEvent.subscribe(itemSelectHandler); } return { @@ -1338,28 +1338,21 @@ return autocompleteFormatter(oResultData, sQuery, sResultMatch); } + // Handler for selection of an entry if(ownerAC.itemSelectEvent){ ownerAC.itemSelectEvent.subscribe(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 - //fill the autocomplete with value - if (oData.nname != undefined) { - //users - //Replace the mention name with replaced - var re = new RegExp(); - var org = myAC.getInputEl().value; - var chunks = myAC.dataSource.chunks - // replace middle chunk(the search term) with actuall match - chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery, - '@'+oData.nname+' '); - myAC.getInputEl().value = chunks.join('') - myAC.getInputEl().focus(); // Y U NO WORK !? - } else { - //groups - myAC.getInputEl().value = oData.grname; - $('#perm_new_member_type').val('users_group'); - } + //Replace the mention name with replaced + var re = new RegExp(); + var org = myAC.getInputEl().value; + var chunks = myAC.dataSource.chunks + // replace middle chunk(the search term) with actuall match + chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery, + '@'+oData.nname+' '); + myAC.getInputEl().value = chunks.join('') + myAC.getInputEl().focus(); // Y U NO WORK !? }); } @@ -1477,21 +1470,18 @@ //members cache to catch duplicates reviewerAC.dataSource.cache = []; - // hack into select event + + // Handler for selection of an entry if(reviewerAC.itemSelectEvent){ reviewerAC.itemSelectEvent.subscribe(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 - - //fill the autocomplete with value - if (oData.nname != undefined) { - addReviewMember(oData.id, oData.fname, oData.lname, oData.nname, - oData.gravatar_lnk, oData.gravatar_size); - myAC.dataSource.cache.push(oData.id); - $('#user').val(''); - } + + addReviewMember(oData.id, oData.fname, oData.lname, oData.nname, + oData.gravatar_lnk, oData.gravatar_size); + myAC.dataSource.cache.push(oData.id); + $('#user').val(''); }); } }