annotate sites/all/modules/search_autocomplete/js/jquery.autocomplete.js @ 13:134d4b2e75f6

updated quicktabs and google analytics modules
author danieleb <danielebarchiesi@me.com>
date Tue, 29 Oct 2013 13:48:59 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 /**
danielebarchiesi@4 2 * @file
danielebarchiesi@4 3 * SEARCH AUTOCOMPLETE (version 7.3-x)
danielebarchiesi@4 4 */
danielebarchiesi@4 5
danielebarchiesi@4 6 /*
danielebarchiesi@4 7 * @authors
danielebarchiesi@4 8 * Miroslav Talenberg (Dominique CLAUSE) <http://www.axiomcafe.fr/contact>
danielebarchiesi@4 9 *
danielebarchiesi@4 10 * Sponsored by:
danielebarchiesi@4 11 * www.axiomcafe.fr
danielebarchiesi@4 12 */
danielebarchiesi@4 13
danielebarchiesi@4 14 (function ($) {
danielebarchiesi@4 15 Drupal.behaviors.search_autocomplete = {
danielebarchiesi@4 16 attach: function(context) {
danielebarchiesi@4 17 if (Drupal.settings.search_autocomplete) {
danielebarchiesi@4 18 $.each(Drupal.settings.search_autocomplete, function(key, value) {
danielebarchiesi@4 19 var NoResultsLabel = Drupal.settings.search_autocomplete[key].no_results;
danielebarchiesi@4 20 $(Drupal.settings.search_autocomplete[key].selector).addClass('ui-autocomplete-processed').autocomplete({
danielebarchiesi@4 21 minLength: Drupal.settings.search_autocomplete[key].minChars,
danielebarchiesi@4 22 source: function(request, response) {
danielebarchiesi@4 23 if (Drupal.settings.search_autocomplete[key].type == 0) { // external URL
danielebarchiesi@4 24 $.getJSON(Drupal.settings.search_autocomplete[key].datas, { q: request.term }, function (results) {
danielebarchiesi@4 25 // Only return the number of values set in the settings.
danielebarchiesi@4 26 if (!results.length && NoResultsLabel) {
danielebarchiesi@4 27 results = [NoResultsLabel];
danielebarchiesi@4 28 }
danielebarchiesi@4 29 response(results.slice(0, Drupal.settings.search_autocomplete[key].max_sug));
danielebarchiesi@4 30 });
danielebarchiesi@4 31 } else if (Drupal.settings.search_autocomplete[key].type == 1) { // internal URL
danielebarchiesi@4 32 $.getJSON(Drupal.settings.search_autocomplete[key].datas + request.term, { }, function (results) {
danielebarchiesi@4 33 // Only return the number of values set in the settings.
danielebarchiesi@4 34 if (!results.length && NoResultsLabel) {
danielebarchiesi@4 35 results = [NoResultsLabel];
danielebarchiesi@4 36 }
danielebarchiesi@4 37 response(results.slice(0, Drupal.settings.search_autocomplete[key].max_sug));
danielebarchiesi@4 38 });
danielebarchiesi@4 39 } else if (Drupal.settings.search_autocomplete[key].type == 2) { // static resources
danielebarchiesi@4 40 var results = $.ui.autocomplete.filter( Drupal.settings.search_autocomplete[key].datas, request.term );
danielebarchiesi@4 41 if (!results.length && NoResultsLabel) {
danielebarchiesi@4 42 results = [NoResultsLabel];
danielebarchiesi@4 43 }
danielebarchiesi@4 44 // Only return the number of values set in the settings.
danielebarchiesi@4 45 response(results.slice(0, Drupal.settings.search_autocomplete[key].max_sug));
danielebarchiesi@4 46 }
danielebarchiesi@4 47 },
danielebarchiesi@4 48 open: function(event, ui) {
danielebarchiesi@4 49 $(".ui-autocomplete li.ui-menu-item:odd").addClass("ui-menu-item-odd");
danielebarchiesi@4 50 $(".ui-autocomplete li.ui-menu-item:even").addClass("ui-menu-item-even");
danielebarchiesi@4 51 },
danielebarchiesi@4 52 select: function(event, ui) {
danielebarchiesi@4 53 if (ui.item.label === NoResultsLabel) {
danielebarchiesi@4 54 event.preventDefault();
danielebarchiesi@4 55 } else
danielebarchiesi@4 56 if (Drupal.settings.search_autocomplete[key].auto_redirect == 1 && ui.item.link) {
danielebarchiesi@4 57 document.location.href = ui.item.link;
danielebarchiesi@4 58 } else if (Drupal.settings.search_autocomplete[key].auto_submit == 1) {
danielebarchiesi@4 59 $(this).val(ui.item.label);
danielebarchiesi@4 60 $(this).closest("form").submit();
danielebarchiesi@4 61 }
danielebarchiesi@4 62 },
danielebarchiesi@4 63 focus: function (event, ui) {
danielebarchiesi@4 64 if (ui.item.label === NoResultsLabel) {
danielebarchiesi@4 65 event.preventDefault();
danielebarchiesi@4 66 }
danielebarchiesi@4 67 }
danielebarchiesi@4 68 }).autocomplete("widget").attr("id", "ui-theme-" + Drupal.settings.search_autocomplete[key].theme);
danielebarchiesi@4 69 });
danielebarchiesi@4 70 }
danielebarchiesi@4 71 }
danielebarchiesi@4 72 };
danielebarchiesi@4 73 })(jQuery);