Sha256: cf8593be3464e8fd08f69ee2dfa8de5ccd578b55e6e00041fabd770d7a002012

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

/*jslint vars: true, browser: true, white: true */
/*global jQuery, IQVOC */

IQVOC.onebox = (function($) {

"use strict";

var renderResults = function(concepts, container) {
  container.empty();
  $.each(concepts, function(i, concept) {
    var link = $("<a />").attr("href", concept.value).text(concept.label);
    $("<li />").append(link).appendTo(container);
  });
};

var getConcepts = function(input, container) {
  var form = input.closest("form");
  $.ajax({
    type: form.attr("method"),
    url: form.attr("action"),
    data: form.serialize(),
    success: function(data, status, xhr) {
      renderResults(IQVOC.extractConcepts(data), container);
    }
  });
};

return function(selector, options) {
  var container = $(selector);
  var input = container.find("input[type=search]");
  var initialValue = input.val();
  var resultList = $("<ul />").addClass("results").appendTo(container);

  input.keyup(function() {
    if (input.val().length == 0) {
      resultList.empty();
    }
    else if (input.val().length > 0 && input.val() != initialValue) {
      setTimeout(function() { getConcepts(input, resultList) }, 200);
    }
  });
};

}(jQuery));

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
iqvoc-4.0.6 app/assets/javascripts/iqvoc/onebox.js
iqvoc-4.0.5 app/assets/javascripts/iqvoc/onebox.js
iqvoc-4.0.4 app/assets/javascripts/iqvoc/onebox.js
iqvoc-4.0.3 app/assets/javascripts/iqvoc/onebox.js