From b61b06620cc2e888dd65835367ee27f82f079fee Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 18 Jun 2015 16:28:46 +0200 Subject: [PATCH] Don't subscribe to common channel on landing page --- app/routes/home.coffee | 53 +++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 34 deletions(-) diff --git a/app/routes/home.coffee b/app/routes/home.coffee index 6b341e51..260b0e8e 100644 --- a/app/routes/home.coffee +++ b/app/routes/home.coffee @@ -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) ->