Sha256: 0d0390f26d960ffe57311bef3eaa65efb73610fcb6f253dcb9e15a1c30e22bb9

Contents?: true

Size: 1.21 KB

Versions: 44

Compression:

Stored size: 1.21 KB

Contents

$.fn.productAutocomplete = function (options) {
  'use strict';

  // Default options
  options = options || {};
  var multiple = typeof(options.multiple) !== 'undefined' ? options.multiple : true;

  function formatProduct(product) {
    return Select2.util.escapeMarkup(product.name);
  }

  this.select2({
    minimumInputLength: 3,
    multiple: multiple,
    initSelection: function (element, callback) {
      $.get(Spree.routes.products_api, {
        ids: element.val().split(','),
        token: Spree.api_key
      }, function (data) {
        callback(multiple ? data.products : data.products[0]);
      });
    },
    ajax: {
      url: Spree.routes.products_api,
      datatype: 'json',
      cache: true,
      data: function (term, page) {
        return {
          q: {
            name_or_master_sku_cont: term,
          },
          m: 'OR',
          token: Spree.api_key
        };
      },
      results: function (data, page) {
        var products = data.products ? data.products : [];
        return {
          results: products
        };
      }
    },
    formatResult: formatProduct,
    formatSelection: formatProduct
  });
};

$(document).ready(function () {
  $('.product_picker').productAutocomplete();
});

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
spree_backend-3.4.6 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.2.9 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.6 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.5 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.4 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.3 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.2 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.1 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.0 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.5.0 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.3.6 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.2.8 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.6.0.rc1 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.5.0.rc2 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.5.0.rc1 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.4.5 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.3.5 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.4.4 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.4.3 app/assets/javascripts/spree/backend/product_picker.js
spree_backend-3.3.4 app/assets/javascripts/spree/backend/product_picker.js