Skip to content

Commit

Permalink
! allow space in mention names
Browse files Browse the repository at this point in the history
! fix what I broke and allow [] again
! minor cleanup
  • Loading branch information
Spuds committed Dec 9, 2016
1 parent a1c78a7 commit 3fb8ec7
Showing 1 changed file with 31 additions and 15 deletions.
46 changes: 31 additions & 15 deletions themes/default/scripts/mentioning.plugin.js
Expand Up @@ -16,7 +16,8 @@ var disableDrafts = false;
'use strict';

// Editor instance
var editor;
var editor,
rangeHelper;

function elk_Mentions(options) {
// All the passed options and defaults are loaded to the opts object
Expand All @@ -39,6 +40,7 @@ var disableDrafts = false;
limit: 8,
maxLen: 25,
displayTpl: "<li data-value='${atwho-at}${name}' data-id='${id}'>${name}</li>",
acceptSpaceBar: true,
callbacks: {
filter: function (query, items, search_key) {
// Already cached this query, then use it
Expand All @@ -61,15 +63,12 @@ var disableDrafts = false;
return;
}

oMentions.opts._names = [];

// What we want
var obj = {
"suggest_type": "member",
"search": query.php_urlencode(),
"time": current_call
};
obj[elk_session_var] = elk_session_id;

// Make the request
suggest(obj, function() {
Expand All @@ -90,20 +89,32 @@ var disableDrafts = false;

return value;
},
matcher: function(flag, subtext, should_start_with_space) {
var match, regexp;
matcher: function(flag, subtext, should_startWithSpace, acceptSpaceBar) {
var _a, _y, match, regexp, space;

flag = flag.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");

if (should_start_with_space)
if (should_startWithSpace) {
flag = '(?:^|\\s)' + flag;
}

// Allow À - ÿ
_a = decodeURI("%C3%80");
_y = decodeURI("%C3%BF");

// Allow first last name entry?
space = acceptSpaceBar ? "\ " : "";

// regexp = new RegExp(flag + '([^ <>&"\'=\\\\\n]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
regexp = new RegExp(flag + "([A-Za-z" + _a + "-" + _y + "0-9_" + space + "\\[\\]\'\.\+\-]*)$|" + flag + "([^\\x00-\\xff]*)$", 'gi');
match = regexp.exec(subtext);

regexp = new RegExp(flag + '([^ <>&"\'=\\\\\n]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
match = regexp.exec(subtext.replace());
if (match)
if (match) {
return match[2] || match[1];
else
}
else {
return null;
}
},
highlighter: function(li, query) {
var regexp;
Expand Down Expand Up @@ -152,10 +163,14 @@ var disableDrafts = false;
*/
function suggest(obj, callback)
{
var postString = "jsonString=" + JSON.stringify(obj) + "&" + elk_session_var + "=" + elk_session_id;

oMentions.opts._names = [];

$.ajax({
url: elk_scripturl + "?action=suggest;xml",
type: "post",
data: obj,
data: postString,
dataType: "xml"
})
.done(function(data) {
Expand Down Expand Up @@ -199,7 +214,7 @@ var disableDrafts = false;
*/
function findAtPosition() {
// Get sceditor's RangeHelper for use
var rangeHelper = editor.getRangeHelper();
rangeHelper = editor.getRangeHelper();

// Save the current state
rangeHelper.saveRange();
Expand All @@ -208,10 +223,11 @@ var disableDrafts = false;
parent = start.parentNode,
prev = start.previousSibling,
offset = {},
atPos;
atPos,
placefinder;

// Create a placefinder span containing a 'ZERO WIDTH SPACE' Character
var placefinder = start.ownerDocument.createElement('span');
placefinder = start.ownerDocument.createElement('span');
$(placefinder).text("200B").addClass('placefinder');

// Look back and find the mentions @ tag, so we can insert our span ahead of it
Expand Down

0 comments on commit 3fb8ec7

Please sign in to comment.