Fix jquery.mentionInput.js plugin

This commit is contained in:
Hincu Petru 2014-03-29 10:56:03 +00:00
parent dfa41997df
commit 2be528494a

View file

@ -6,6 +6,11 @@
* Using underscore.js
*
* License: MIT License - http://www.opensource.org/licenses/mit-license.php
*
* Modifcations for Diaspora:
*
* Prevent replacing the wrong text by marking the replacement position with a special character
* Don't add a space after inserting a mention
*/
(function ($, _, undefined) {
@ -69,6 +74,7 @@
var autocompleteItemCollection = {};
var inputBuffer = [];
var currentDataQuery = '';
var mentionChar = "\u200B"; // zero width space
settings = $.extend(true, {}, defaultSettings, settings );
@ -114,13 +120,13 @@
_.each(mentionsCollection, function (mention) {
var textSyntax = settings.templates.mentionItemSyntax(mention);
syntaxMessage = syntaxMessage.replace(mention.value, textSyntax);
syntaxMessage = syntaxMessage.replace(mentionChar + mention.value, textSyntax);
});
var mentionText = utils.htmlEncode(syntaxMessage);
_.each(mentionsCollection, function (mention) {
var formattedMention = _.extend({}, mention, {value: utils.htmlEncode(mention.value)});
var formattedMention = _.extend({}, mention, {value: mentionChar + utils.htmlEncode(mention.value)});
var textSyntax = settings.templates.mentionItemSyntax(formattedMention);
var textHighlight = settings.templates.mentionItemHighlight(formattedMention);
@ -170,7 +176,7 @@
hideAutoComplete();
// Mentions & syntax message
var updatedMessageText = start + mention.value + end;
var updatedMessageText = start + mentionChar + mention.value + end;
elmInputBox.val(updatedMessageText);
updateValues();