Don't subscribe to common channel on landing page
This commit is contained in:
parent
1365caae9a
commit
b61b06620c
|
@ -7,14 +7,8 @@ Route = BasicRoute.extend
|
|||
store = @store
|
||||
repos = Ember.ArrayProxy.extend(
|
||||
isLoadedBinding: 'repos.isLoaded'
|
||||
repos: @store.filter 'repo', (repo) ->
|
||||
buildId = repo.get('lastBuildId')
|
||||
if store.hasRecordForId('build', buildId)
|
||||
state = repo.get('lastBuild.state')
|
||||
state == 'passed' || state == 'failed'
|
||||
external: []
|
||||
withExternal: Ember.computed.union('repos', 'external')
|
||||
sorted: Ember.computed.sort('withExternal', 'sortedReposKeys')
|
||||
repos: []
|
||||
sorted: Ember.computed.sort('repos', 'sortedReposKeys')
|
||||
content: limit('sorted', 'limit')
|
||||
sortedReposKeys: ['sortOrderForLandingPage:desc']
|
||||
limit: 3
|
||||
|
@ -22,43 +16,34 @@ Route = BasicRoute.extend
|
|||
|
||||
@set('repos', repos)
|
||||
|
||||
setInterval =>
|
||||
@set('letMoreReposThrough', true)
|
||||
, 5000
|
||||
|
||||
@store.find('build').then (builds) =>
|
||||
repoIds = builds.mapBy('data.repo').uniq().slice(0, 3)
|
||||
@store.find('repo', ids: repoIds).then (reposFromRequest) ->
|
||||
repos.get('external').pushObjects reposFromRequest.toArray()
|
||||
@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: ->
|
||||
if !config.pro && @pusher
|
||||
@pusher.subscribeAll(['common'])
|
||||
|
||||
@store.addPusherEventHandlerGuard('landing-page', (event, data) =>
|
||||
@allowMoreRepos(event, data)
|
||||
)
|
||||
|
||||
@_super.apply(this, arguments)
|
||||
|
||||
interval = setInterval( =>
|
||||
@loadMoreRepos()
|
||||
, 60000)
|
||||
@set('interval', interval)
|
||||
|
||||
@controllerFor('top').set('landingPage', true)
|
||||
|
||||
allowMoreRepos: (event, data) ->
|
||||
if @get('repos.length') < 3
|
||||
return true
|
||||
|
||||
if event == 'build:finished' &&
|
||||
['passed', 'failed'].indexOf(data.build.state) != -1 &&
|
||||
@get('letMoreReposThrough')
|
||||
@set('letMoreReposThrough', false)
|
||||
return true
|
||||
|
||||
deactivate: ->
|
||||
@_super.apply(this, arguments)
|
||||
|
||||
@store.removePusherEventHandlerGuard('landing-page')
|
||||
if interval = @get('interval')
|
||||
clearInterval(interval)
|
||||
|
||||
@controllerFor('top').set('landingPage', false)
|
||||
|
||||
setupController: (controller, model) ->
|
||||
|
|
Loading…
Reference in New Issue
Block a user