/* global productTemplate, Sortable */ $(function () { window.productTemplate = Handlebars.compile($('#product_template').text()) var taxonProducts = $('#taxon_products') var taxonId = $('#taxon_id') var el = document.getElementById('taxon_products') if (el) { Sortable.create(el, { handle: '.sort-handle', ghostClass: 'moving-this', animation: 550, easing: 'cubic-bezier(1, 0, 0, 1)', swapThreshold: 0.9, forceFallback: true, onEnd: function (evt) { var itemEl = evt.item.getAttribute('data-product-id') var newin = evt.newIndex return $.ajax({ url: Spree.routes.classifications_api, method: 'PUT', dataType: 'json', data: { token: Spree.api_key, product_id: itemEl, taxon_id: $('#taxon_id').val(), position: newin } }) } }) } if (taxonId.length > 0) { taxonId.select2({ placeholder: Spree.translations.find_a_taxon, minimumInputLength: 3, multiple: false, ajax: { url: Spree.routes.taxons_api, datatype: 'json', data: function (params, page) { return { per_page: 50, page: page, without_children: true, q: { name_cont: params.term }, token: Spree.api_key } }, processResults: function (data, page) { var more = page < data.pages var results = formatTaxonList(data.taxons) return { results: results, pagination: { more: more } } } }, templateResult: formatTaxon, templateSelection: formatTaxon }).on('select2:select', function (e) { var el = $('#taxon_products') $.ajax({ url: Spree.routes.taxon_products_api, data: { id: e.params.data.id, token: Spree.api_key } }).done(function (data) { var i, j, len, len1, product, ref, ref1, results, variant el.empty() if (data.products.length === 0) { return $('#taxon_products').html('