37 lines
1 KiB
CoffeeScript
37 lines
1 KiB
CoffeeScript
Marionette = require 'backbone.marionette'
|
|
Radio = require 'backbone.radio'
|
|
ProjectView = require './project.view.coffee'
|
|
|
|
class ProjectSelectionView extends Marionette.CollectionView
|
|
|
|
tagName: 'select'
|
|
|
|
className: 'ui fluid loading search selection dropdown'
|
|
|
|
childView: ProjectView
|
|
|
|
constructor: ( ) ->
|
|
super()
|
|
@collection = Radio.channel('app').request('getProjectsCollection')
|
|
@collection.fetch({
|
|
success: ( ) =>
|
|
$(@$el).parent().removeClass('loading')
|
|
})
|
|
@collection
|
|
|
|
onDropdownChange: ( value, text, choice ) ->
|
|
Radio.channel('app').trigger('project:selected', value)
|
|
|
|
onAttach: ( ) ->
|
|
$(@$el).dropdown({
|
|
sortSelect: true
|
|
fullTextSearch: true
|
|
forceSelection: false
|
|
selectOnKeydown: false
|
|
showOnFocus: false
|
|
message:
|
|
noResults: 'No projects to display'
|
|
onChange: @onDropdownChange.bind(this)
|
|
})
|
|
|
|
module.exports = ProjectSelectionView
|