Changeset - 781b28e55b9e
[Not reviewed]
default
0 1 0
Mads Kiilerich - 8 years ago 2017-10-31 03:17:52
mads@kiilerich.com
js: set cursor position after @mention selection

Based on work by Dominik Ruff and Stack Overflow.
1 file changed with 20 insertions and 1 deletions:
0 comments (0 inline, 0 general)
kallithea/public/js/base.js
Show inline comments
 
@@ -1200,7 +1200,7 @@ var MentionsAutoComplete = function ($in
 
            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 = $container.data('before') + oData.nname + ' ' + $container.data('after');
 
            myAC.getInputEl().focus(); // Y U NO WORK !?
 
            _setCaretPosition($(myAC.getInputEl()), myAC.dataSource.before.length + oData.nname.length + 1);
 
        });
 
    }
 

	
 
@@ -1228,6 +1228,25 @@ var MentionsAutoComplete = function ($in
 
        });
 
}
 

	
 

	
 
// Set caret at the given position in the input element
 
function _setCaretPosition($inputElement, caretPos) {
 
    $inputElement.each(function(){
 
        if(this.createTextRange) { // IE
 
            var range = this.createTextRange();
 
            range.move('character', caretPos);
 
            range.select();
 
        }
 
        else if(this.selectionStart) { // other recent browsers
 
            this.focus();
 
            this.setSelectionRange(caretPos, caretPos);
 
        }
 
        else // last resort - very old browser
 
            this.focus();
 
    });
 
}
 

	
 

	
 
var addReviewMember = function(id,fname,lname,nname,gravatar_link,gravatar_size){
 
    var displayname = nname;
 
    if ((fname != "") && (lname != "")) {
0 comments (0 inline, 0 general)