'use strict' // eslint-disable-next-line camelcase function set_taxon_select (selector) { function formatTaxon (taxon) { return Select2.util.escapeMarkup(taxon.pretty_name) } if ($(selector).length > 0) { $(selector).select2({ placeholder: Spree.translations.taxon_placeholder, multiple: true, initSelection: function (element, callback) { var url = Spree.url(Spree.routes.taxons_api, { ids: element.val(), without_children: true, token: Spree.api_key }) return $.getJSON(url, null, function (data) { return callback(data['taxons']) }) }, ajax: { url: Spree.routes.taxons_api, datatype: 'json', data: function (term, page) { return { per_page: 50, page: page, without_children: true, q: { name_cont: term }, token: Spree.api_key } }, results: function (data, page) { var more = page < data.pages return { results: data['taxons'], more: more } } }, formatResult: formatTaxon, formatSelection: formatTaxon }) } } $(document).ready(function () { set_taxon_select('#product_taxon_ids') })