//= require solidus_admin/Sortable
Spree.ready(function() {
var productTemplate = HandlebarsTemplates['products/sortable'];
var productListTemplate = function(products) {
return _.map(products, productTemplate).join('') || "
" + Spree.translations.no_results + "
";
};
var saveSort = function(e) {
var item = e.item;
Spree.ajax({
url: Spree.pathFor('api/classifications'),
method: 'PUT',
data: {
product_id: item.getAttribute('data-product-id'),
taxon_id: $('#taxon_id').val(),
position: e.newIndex
}
});
};
var formatTaxon = function(taxon) {
return Select2.util.escapeMarkup(taxon.pretty_name);
};
$('#taxon_id').select2({
dropdownCssClass: "taxon_select_box",
placeholder: Spree.translations.find_a_taxon,
ajax: {
url: Spree.pathFor('api/taxons'),
params: {
"headers": {
'Authorization': 'Bearer ' + Spree.api_key
}
},
data: function(term, page) {
return {
per_page: 50,
page: page,
q: {
name_cont: term
}
};
},
results: function(data) {
return {
results: data['taxons'],
more: data.current_page < data.pages
};
}
},
formatResult: formatTaxon,
formatSelection: formatTaxon
});
$('#taxon_id').on("change", function(e) {
Spree.ajax({
url: Spree.pathFor('api/taxons/products'),
data: {
id: e.val,
simple: 1
},
success: function(data) {
$('#taxon_products').html(productListTemplate(data.products));
var el = document.querySelector('#taxon_products')
new Sortable(el, {
draggable: ".sort_item",
onEnd: saveSort
});
}
});
});
});