Sha256: 94782f3921423cb56ead1c0928fe110845e6e92486ad1434f3c935ff1624892a

Contents?: true

Size: 1.3 KB

Versions: 10

Compression:

Stored size: 1.3 KB

Contents

Select2.helpers = (->

  default_build_options = (input) ->
    minimumInputLength:   1
    quietMillis:          100
    formatNoMatches:      input.data('no-matches')
    formatSearching:      input.data('searching')
    formatInputTooShort:  input.data('too-short')
    ajax:
      url: input.data('list-url')
      data: (term, page) ->
        q:    term
        page: page
      results: (data, page) ->
        results:  build_results data, input.data('label-method'), input.data('group-by')
        more:     data.length == input.data('per-page')

  build_results = (raw_data, label_method, group_by) ->
    _.tap [], (list) =>
      _.each raw_data, (data) =>
        if !@collection? || !@collection.get(data._id)?
          data.text = data[label_method]

          if group_by?
            group_name = _.result(data, group_by)

            # does the group exist?
            group = _.find list, (_group) -> _group.text == group_name

            unless group?
              # build a new group
              group = { text: group_name, children: [] }
              list.push(group)

            group.children.push(data)
          else
            list.push(data)

  build: (input, options) ->
    options   ||= {}
    _options  = _.extend(default_build_options(input), options)

    input.select2 _options

)()

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
locomotivecms-3.0.0.rc6 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.rc5 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.rc4 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.rc3 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.rc2 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.rc1 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.pre.beta.1 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.pre.alpha.3 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.pre.alpha.2 app/assets/javascripts/locomotive/utils/select2.js.coffee
locomotivecms-3.0.0.pre.alpha app/assets/javascripts/locomotive/utils/select2.js.coffee