Sha256: f3140f80b5a2a1e79e158b453bf806d8c66e366141b61e706398dbfc307a5857

Contents?: true

Size: 1.35 KB

Versions: 33

Compression:

Stored size: 1.35 KB

Contents

classes.DropdownView = Backbone.View.extend
  tagName: "div"
  className: "dropdown"
  backboneClass: "DropdownView"

  initialize: (opts) ->
    if !@collection?
      @collection = new classes.DropdownCollection
    @opts = _.extend({width: "100%", disable_search_threshold: 4}, opts)
    @template = JST["dropdown"];
    @listenTo(@collection, 'add', @render)
    @collection.each (model) =>
      @set_default(model)

  set_default: (model) ->
    model.set('selected', 'selected') if model.get('label') is @opts.default_to

  add: (params) ->
    model = params.model
    model.set 'label', model.get(@opts.label || 'label')
    @collection.add(model)
    @set_default(model)
    @render().el

  render: () ->
    @rendered = true;
    @$el.html(this.template(_.extend(@opts, {models: @collection.toJSON()})))

    this.delegateEvents();
    @$('.dropdown-list').chosen({width: @opts.width, disable_search_threshold: @opts.disable_search_threshold}).change((e,selected) =>
      model = @collection.find (m) ->
        selected.selected is m.get('label')
      this.trigger(app.events.SELECT, model)
    )
    @

  set_selected: (model) ->
    @collection.each (m) ->
      if (model is m)
        m.set('selected', 'selected')
      else
        m.unset('selected')
    @render().el

  get_selected: () ->
    @collection.find (model) => @$('select').val() is model.get('label')

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
atlas_assets-0.8.6 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.8.5 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.8.4 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.8.3 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.8.2 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.8.1 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.8.0 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.7.3 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.7.2 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.7.1 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.7.0 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.6.1 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.6 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.5 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.4 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.3 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.2 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.1 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.6.0 lib/assets/javascripts/views/dropdown_view.coffee
atlas_assets-0.5.10 lib/assets/javascripts/views/dropdown_view.coffee