diff --git a/assets/scripts/app/controllers/builds.coffee b/assets/scripts/app/controllers/builds.coffee index c06b8d04..ffe4f3d7 100644 --- a/assets/scripts/app/controllers/builds.coffee +++ b/assets/scripts/app/controllers/builds.coffee @@ -2,6 +2,15 @@ Travis.BuildsController = Em.ArrayController.extend # sortAscending: false needs: ['repo'] - repoBinding: 'controllers.repo' - buildsBinding: 'repo.builds' + repoBinding: 'controllers.repo.repo' + buildsBinding: 'controllers.repo.builds' tabBinding: 'controllers.repo.tab' + + showMore: -> + id = @get('repo.id') + number = @get('builds.lastObject.number') + @get('builds').load Travis.Build.olderThanNumber(id, number, @get('tab')) + + displayShowMoreButton: (-> + @get('tab') != 'branches' + ).property('tab') diff --git a/assets/scripts/app/controllers/repo.coffee b/assets/scripts/app/controllers/repo.coffee index 0c9fb60c..556dd5dc 100644 --- a/assets/scripts/app/controllers/repo.coffee +++ b/assets/scripts/app/controllers/repo.coffee @@ -86,4 +86,4 @@ Travis.RepoController = Travis.Controller.extend urlGithub: (-> Travis.Urls.githubRepo(@get('repo.slug')) - ).property('repo.slug'), + ).property('repo.slug') diff --git a/assets/scripts/app/models/build.coffee b/assets/scripts/app/models/build.coffee index 21518a05..3ea6994c 100644 --- a/assets/scripts/app/models/build.coffee +++ b/assets/scripts/app/models/build.coffee @@ -75,6 +75,11 @@ require 'travis/model' branches: (options) -> @find repository_id: options.repoId, branches: true - olderThanNumber: (id, build_number) -> + olderThanNumber: (id, build_number, type) -> + console.log type # TODO fix this api and use some kind of pagination scheme - @find(url: "/builds", repository_id: id, after_number: build_number) + options = { repository_id: id, after_number: build_number } + if type? + options.event_type = type.replace(/s$/, '') # poor man's singularize + + @find(options) diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index 7dbedb50..332063b1 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -22,12 +22,7 @@ require 'travis/model' ).property('lastBuildId', 'lastBuildNumber') allBuilds: (-> - allBuilds = DS.RecordArray.create - type: Travis.Build - content: Ember.A([]) - store: @get('store') - @get('store').registerRecordArray(allBuilds, Travis.Build); - allBuilds + Travis.Build.find() ).property() builds: (-> @@ -42,7 +37,7 @@ require 'travis/model' array.load(builds) id = @get('id') - array.observe(@get('allBuilds'), (build) -> build.get('repo.id') == id && !build.get('isPullRequest') ) + array.observe(@get('allBuilds'), (build) -> build.get('isLoaded') && build.get('eventType') && build.get('repo.id') == id && !build.get('isPullRequest') ) array ).property() @@ -58,7 +53,7 @@ require 'travis/model' array.load(builds) id = @get('id') - array.observe(@get('allBuilds'), (build) -> @get('repositoryId') == id && build.get('isPullRequest') ) + array.observe(@get('allBuilds'), (build) -> build.get('isLoaded') && build.get('eventType') && build.get('repo.id') == id && build.get('isPullRequest') ) array ).property() diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 204f63c4..b83091c8 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -66,16 +66,16 @@ Travis.IndexCurrentRoute = Ember.Route.extend setupController: -> @container.lookup('controller:repo').activate('index') -Travis.AbstractBuidsRoute = Ember.Route.extend +Travis.AbstractBuildsRoute = Ember.Route.extend renderTemplate: -> @render 'builds', outlet: 'pane', into: 'repo' setupController: -> @container.lookup('controller:repo').activate(@get('contentType')) -Travis.BuildsRoute = Travis.AbstractBuidsRoute.extend(contentType: 'builds') -Travis.PullRequestsRoute = Travis.AbstractBuidsRoute.extend(contentType: 'pull_requests') -Travis.BranchesRoute = Travis.AbstractBuidsRoute.extend(contentType: 'branches') +Travis.BuildsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'builds') +Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'pull_requests') +Travis.BranchesRoute = Travis.AbstractBuildsRoute.extend(contentType: 'branches') Travis.BuildRoute = Ember.Route.extend Travis.LineNumberParser, renderTemplate: -> diff --git a/assets/scripts/app/templates/builds/list.hbs b/assets/scripts/app/templates/builds/list.hbs index 4fdb23a7..b2ff50d8 100644 --- a/assets/scripts/app/templates/builds/list.hbs +++ b/assets/scripts/app/templates/builds/list.hbs @@ -59,9 +59,11 @@ {{/each}} -

- {{view view.ShowMoreButton}} -

+ {{#if displayShowMoreButton}} +

+ {{view view.ShowMoreButton}} +

+ {{/if}} {{else}}
Loading
{{/if}} diff --git a/assets/scripts/app/views/build.coffee b/assets/scripts/app/views/build.coffee index a2cff647..12749afc 100644 --- a/assets/scripts/app/views/build.coffee +++ b/assets/scripts/app/views/build.coffee @@ -7,11 +7,6 @@ Travis.reopen @get('controller.tab') == 'pull_requests' ).property('controller.tab') - showMore: -> - id = @get('controller.repo.id') - number = @get('builds.lastObject.number') - @get('builds').load Travis.Build.olderThanNumber(id, number) - ShowMoreButton: Em.View.extend tagName: 'button' classNameBindings: ['isLoading'] @@ -26,7 +21,7 @@ Travis.reopen ).property('isLoading') click: -> - @get('parentView').showMore() + @get('controller').showMore() BuildsItemView: Travis.View.extend tagName: 'tr'