Sha256: 301b39b21fd9fd157dd887b3652cd6cf6bf277a64b003e0ff47a96e1f010389e

Contents?: true

Size: 1.66 KB

Versions: 19

Compression:

Stored size: 1.66 KB

Contents

/* global variantTemplate */
// variant autocompletion
$(function () {
  var variantAutocompleteTemplate = $('#variant_autocomplete_template')
  if (variantAutocompleteTemplate.length > 0) {
    window.variantTemplate = Handlebars.compile(variantAutocompleteTemplate.text())
    window.variantStockTemplate = Handlebars.compile($('#variant_autocomplete_stock_template').text())
    window.variantLineItemTemplate = Handlebars.compile($('#variant_line_items_autocomplete_stock_template').text())
  }
})

function formatVariantResult(variant) {
  if (variant.loading) {
    return variant.text
  }

  if (variant['images'][0] !== undefined && variant['images'][0].mini_url !== undefined) {
    variant.image = variant.images[0].mini_url
  }
  return $(variantTemplate({
    variant: variant
  }))
}

$.fn.variantAutocomplete = function () {

  // deal with initSelection
  return this.select2({
    placeholder: Spree.translations.variant_placeholder,
    minimumInputLength: 3,
    quietMillis: 200,
    ajax: {
      url: Spree.url(Spree.routes.variants_api),
      dataType: 'json',
      data: function (params) {
        var query = {
          q: {
            search_by_product_name_or_sku: params.term
          },
          token: Spree.api_key
        }

        return query;
      },
      processResults: function(data) {
        window.variants = data['variants']
        return {
          results: data.variants
        }
      }
    },
    templateResult: formatVariantResult,
    templateSelection: function(variant) {
      if (!!variant.options_text) {
        return variant.name + '(' + variant.options_text + ')'
      } else {
        return variant.name
      }
    }
  })

}

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
spree_backend-4.2.7 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.3 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.6 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.2 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.1 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.0 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.0.rc3 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.0.rc2 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.3.0.rc1 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.5 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.4 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.3.1 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.3 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.2 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.1 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.0 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.0.rc5 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.0.rc4 app/assets/javascripts/spree/backend/variant_autocomplete.js
spree_backend-4.2.0.rc3 app/assets/javascripts/spree/backend/variant_autocomplete.js