add docs Start documenting engine More engine documentation Document engine document SocketEngineClient Document SocketEnginePollable and SocketEnginePacketType Document SocketEngineWebsocket Document SocketIOClient Document SocketIOClientStatus Document SocketLogger Document some typealiases Document SocketIOClientOption Document SocketIOClientConfiguration
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
$(function(){
 | 
						|
  var searchIndex = lunr(function() {
 | 
						|
    this.ref('url');
 | 
						|
    this.field('name');
 | 
						|
  });
 | 
						|
 | 
						|
  var $typeahead = $('[data-typeahead]');
 | 
						|
  var $form = $typeahead.parents('form');
 | 
						|
  var searchURL = $form.attr('action');
 | 
						|
 | 
						|
  function displayTemplate(result) {
 | 
						|
    return result.name;
 | 
						|
  }
 | 
						|
 | 
						|
  function suggestionTemplate(result) {
 | 
						|
    var t = '<div class="list-group-item clearfix">';
 | 
						|
    t += '<span class="doc-name">' + result.name + '</span>';
 | 
						|
    if (result.parent_name) {
 | 
						|
     t += '<span class="doc-parent-name label">' + result.parent_name + '</span>';
 | 
						|
    }
 | 
						|
    t += '</div>';
 | 
						|
    return t;
 | 
						|
  }
 | 
						|
 | 
						|
  $typeahead.one('focus', function() {
 | 
						|
    $form.addClass('loading');
 | 
						|
 | 
						|
    $.getJSON(searchURL).then(function(searchData) {
 | 
						|
      $.each(searchData, function (url, doc) {
 | 
						|
        searchIndex.add({url: url, name: doc.name});
 | 
						|
      });
 | 
						|
 | 
						|
      $typeahead.typeahead(
 | 
						|
        {
 | 
						|
          highlight: true,
 | 
						|
          minLength: 3
 | 
						|
        },
 | 
						|
        {
 | 
						|
          limit: 10,
 | 
						|
          display: displayTemplate,
 | 
						|
          templates: { suggestion: suggestionTemplate },
 | 
						|
          source: function(query, sync) {
 | 
						|
            var results = searchIndex.search(query).map(function(result) {
 | 
						|
              var doc = searchData[result.ref];
 | 
						|
              doc.url = result.ref;
 | 
						|
              return doc;
 | 
						|
            });
 | 
						|
            sync(results);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      );
 | 
						|
      $form.removeClass('loading');
 | 
						|
      $typeahead.trigger('focus');
 | 
						|
    });
 | 
						|
  });
 | 
						|
 | 
						|
  var baseURL = searchURL.slice(0, -"search.json".length);
 | 
						|
 | 
						|
  $typeahead.on('typeahead:select', function(e, result) {
 | 
						|
    window.location = baseURL + result.url;
 | 
						|
  });
 | 
						|
});
 |