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 # sortAscending: false
needs: ['repo'] needs: ['repo']
repoBinding: 'controllers.repo' repoBinding: 'controllers.repo.repo'
buildsBinding: 'repo.builds' buildsBinding: 'controllers.repo.builds'
tabBinding: 'controllers.repo.tab' 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: (-> urlGithub: (->
Travis.Urls.githubRepo(@get('repo.slug')) Travis.Urls.githubRepo(@get('repo.slug'))
).property('repo.slug'), ).property('repo.slug')

View File

@ -75,6 +75,11 @@ require 'travis/model'
branches: (options) -> branches: (options) ->
@find repository_id: options.repoId, branches: true @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 # 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') ).property('lastBuildId', 'lastBuildNumber')
allBuilds: (-> allBuilds: (->
allBuilds = DS.RecordArray.create Travis.Build.find()
type: Travis.Build
content: Ember.A([])
store: @get('store')
@get('store').registerRecordArray(allBuilds, Travis.Build);
allBuilds
).property() ).property()
builds: (-> builds: (->
@ -42,7 +37,7 @@ require 'travis/model'
array.load(builds) array.load(builds)
id = @get('id') 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 array
).property() ).property()
@ -58,7 +53,7 @@ require 'travis/model'
array.load(builds) array.load(builds)
id = @get('id') 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 array
).property() ).property()

View File

@ -66,16 +66,16 @@ Travis.IndexCurrentRoute = Ember.Route.extend
setupController: -> setupController: ->
@container.lookup('controller:repo').activate('index') @container.lookup('controller:repo').activate('index')
Travis.AbstractBuidsRoute = Ember.Route.extend Travis.AbstractBuildsRoute = Ember.Route.extend
renderTemplate: -> renderTemplate: ->
@render 'builds', outlet: 'pane', into: 'repo' @render 'builds', outlet: 'pane', into: 'repo'
setupController: -> setupController: ->
@container.lookup('controller:repo').activate(@get('contentType')) @container.lookup('controller:repo').activate(@get('contentType'))
Travis.BuildsRoute = Travis.AbstractBuidsRoute.extend(contentType: 'builds') Travis.BuildsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'builds')
Travis.PullRequestsRoute = Travis.AbstractBuidsRoute.extend(contentType: 'pull_requests') Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'pull_requests')
Travis.BranchesRoute = Travis.AbstractBuidsRoute.extend(contentType: 'branches') Travis.BranchesRoute = Travis.AbstractBuildsRoute.extend(contentType: 'branches')
Travis.BuildRoute = Ember.Route.extend Travis.LineNumberParser, Travis.BuildRoute = Ember.Route.extend Travis.LineNumberParser,
renderTemplate: -> renderTemplate: ->

View File

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

View File

@ -7,11 +7,6 @@ Travis.reopen
@get('controller.tab') == 'pull_requests' @get('controller.tab') == 'pull_requests'
).property('controller.tab') ).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 ShowMoreButton: Em.View.extend
tagName: 'button' tagName: 'button'
classNameBindings: ['isLoading'] classNameBindings: ['isLoading']
@ -26,7 +21,7 @@ Travis.reopen
).property('isLoading') ).property('isLoading')
click: -> click: ->
@get('parentView').showMore() @get('controller').showMore()
BuildsItemView: Travis.View.extend BuildsItemView: Travis.View.extend
tagName: 'tr' tagName: 'tr'