upgrade to textcomplete (jquery.textcomplete is discontinued), enable built-in cache and unify to start lookup after 3 characters
This commit is contained in:
parent
09666ae8e9
commit
fe4defe752
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2409
library/textcomplete/textcomplete.js
Normal file
2409
library/textcomplete/textcomplete.js
Normal file
File diff suppressed because it is too large
Load Diff
1
library/textcomplete/textcomplete.js.map
Normal file
1
library/textcomplete/textcomplete.js.map
Normal file
File diff suppressed because one or more lines are too long
2
library/textcomplete/textcomplete.min.js
vendored
Normal file
2
library/textcomplete/textcomplete.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
library/textcomplete/textcomplete.min.js.map
Normal file
1
library/textcomplete/textcomplete.min.js.map
Normal file
File diff suppressed because one or more lines are too long
@ -184,8 +184,9 @@ function string2bb(element) {
|
||||
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^|\s)(@\!*)([^ \n]+)$/,
|
||||
match: /(^|\s)(@\!*)([^ \n]{3,})$/,
|
||||
index: 3,
|
||||
cache: true,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'c', extra_channels, spinelement=false); },
|
||||
replace: editor_replace,
|
||||
template: contact_format
|
||||
@ -193,8 +194,9 @@ function string2bb(element) {
|
||||
|
||||
// Autocomplete forums
|
||||
forums = {
|
||||
match: /(^|\s)(\!\!*)([^ \n]+)$/,
|
||||
match: /(^|\s)(\!\!*)([^ \n]{3,})$/,
|
||||
index: 3,
|
||||
cache: true,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'f', extra_channels, spinelement=false); },
|
||||
replace: editor_replace,
|
||||
template: contact_format
|
||||
@ -203,8 +205,9 @@ function string2bb(element) {
|
||||
|
||||
// Autocomplete hashtags
|
||||
tags = {
|
||||
match: /(^|\s)(\#)([^ \n]{2,})$/,
|
||||
match: /(^|\s)(\#)([^ \n]{3,})$/,
|
||||
index: 3,
|
||||
cache: true,
|
||||
search: function(term, callback) { $.getJSON('/hashtags/' + '$f=&t=' + term).done(function(data) { callback($.map(data, function(entry) { return entry.text.toLowerCase().indexOf(term.toLowerCase()) === 0 ? entry : null; })); }); },
|
||||
replace: function(item) { return "$1$2" + item.text + ' '; },
|
||||
context: function(text) { return text.toLowerCase(); },
|
||||
@ -215,13 +218,20 @@ function string2bb(element) {
|
||||
smilies = {
|
||||
match: /(^|\s)(:[a-z_:]{2,})$/,
|
||||
index: 2,
|
||||
cache: true,
|
||||
search: function(term, callback) { $.getJSON('/smilies/json').done(function(data) { callback($.map(data, function(entry) { return entry.text.indexOf(term) === 0 ? entry : null; })); }); },
|
||||
//template: function(item) { return item.icon + item.text; },
|
||||
replace: function(item) { return "$1" + item.text + ' '; },
|
||||
template: smiley_format
|
||||
};
|
||||
this.attr('autocomplete','off');
|
||||
this.textcomplete([contacts,forums,smilies,tags], {className:'acpopup', zIndex:1020});
|
||||
|
||||
var Textarea = Textcomplete.editors.Textarea;
|
||||
var editor = new Textarea(this[0]);
|
||||
var textcomplete = new Textcomplete(editor);
|
||||
|
||||
textcomplete.register([contacts,forums,smilies,tags], {className:'acpopup', zIndex:1020});
|
||||
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
@ -234,6 +244,7 @@ function string2bb(element) {
|
||||
contacts = {
|
||||
match: /(^@)([^\n]{3,})$/,
|
||||
index: 2,
|
||||
cache: true,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'x', [], spinelement='#nav-search-spinner'); },
|
||||
replace: basic_replace,
|
||||
template: contact_format,
|
||||
@ -243,6 +254,7 @@ function string2bb(element) {
|
||||
forums = {
|
||||
match: /(^\!)([^\n]{3,})$/,
|
||||
index: 2,
|
||||
cache: true,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'f', [], spinelement='#nav-search-spinner'); },
|
||||
replace: basic_replace,
|
||||
template: contact_format
|
||||
@ -252,6 +264,7 @@ function string2bb(element) {
|
||||
tags = {
|
||||
match: /(^\#)([^ \n]{3,})$/,
|
||||
index: 2,
|
||||
cache: true,
|
||||
search: function(term, callback) { $.getJSON('/hashtags/' + '$f=&t=' + term).done(function(data) { callback($.map(data, function(entry) { return entry.text.toLowerCase().indexOf(term.toLowerCase()) === 0 ? entry : null; })); }); },
|
||||
replace: function(item) { return "$1" + item.text + ' '; },
|
||||
context: function(text) { return text.toLowerCase(); },
|
||||
@ -259,8 +272,14 @@ function string2bb(element) {
|
||||
};
|
||||
|
||||
this.attr('autocomplete', 'off');
|
||||
var a = this.textcomplete([contacts,forums,tags], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
|
||||
a.on('textComplete:select', function(e, value, strategy) { submit_form(this); });
|
||||
|
||||
var Textarea = Textcomplete.editors.Textarea;
|
||||
var editor = new Textarea(this[0]);
|
||||
var textcomplete = new Textcomplete(editor);
|
||||
|
||||
textcomplete.register([contacts,forums,tags], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
|
||||
|
||||
this.on('textComplete:select', function(e, value, strategy) { submit_form(this); });
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
@ -271,21 +290,27 @@ function string2bb(element) {
|
||||
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^)([^\n]+)$/,
|
||||
match: /(^)([^\n]{3,})$/,
|
||||
index: 2,
|
||||
cache: true,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, typ,[], spinelement=false); },
|
||||
replace: basic_replace,
|
||||
template: contact_format,
|
||||
};
|
||||
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([contacts], {className:'acpopup', zIndex:1020});
|
||||
|
||||
var Textarea = Textcomplete.editors.Textarea;
|
||||
var editor = new Textarea(this[0]);
|
||||
var textcomplete = new Textcomplete(editor);
|
||||
|
||||
textcomplete.register([contacts], {className:'acpopup', zIndex:1020});
|
||||
|
||||
if(autosubmit)
|
||||
a.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
this.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
|
||||
if(typeof onselect !== 'undefined')
|
||||
a.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
this.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
@ -297,21 +322,27 @@ function string2bb(element) {
|
||||
|
||||
// Autocomplete contacts
|
||||
names = {
|
||||
match: /(^)([^\n]+)$/,
|
||||
match: /(^)([^\n]{3,})$/,
|
||||
index: 2,
|
||||
cache: true,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, typ,[], spinelement=false); },
|
||||
replace: trim_replace,
|
||||
template: contact_format,
|
||||
};
|
||||
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([names], {className:'acpopup', zIndex:1020});
|
||||
|
||||
var Textarea = Textcomplete.editors.Textarea;
|
||||
var editor = new Textarea(this[0]);
|
||||
var textcomplete = new Textcomplete(editor);
|
||||
|
||||
textcomplete.register([names], {className:'acpopup', zIndex:1020});
|
||||
|
||||
if(autosubmit)
|
||||
a.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
this.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
|
||||
if(typeof onselect !== 'undefined')
|
||||
a.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
this.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
@ -375,11 +406,16 @@ function string2bb(element) {
|
||||
};
|
||||
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([bbco], {className:'acpopup', zIndex:1020});
|
||||
|
||||
a.on('textComplete:select', function(e, value, strategy) { value; });
|
||||
var Textarea = Textcomplete.editors.Textarea;
|
||||
var editor = new Textarea(this[0]);
|
||||
var textcomplete = new Textcomplete(editor);
|
||||
|
||||
a.keypress(function(e){
|
||||
textcomplete.register([bbco], {className:'acpopup', zIndex:1020});
|
||||
|
||||
this.on('textComplete:select', function(e, value, strategy) { value; });
|
||||
|
||||
this.keypress(function(e){
|
||||
if (e.keyCode == 13) {
|
||||
var x = listNewLineAutocomplete(this.id);
|
||||
if(x) {
|
||||
|
@ -15,9 +15,8 @@ head_add_js('jquery.js');
|
||||
head_add_js('/library/justifiedGallery/jquery.justifiedGallery.min.js');
|
||||
head_add_js('/library/sprintf.js/dist/sprintf.min.js');
|
||||
|
||||
//head_add_js('jquery.textinputs.js');
|
||||
head_add_js('/library/textcomplete/textcomplete.min.js');
|
||||
head_add_js('autocomplete.js');
|
||||
head_add_js('/library/jquery-textcomplete/jquery.textcomplete.js');
|
||||
|
||||
head_add_js('/library/jquery.timeago.js');
|
||||
head_add_js('/library/readmore.js/readmore.js');
|
||||
|
Reference in New Issue
Block a user