Skip to content
Snippets Groups Projects
_scripts.html 1.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • ale's avatar
    ale committed
        <script src="/static/js/jquery-2.1.1.min.js"></script>
        <script src="/static/js/bootstrap.min.js"></script>
        <script src="/static/js/bootstrap3-typeahead.min.js"></script>
        <script>
    
    
    var typeaheadTimerId = null;
    
    doTypeahead = function(query, process) {
      if (typeaheadTimerId) {
        clearTimeout(typeaheadTimerId);
      }
      typeaheadTimerId = setTimeout(function() {
        typeaheadCallback(query, process);
      }, 300);
    };
    
    var entriesMap = {};
    
    typeaheadCallback = function(query, process) {
      var typeaheadEntries = [];
      entriesMap = {};
      $.ajax({
        url: "/suggest",
        data: {term: query},
        dataType: "json",
        success: function(data, status, jqxhr) {
          $.each(data, function(idx, entry) {
            entriesMap[entry.label] = entry.book_id;
            typeaheadEntries.push(entry.label);
          });
          process(typeaheadEntries);
        }
      });
    };
    
    typeaheadUpdater = function(item) {
      //this.$element[0].value = entriesMap[item];
      //this.$element[0].form.submit();
      var bookUrl = '/book/' + entriesMap[item];
      window.location.href = bookUrl;
      return item;
    };
    
    
    ale's avatar
    ale committed
    $(document).ready(function() {
      $("#search_field").typeahead({
    
        source: doTypeahead,
        updater: typeaheadUpdater,
    
    ale's avatar
    ale committed
        items: 12,
        autoSelect: false
      });
    
      $(".debug-toggle").click(function() {
        $(".debug").show();
      });
    });
        </script>