Sha256: 15a32b39d70374b3f29bf37d0e68ca44968ba3fefe2b3ae6aa1585d0162d2d75

Contents?: true

Size: 1.89 KB

Versions: 16

Compression:

Stored size: 1.89 KB

Contents

Dashboard.SearchableRoute = Ember.Mixin.create
  baseRouteName: null
  resourceName: null
  queryParams: null

  setupController: (controller, model)->
    @_super(controller, model)
    if @queryParams
      controller.set('search', $.deparam(@queryParams))
      Dashboard.__container__.lookup("controller:#{@baseRouteName}Tab").set('search', controller.get('search'))

  model: (params)->
    search = @get('controller.search')
    if search
      filter = search
      @queryParams = null
    else if params.query
      @queryParams = params.query
      filter = params.query

    @store.findQuery(@resourceName, filter)

Dashboard.SearchableBaseController = Ember.Mixin.create
  defaultSearchFields: {}
  baseRouteName: null
  searchRouteParams: null
  search: (->
    Ember.copy(@get('defaultSearchFields'), true)
  ).property('defaultSearchFields')

  updateSearchRouteParams: (->
    @getController('Search').set('searchRouteParams', $.param(@get('search')))
    @getController('Tab').set('searchRouteParams', $.param(@get('search')))
  ).observes('search')

  actions:
    submitSearch: ->
      @updateSearchRouteParams()
      @getController('Search').set('search', @get('search'))
      @transitionToRoute("#{@baseRouteName}.search", $.param(@get('search')))

    closeSearch: ->
      @getController('Search').set('search', Ember.copy(@get('defaultSearchFields'), true))
      @getController('Tab').set('search', Ember.copy(@get('defaultSearchFields'), true))

      if @constructor.toString().match("#{@baseRouteName.capitalize()}SearchController")
        @transitionToRoute("#{@baseRouteName}")

  getController: (name)->
    Dashboard.__container__.lookup("controller:#{@baseRouteName}#{name}")

Dashboard.SearchableController = Ember.Mixin.create
  baseRouteName: null

  actions:
    submitSearch: ->
      @_super()
      Dashboard.__container__.lookup("controller:#{@baseRouteName}Tab").set('search', @get('search'))

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
dune-dashboard-1.1.5 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.1.4 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.1.3 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.1.2 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.1.1 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.1.0 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.9 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.8 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.7 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.6 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.5 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.4 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.3 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.2 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.1 app/assets/javascripts/mixins/searchable.coffee
dune-dashboard-1.0.0 app/assets/javascripts/mixins/searchable.coffee