# variant autocompletion $(document).ready -> if $("#variant_autocomplete_template").length > 0 window.variantTemplate = Handlebars.compile($("#variant_autocomplete_template").text()) window.variantStockTemplate = Handlebars.compile($("#variant_autocomplete_stock_template").text()) return formatVariantResult = (variant) -> variant.image = variant.images[0].mini_url if variant["images"][0] isnt `undefined` and variant["images"][0].mini_url isnt `undefined` variantTemplate variant: variant $.fn.variantAutocomplete = -> @select2 placeholder: Spree.translations.variant_placeholder minimumInputLength: 3 initSelection: (element, callback) -> $.get Spree.routes.variants_search + "/" + element.val(), {}, (data) -> callback data ajax: url: Spree.url(Spree.routes.variants_api) datatype: "json" data: (term, page) -> q: product_name_or_sku_cont: term results: (data, page) -> window.variants = data["variants"] results: data["variants"] formatResult: formatVariantResult formatSelection: (variant) -> if !!variant.options_text variant.name + " (#{variant.options_text})" else variant.name