Lines 15-33
function patron_autocomplete(node, options) {
Link Here
|
15 |
} |
15 |
} |
16 |
return node.autocomplete({ |
16 |
return node.autocomplete({ |
17 |
source: function( request, response ) { |
17 |
source: function( request, response ) { |
18 |
let subquery_and = []; |
18 |
let q = [] |
|
|
19 |
|
20 |
// Add each pattern in search term for each search field |
21 |
let pattern_subquery_and = []; |
19 |
request.term.split(/[\s,]+/) |
22 |
request.term.split(/[\s,]+/) |
20 |
.filter(function(s){ return s.length }) |
23 |
.filter(function(s){ return s.length }) |
21 |
.forEach(function(pattern,i){ |
24 |
.forEach(function(pattern,i){ |
22 |
let subquery_or = []; |
25 |
let pattern_subquery_or = []; |
23 |
defaultPatronSearchFields.split(',').forEach(function(field,i){ |
26 |
defaultPatronSearchFields.split(',').forEach(function(field,i){ |
24 |
subquery_or.push( |
27 |
pattern_subquery_or.push( |
25 |
{["me."+field]: {'like': pattern + '%'}} |
28 |
{["me."+field]: {'like': pattern + '%'}} |
26 |
); |
29 |
); |
27 |
}); |
30 |
}); |
28 |
subquery_and.push(subquery_or); |
31 |
pattern_subquery_and.push(pattern_subquery_or); |
29 |
}); |
32 |
}); |
30 |
let q = {"-and": subquery_and}; |
33 |
q.push({ "-and": pattern_subquery_and }); |
|
|
34 |
|
35 |
// Add full search term for each search field |
36 |
let term_subquery_or = []; |
37 |
defaultPatronSearchFields.split(',').forEach(function (field, i) { |
38 |
term_subquery_or.push( |
39 |
{ ["me." + field]: { 'like': request.term + '%' } } |
40 |
); |
41 |
}); |
42 |
q.push({ "-or": term_subquery_or }); |
43 |
|
31 |
let params = { |
44 |
let params = { |
32 |
'_page': 1, |
45 |
'_page': 1, |
33 |
'_per_page': 10, |
46 |
'_per_page': 10, |
34 |
- |
|
|