travis-web/app/routes/home.coffee
2015-06-18 16:28:46 +02:00

53 lines
1.3 KiB
CoffeeScript

`import BasicRoute from 'travis/routes/basic'`
`import config from 'travis/config/environment'`
`import limit from 'travis/utils/computed-limit'`
Route = BasicRoute.extend
init: ->
store = @store
repos = Ember.ArrayProxy.extend(
isLoadedBinding: 'repos.isLoaded'
repos: []
sorted: Ember.computed.sort('repos', 'sortedReposKeys')
content: limit('sorted', 'limit')
sortedReposKeys: ['sortOrderForLandingPage:desc']
limit: 3
).create()
@set('repos', repos)
@loadMoreRepos()
@_super.apply this, arguments
loadMoreRepos: ->
@store.find('build').then (builds) =>
repoIds = builds.mapBy('data.repo').uniq()
repos = @get('repos.repos')
@store.find('repo', ids: repoIds).then (reposFromRequest) =>
reposFromRequest.toArray().forEach (repo) ->
repos.pushObject(repo) unless repos.contains(repo)
activate: ->
@_super.apply(this, arguments)
interval = setInterval( =>
@loadMoreRepos()
, 60000)
@set('interval', interval)
@controllerFor('top').set('landingPage', true)
deactivate: ->
@_super.apply(this, arguments)
if interval = @get('interval')
clearInterval(interval)
@controllerFor('top').set('landingPage', false)
setupController: (controller, model) ->
controller.set('repos', @get('repos'))
`export default Route`