Sha256: cc65bb33d8aeb26116f58d09804f9444388f8e1250c2cafa604f8d87c9682db0

Contents?: true

Size: 1.21 KB

Versions: 57

Compression:

Stored size: 1.21 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

57 entries across 57 versions & 1 rubygems

Version Path
spree_backend-4.0.9 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.1.15 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.1.14 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.0.8 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.7.14.1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.1.13.1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.0.7.1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.0.7 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.7.14 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.1.13 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.0.6 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.2.0.rc2 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.7.13 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.0.5 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.1.12 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.7.12 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.2.0.rc1 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.0.4 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-3.7.11 app/assets/javascripts/spree/backend/tag_picker.js
spree_backend-4.1.11 app/assets/javascripts/spree/backend/tag_picker.js