document.getElementById('search_query_query').addEventListener('keydown', function (e) { if (e.keyCode === 13) { e.preventDefault(); } }); var searchParameters = {}; if (algoliaConfig.tags) { searchParameters.disjunctiveFacets = ['tags']; searchParameters.disjunctiveFacetsRefinements = { tags: algoliaConfig.tags, }; } if (algoliaConfig.type) { searchParameters.hierarchicalFacets = [{attributes: ['type'], name: 'type'}]; searchParameters.hierarchicalFacetsRefinements = { type: [algoliaConfig.type], }; } var searchThrottle = null; var search = instantsearch({ appId: algoliaConfig.app_id, apiKey: algoliaConfig.search_key, indexName: algoliaConfig.index_name, urlSync: { trackedParameters: ['query', 'attribute:*', 'page'] }, searchFunction: function(helper) { var searchResults = $('#search-container'); if (helper.state.query === '' && helper.state.hierarchicalFacetsRefinements.type === undefined && (helper.state.disjunctiveFacetsRefinements.tags === undefined || helper.state.disjunctiveFacetsRefinements.tags.length === 0) && algoliaConfig.tags.length === 0 && algoliaConfig.type.length === 0 ) { searchResults.addClass('hidden'); } else { searchResults.removeClass('hidden'); } if (searchThrottle) { clearTimeout(searchThrottle); } searchThrottle = setTimeout(function () { helper.search(); }, 300); }, searchParameters: searchParameters }); search.addWidget( instantsearch.widgets.searchBox({ container: '#search_query_query', magnifier: false, reset: false, wrapInput: false, autofocus: true }) ); search.addWidget( instantsearch.widgets.hits({ container: '.search-list', transformData: function (hit) { if (hit.type === 'virtual-package') { hit.virtual = true; } return hit; }, templates: { empty: 'No packages found.', item: `
{{ language }}
{{{ _highlightResult.description.value }}}
{{#abandoned}}Abandoned! {{#replacementPackage}} See {{ replacementPackage }} {{/replacementPackage}}
{{/abandoned}}