Fix build lists to not interfere with each other

This commit is contained in:
Piotr Sarnacki 2013-02-26 11:17:42 +01:00
parent 1f3f0559bc
commit a47147ed82
7 changed files with 32 additions and 26 deletions

View File

@ -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')

View File

@ -86,4 +86,4 @@ Travis.RepoController = Travis.Controller.extend
urlGithub: (->
Travis.Urls.githubRepo(@get('repo.slug'))
).property('repo.slug'),
).property('repo.slug')

View File

@ -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)

View File

@ -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()

View File

@ -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: ->

View File

@ -59,9 +59,11 @@
{{/each}}
</tbody>
</table>
<p>
{{view view.ShowMoreButton}}
</p>
{{#if displayShowMoreButton}}
<p>
{{view view.ShowMoreButton}}
</p>
{{/if}}
{{else}}
<div class="loading"><span>Loading</span></div>
{{/if}}

View File

@ -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'