|
@@ -15,11 +15,13 @@ class MultiSelectUI extends Spine.Controller
|
|
valueFields: null
|
|
valueFields: null
|
|
emptyText: 'Nothing to select here.'
|
|
emptyText: 'Nothing to select here.'
|
|
jumpToFirst: true
|
|
jumpToFirst: true
|
|
|
|
+ changeCallback: null
|
|
|
|
|
|
constructor: ->
|
|
constructor: ->
|
|
super
|
|
super
|
|
@el.addClass(@tagClass) if @tagClass
|
|
@el.addClass(@tagClass) if @tagClass
|
|
@render()
|
|
@render()
|
|
|
|
+ @bind 'change', @changeCallback
|
|
|
|
|
|
render: =>
|
|
render: =>
|
|
@el.html $("<#{@itemTag}/>").html(@emptyText) unless @items
|
|
@el.html $("<#{@itemTag}/>").html(@emptyText) unless @items
|
|
@@ -41,9 +43,11 @@ class MultiSelectUI extends Spine.Controller
|
|
$option.addClass('selected') if item[@keyField] in @selectedItems
|
|
$option.addClass('selected') if item[@keyField] in @selectedItems
|
|
|
|
|
|
# setup a selection toggle
|
|
# setup a selection toggle
|
|
- $option.on 'click', (e) ->
|
|
|
|
|
|
+ $option.on 'click', (e) =>
|
|
e.preventDefault()
|
|
e.preventDefault()
|
|
- $(@).toggleClass('selected')
|
|
|
|
|
|
+ $(e.currentTarget).toggleClass('selected')
|
|
|
|
+ # Trigger change event
|
|
|
|
+ @trigger 'change'
|
|
|
|
|
|
# add the created option to the list
|
|
# add the created option to the list
|
|
@el.append $option
|
|
@el.append $option
|