Sha256: c553f1ee4c9e2c15d330886c3ab7223aff77d1d12d7f6e88aece636423e07960

Contents?: true

Size: 1.22 KB

Versions: 44

Compression:

Stored size: 1.22 KB

Contents

$.fn.tagAutocomplete = function () {
  'use strict';

  function formatTag(tag) {
    return Select2.util.escapeMarkup(tag.name);
  }

  this.select2({
    placeholder: Spree.translations.tags_placeholder,
    minimumInputLength: 1,
    tokenSeparators: [','],
    multiple: true,
    tags: true,
    initSelection: function (element, callback) {
      var data = $(element.val().split(',')).map(function() {
        return { name: this, id: this };
      });
      callback(data);
    },
    ajax: {
      url: Spree.routes.tags_api,
      datatype: 'json',
      cache: true,
      data: function (term) {
        return {
          q: term,
          token: Spree.api_key
        };
      },
      results: function (data) {
        return {
          results: data.tags.map(function(tag) {
            return { name: tag.name, id: tag.name };
          })
        };
      }
    },
    createSearchChoice: function(term, data) {
      if ($(data).filter(function() {
        return this.name.localeCompare(term)===0;
      }).length===0) {
        return { id: term, name: term };
      }
    },
    formatResult:    formatTag,
    formatSelection: formatTag
  });
};

$(document).ready(function () {
  $('.tag_picker').tagAutocomplete();
});

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
spree_backend-3.4.6 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.2.9 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.6 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.5 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.4 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.3 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.2 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.0 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.5.0 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.3.6 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.2.8 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.6.0.rc1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.5.0.rc2 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.5.0.rc1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.4.5 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.3.5 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.4.4 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.4.3 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.3.4 app/assets/javascripts/spree/backend/tag_picker.js