From 8b789d408eb372f4710e673d3625d8ddaedd17b6 Mon Sep 17 00:00:00 2001 From: Stephan Preeker Date: Fri, 17 Nov 2017 17:41:43 +0100 Subject: [PATCH] T53161 project user search now also elastic --- src/scripts/tutti/4_search.js | 32 ++++++++++++++++++++---------- src/scripts/tutti/7_user_search.js | 17 ++++------------ 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/scripts/tutti/4_search.js b/src/scripts/tutti/4_search.js index b73068ff..ce1fcb53 100644 --- a/src/scripts/tutti/4_search.js +++ b/src/scripts/tutti/4_search.js @@ -3,11 +3,25 @@ * index and algolia settings are defined in layout.pug */ -$(document).ready(function() { +var elasticSearch = (function($, url) { + console.log(url); + return function findMatches(q, cb, async){ + if (!cb) { return; } + $.fn.getSearch(q, cb, async, url); + }; +}); + + +(function( $ ){ + + $.fn.getSearch = function(q, cb, async, url){ - var getSearch = function(q, cb, async){ let newhits = []; - $.getJSON("/api/newsearch?q=" + q, function( data ) { + if(url === undefined){ + url = ''; + } + console.log('searching! '+ url + q); + $.getJSON("/api/newsearch" + url + "?q=" + q, function( data ) { let hits = data.hits.hits; newhits = hits.map(function(hit){ return hit._source; @@ -17,19 +31,17 @@ $(document).ready(function() { }); }; - var elasticSearch = (function() { - return function findMatches(q, cb, async){ - if (!cb) { return; } - getSearch(q, cb, async); - }; - }); +}(jQuery)); + + +$(document).ready(function() { var searchInput = $('#cloud-search'); var tu = searchInput.typeahead({hint: true}, { //source: algoliaIndex.ttAdapter(), - source: elasticSearch(), + source: elasticSearch($), async: true, displayKey: 'name', limit: 10, diff --git a/src/scripts/tutti/7_user_search.js b/src/scripts/tutti/7_user_search.js index c6709fdc..db1bba34 100644 --- a/src/scripts/tutti/7_user_search.js +++ b/src/scripts/tutti/7_user_search.js @@ -1,23 +1,14 @@ (function ( $ ) { // See organizations/view_embed.pug for example use. $.fn.userSearch = function(algolia_application_id, algolia_public_key, algolia_index_users, on_selected) { - var client = algoliasearch(algolia_application_id, algolia_public_key); - var index = client.initIndex(algolia_index_users); var target = this; this.autocomplete({hint: false}, [ { - source: function (q, cb) { - index.search(q, {hitsPerPage: 5}, function (error, content) { - if (error) { - cb([]); - return; - } - cb(content.hits, content); - }); - }, - displayKey: 'full_name', - minLength: 2, + source: elasticSearch($, '/user'), + displayKey: 'full_name', + async: true, + minLength: 1, limit: 10, templates: { suggestion: function (hit) {