Home Reference Source Repository

js/dataset/typeahead.js

/**
 * Typeahead.js/Bloodhound completion definition for datasets
 */
define([
    'jquery',
    'api.light',
    'bloodhound',
    'templates/search/header.hbs',
    'templates/search/suggestion.hbs',
    'i18n',
    'logger'
], function($, API, Bloodhound, header, suggestion, i18n, log) {
    var MAX = 3,
        engine = new Bloodhound({
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            datumTokenizer: function(d) {
                return Bloodhound.tokenizers.whitespace(d.name);
            },
            identify: function(d) {
                return d.id;
            },
            remote: {
                url: API.build_url('/datasets/suggest/') + '?q=%QUERY&size='+MAX,
                wildcard: '%QUERY',
                // Keep until model is uniformised
                transform: function(response) {
                    return $.map(response, function(row, idx) {
                        row.name = row.title;
                        return row;
                    })
                }
            }
        });

    return {
        name: 'datasets',
        source: engine,
        display: 'name',
        limit: MAX,
        templates: {
            header: header({title: i18n._('Datasets')}),
            suggestion: suggestion
        }
    };
});